IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

syntaxe formulaire d'inscription


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Par défaut syntaxe formulaire d'inscription
    Bonsoir,

    J'ai créé un formulaire d'inscription mais lors de l'envoi, j'ai une erreur due à une ou plusieurs fautes de syntaxe...

    N'étant pas expert en PHP et ayant déjà effectué quelques recherches, pourriez-vous m'aider à corriger ces erreurs??? Et par la même occasion me faire partager votre avis sur le code écrit.

    Voici l'HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <form action="sendemail.php" id="inscriptionForm">
     
       <fieldset>
          <label for="equipe">Nom de l'équipe:</label>
          <input type="text" name="Nom de l'équipe" id="equipe" />
          <label for="mailCapitaine">e-mail du capitaine:</label>
          <input type="text" name="e-mail du capitaine" id="mailCapitaine" />
       </fieldset>
     
       <fieldset>
       <legend>Choisissez une catégorie:</legend>
          <ul>
             <li><label for="folklore">Folklore: </label><input type="radio" id="folklore" name="categorie" value="folklore" /></li>
     
             <li><label for="vitesse">Vitesse: </label><input type="radio" id="vitesse" name="categorie" value="vitesse" /></li>
     
             <li><label for="mouvement">Mouvement de jeunesse: </label><input type="radio" id="mouvement" name="categorie" value="mouvement de jeunesse" /></li>
          </ul>
       </fieldset>
     
       <fieldset>
       <legend>Inscrivez les participants (6 min et 15 max):</legend>
          <ul>
             <li><span>Nom: </span><input type="text" id="nom1" /></li>
             <li><span>Prénom: </span><input type="text" id="pre1" /></li>
             <li><span>e-mail: </span><input type="text" id="mail1" /></li>
          </ul>
          <ul>
             <li><input type="text" id="nom2" /></li>
             <li><input type="text" id="pre2" /></li>
             <li><input type="text" id="mail2" /></li>
          </ul>
          <ul>
             <li><input type="text" id="nom3" /></li>
             <li><input type="text" id="pre3" /></li>
             <li><input type="text" id="mail3" /></li>
          </ul>
       </fieldset>
     
       <input type="submit" name="submit" id="buttonsend" value="Send" />
     
    </form>

    Et voici le PHP:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
     
    $mailto   			= "torres.jp86@gmail.com";
    $equipe     		= $_POST['equipe']; 
    $mailCapitaine    	= $_POST['mailCapitaine'];
    $categorie  		= $_POST['categorie']='folklore'/'vitesse'/'mouvement';
    $part1				= $_POST['nom1' 'pre1' 'mail1'];
    $part2				= $_POST['nom2' 'pre2' 'mail2'];
    $part3				= $_POST['nom3' 'pre3' 'mail3'];
     
    	if(strlen($_POST['equipe']) < 1 ){
    		echo  'email_error';
    	}
     
      else if(strlen($mailCapitaine) < 1 ) {
    		echo 'email_error';
    	}
     
      else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", $mailCapitaine)) {
        echo 'email_error';
      }
     
      else {
     
    	// NOW SEND THE ENQUIRY
     
    	$email_message="\n\n" .
     
    		$equipe .
    		"\n" .
     
    		$mailCapitaine .
    		"\n" .
     
    		$categorie .
    		"\n" .
     
    		$part1 .
    		"\n" .
    		$part2 .
    		"\n" .
    		$part3 .
    		"\n" .
    		"\n\n" ;
     
    		$email_message = trim(stripslashes($email_message));
    		mail($mailto, $email_message, "From: \"$vname\" <".$mailCapitaine.">\nReply-To: \"".$equipe."\" <".$mailCapitaine.">\nX-Mailer: PHP/" . phpversion() );
     
      }
    ?>

    Un très grand merci d'avance pour votre aide!

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Quelques mots :
    tu as oublié l'attribut method="post" du tag <form />.
    Dans les valeurs des attributs name il faut éviter d'utiliser des noms avec des espaces ou des '
    Ensuite dans ton script avant d'affecter une variable en provenance de $_POST[], il vaut mieux s'assurer qu'elle existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = (isset($_POST('nom'])) ? $_POST('nom'] : null;
    Tu ne peux lire qu'une valeur à la fois du tableau $_POST[]. Ceci est incorrecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['nom1' 'pre1' 'mail1']
    Voici une idée de comment faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pers = array();
    $pers['nom']    = $_POST('nom1');
    $pers['prenom'] = $_POST('pre1');
    $pers['mail']   = $_POST('mail1');

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Par ailleurs les fonctions ereg sont dépréciées, utilise preg_match à la place.
    Sinon pour les mail il y a aussi FILTER_VALIDATE_EMAIL

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Par défaut
    Un très grand merci pour vos réponse!

    Après plusieurs essais, cela ne fonctionne toujours pas comme je le voudrais...
    En effet, je n'ai plus vraiment d'erreur de syntaxe mais les "array" ne s'affiche pas dans le mail...

    Impossible de récupérer les $_POST['nom1']; $_POST['pre1']; ect...

    Voici ou j'en suis :

    HTML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <form method="post" action="sendemail.php" id="inscriptionForm">
     
       <fieldset>
          <label for="equipe">Nom de l'équipe:</label>
          <input type="text" name="equipe" id="equipe" />
          <label for="mailCapitaine">e-mail du capitaine:</label>
          <input type="text" name="mailCapitaine" id="mailCapitaine" />
       </fieldset>
     
       <fieldset>
       <legend>Choisissez une catégorie:</legend>
          <ul>
             <li><label for="folklore">Folklore: </label><input type="radio" id="folklore" name="categorie" value="folklore" /></li>
     
             <li><label for="vitesse">Vitesse: </label><input type="radio" id="vitesse" name="categorie" value="vitesse" /></li>
     
             <li><label for="mouvement">Mouvement de jeunesse: </label><input type="radio" id="mouvement" name="categorie" value="mouvement de jeunesse" /></li>
          </ul>
       </fieldset>
     
       <fieldset>
       <legend>Inscrivez les participants (6 min et 15 max):</legend>
          <ul>
             <li><span>Nom: </span><input type="text" id="nom1" /></li>
             <li><span>Prénom: </span><input type="text" id="pre1" /></li>
             <li><span>e-mail: </span><input type="text" id="mail1" /></li>
          </ul>
          <ul>
             <li><input type="text" id="nom2" /></li>
             <li><input type="text" id="pre2" /></li>
             <li><input type="text" id="mail2" /></li>
          </ul>
          <ul>
             <li><input type="text" id="nom3" /></li>
             <li><input type="text" id="pre3" /></li>
             <li><input type="text" id="mail3" /></li>
          </ul>
       </fieldset>
     
       <input type="submit" name="submit" id="buttonsend" value="Send" />
     
    </form>
    PHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
     
    $mailto   		= "torres.jp86@gmail.com";
    $equipe     	= $_POST['equipe']; 
    $mailCapitaine  = $_POST['mailCapitaine'];
    $categorie  	= $_POST['categorie'];
     
    $part1 = array();
    $part1['nom']    = $_POST['nom1'];
    $part1['prenom'] = $_POST['pre1'];
    $part1['mail']   = $_POST['mail1'];
     
    $part2 = array();
    $part2['nom']    = $_POST['nom2'];
    $part2['prenom'] = $_POST['pre2'];
    $part2['mail']   = $_POST['mail2'];
     
    $part3 = array();
    $part3['nom']    = $_POST['nom3'];
    $part3['prenom'] = $_POST['pre3'];
    $part3['mail']   = $_POST['mail3'];
     
    	if(strlen($_POST['equipe']) < 1 ){
    		echo  'email_error';
    	}
     
      else if(strlen($mailCapitaine) < 1 ) {
    		echo 'email_error';
    	}
     
      else {
     
    	// NOW SEND THE ENQUIRY
     
    	$email_message="\n\n" .
     
    		$equipe .
    		"\n" .
     
    		$mailCapitaine .
    		"\n" .
     
    		$categorie .
    		"\n" .
     
    		$part1 .
    		"\n" .
    		$part2 .
    		"\n" .
    		$part3 .
    		"\n" .
    		"\n\n" ;
     
    		$email_message = trim(stripslashes($email_message));
    		mail($mailto, $email_message, "From: \"$vname\" <".$mailCapitaine.">\nReply-To: \"".$equipe."\" <".$mailCapitaine.">\nX-Mailer: PHP/" . phpversion() );
     
      }
    ?>
    Voilà, pourriez-vous m'aider à corriger les éventuelles erreurs afin que cela fonctionne?

    Merci pour votre aide!!!

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ton code stocke chaque "groupe" d'informations dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $part1 = array();
    $part1['nom']    = $_POST['nom1'];
    $part1['prenom'] = $_POST['pre1'];
    $part1['mail']   = $_POST['mail1'];
    Pour afficher ces informations, il faut donc tu boucles sur le tableau ou que tu appliques un implode dessus.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Par défaut
    Bonsoir,

    Encore merci pour votre précieuse aide!!!

    Je ne pense plus avoir d'erreur de syntaxe... Seulement je ne suis pas certain des deux dernière ligne qui envoient le mail! Pouvez-vous m'indiquer s'il y a une erreur?

    Aussi, j'aimerais maintenant pouvoir recevoir ceci de façon un peu plus structurée... Avez-vous des idées ou quelques exemples?

    Voici le code PHP:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
     
    $mailto   		= "torres.jp86@gmail.com";
    $equipe     	= $_POST['equipe'];
    $mailCapitaine  = $_POST['mailCapitaine'];	
    $categorie  	= $_POST['categorie'];
     
    $part1 = array();
    $part1["nom"]    = $_POST['nom1'];
    $part1["prenom"] = $_POST['pre1'];
    $part1["mail"]   = $_POST['mail1'];
     
    	if(strlen($_POST['equipe']) < 1 ){
    		echo  'email_error';
    	}
     
      else if(strlen($mailCapitaine) < 1 ) {
    		echo 'email_error';
    	}
     
      else {
     
    	// NOW SEND THE ENQUIRY
     
    	$email_message="\n\n" .
     
    		$equipe .
    		"\n" .
     
    		$mailCapitaine .
    		"\n" .
     
    		$categorie .
    		"\n" .
     
    		$part1 .
    		"\n" .
    		"\n\n" ;
     
    		$email_message = trim(stripslashes($email_message));
    		mail($mailto, $email_message, "From: \"$vname\" <".$mailCapitaine.">\nReply-To: \"".$equipe."\" <".$mailCapitaine.">\nX-Mailer: PHP/" . phpversion() );
     
      }
    ?>

    Merci beaucoup!!!

Discussions similaires

  1. [MySQL] Quelqu'un pourrait il m'aider à vérifier mon formulaire d'inscription?
    Par Pepito2030 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/07/2006, 00h56
  2. [Newbie]*Formulaire d'inscription pour théâtre
    Par [Débutant]*Ludo dans le forum Access
    Réponses: 1
    Dernier message: 16/05/2006, 18h09
  3. Formulaire d'inscription
    Par ero-sennin dans le forum Langage
    Réponses: 3
    Dernier message: 29/01/2006, 19h23
  4. Creation d'un formulaire d'inscription
    Par whbh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 21/01/2006, 14h04
  5. Formulaire d'inscription
    Par Gourouni dans le forum ASP
    Réponses: 6
    Dernier message: 02/12/2004, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo