8796 sujets

Développement web côté serveur, CMS

bonjours je cherche a créer un mini formulaire qui récupère un numéro de téléphone et le renvoie par mail a l'administrateur.
pour le form il n'y pas de problème ni pour le script qui renvoie le mail il est oki
par contre j'aurai souhaiter que quant l'utilisateur soumet le form la page reste la même elle se recharge en quelque sorte afin de ne pas afficher ma page php cible en gros je voudrais procéder a un 'post discret'

voici mon code du form:
    <div id="monid">
         <div id="monidetc">
<form id="monid" action="mailo.php" method="post"> <input id="monidteltel" onclick="this.value='';" name="lenum" size="10" value="Tapez votre numéro" type="text"><input id="ok_monid" value="&nbsp;" type="submit"> </form></div><b>Un conseil, un projet ?</b>On vous rappelle 
                     </div>


puis mon mailo.php:

	<?php
		if(isset($_POST['lenum'])) $numero = $_POST['lenum']; 
	
     // Plusieurs destinataires
     $to .= 'admin@admin.fr';

     // Sujet
     $subject = 'Demande d\'un visiteur ';

     // message
     $message = '
     <html>
      <head>
       <title>Demande d\'un visiteur </title>
      </head>
      <body>
       <p>Voici le numero a rappeler d urgence ' . $numero . '</p>
      
      </body>
     </html>
     ';

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

     // En-têtes additionnels
     $headers .= 'To: lesiteadmin <admin@admin.fr>' . "\r\n";
     $headers .= 'From: monsite <admin@admin.fr>' . "\r\n";
     

     // Envoi
     mail($to, $subject, $message, $headers);
?>


donc voila si quelq'un peus m'expliquer comment poster sans afficher la page php Smiley cligne
Salut leov,

Il suffit de mettre ton code PHP dans la même page que ton formulaire avec un petit if. Si le formulaire a été soumis, tu fais ton traitement qui envoie le mail, sinon tu affiches le formulaire.


if (isset($_POST["monidteltel"])){
  ton code php 
  echo "votre demande a bien été prise en compte";
}
else{
  tu affiches ton formulaire
}


Par exemple.
pour ceux que ça intéresse

  <div id="monid">

         <div id="monidetc">

<form id="monid" action="<? $PHP_SELF ; ?>" method="post"> <input id="monidteltel" onclick="this.value='';" name="lenum" size="10" value="Tapez votre numéro" type="text"><input id="ok_monid" value="&nbsp;" type="submit"> </form></div><b>Un conseil, un projet ?</b>On vous rappelle 

                     </div>


attention pour du local au short tag php pour éviter les erreurs Smiley murf
Attention, tu as une faille qui permet d'injecter du code dans ta page (faille XSS).

Il faut que tu filtres $PHP_SELF pour empêcher l'injection de code. Tu peux faire comme ça :


<form id="monid" action="<?php echo filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING); ?>" method="post">


Tu devrais aussi éviter les short open tags vu qu'ils sont dépréciés depuis pas mal de temps et qu'ils seront supprimés de la prochaine version de PHP (5.4) dans quelques mois.
Modifié par jb_gfx (18 Sep 2011 - 20:42)