\\ Pb de récupération de données d'un formulaire ! \\

Haly
Invité n'ayant pas de compte PHPfrance

02 août 2005, 17:17

Bonjour ! je suis vraiment novice en matière de PHP (en fait c'est mon premier code !) et j'espère que vous pourrez éclairer ma lanterne concernant mon formulaire :

Voici mon formulaire :
<form action="verifstage.php" method="post">
                <p><br> &nbsp;Je soussigné <input type="text" name="parents"> 
                autorise ma fille <input type="text" name="enfant"> a participer 
                au stage organisé par l'ADLV les <u>29, 30 et 31 Août 2005</u><br><br> 
                &nbsp;Elle est également autorisée à participer à la sortie 
                piscine du <u>Mercredi 31 Août à Neufchâtel en Bray</u> : &nbsp;<input type="radio" name="piscineoui" value="Oui">Oui 
                &nbsp;&nbsp;&nbsp;<input type="radio" name="piscinenon" value="Non">Non<br><br> 
                &nbsp;Si oui est-elle : <input type="radio" name="nageur" value="Nageur"> 
                Nageur &nbsp;&nbsp;&nbsp;<input type="radio" name="nonnageur" value="Non nageur"> 
                Non Nageur<b><br></b><br> &nbsp;Je souhaite accompagner les 
                gymnastes pour la sortie piscine : <input type="radio" name="accompagnateur" value="Souhaite accompagner"> 
                Oui &nbsp;&nbsp;&nbsp;<input type="radio" name="nonaccompagnateur" value="Ne souhaite pas accompagner"> 
                Non<br>&nbsp;</p>
                <p align="center"><input type="submit" name="envoyer" value="Envoyer"></form>
Maintenant voici ma page de récupération de données :
<html>
<head>
<title>\\ Vérification de vos informations</title>
</head>

<body>
<?
// test concernant le remplissage des champs
if (isset($_POST['parents']) && isset($_POST['enfant']) && (isset($_POST['piscineoui']) || isset($_POST['piscinenon'])) && (isset($_POST['nageur']) || isset($_POST['nonnageur'])) && (isset($_POST['accompagnateur']) || isset($_POST['nonaccompagnateur']))) {
    // affichage des résultats
    echo 'Je soussigné '.$_POST['parents'].' autorise ma fille '.$_POST['enfant'].'à participer au stage organisé par l ADLV les 28, 30 et 31 Août 2005';
    echo '<br>';
    if isset($_POST['piscineoui']){
            print ("Mon enfant participe à la sortie piscine")
          }
          else {
            print ("Mon enfant ne participe pas à la sortie piscine")
          }
    echo '<br>';
    if isset($_POST['nageur']){
            print ("Mon enfant est nageur")
          }
          else{
            print("Mon enfant n'est pas nageur'")
          }
    echo'<br>'
    if isset($_POST['accompagnateur']){
            print("Je souhaite accompagner pour la sortie piscine")
          }
          else{
            print("Je ne souhaitez pas accompagner pour la sortie piscine")
          }
}
?>
<input type="button" value="OK" mailto:[email protected] />
</body>
</html>

Mais lorsque je clique sur le bouton "Envoyer" de mon formulaire, My Sql affiche l'erreur suivante :
Parse error: parse error, expecting `'('' in c:\program files\easyphp1-8\www\adlv\version2\formulaires\stagereprise\verifstage.php on line 12
Mais je ne vois pas vraiment comment faire et ou mettre `'(''

Merci d'avance ! :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

02 août 2005, 17:19

En fait, il ne faut pas tout mettre, c'est un choix, tu as oublié de fermer quelque chose (parenthèse, guillemet ou apostrophe)

Et ça se passe
verifstage.php on line 12

Vérifie tes parenthèses dans ton IF et sinon ajoute des points-virgules à la fin de chaque instruction
print ("Mon enfant participe à la sortie piscine")
Modifié en dernier par mere-teresa le 02 août 2005, 17:20, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 17:19

c'est PHP qui affiche l'erreur, pas MySQL

c'est où la ligne douze ?

compte les parenthèses ouvrantes+fermantes : si le nombre est impaire y'a un problème ;)

Mammouth du PHP | 543 Messages

02 août 2005, 17:19

if isset($_POST['piscineoui']){
Il faut entourer les conditions avec des parentheses deja.

Et l'erreur est de PHP, pas de MySQL :)
De plus, les champs textes sont toujours 'set' lors d'un submit, donc inutile de faire des isset sur eux, mais plutot faire des if (!empty...

@+

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 17:20

et on termine les lignes d'instructions (du style print quelquechose à tout hasard) par un point-virgule ;)

Mammouth du PHP | 543 Messages

02 août 2005, 17:21

Et ca je ne connais pas :

Code : Tout sélectionner

<input type="button" value="OK" mailto:[email protected] />
:?:

Haly
Invité n'ayant pas de compte PHPfrance

04 août 2005, 13:44

D'accord je vais changer tout ça !! Merci pour vos conseils je vous dirais si ça marche !

Invité
Invité n'ayant pas de compte PHPfrance

04 août 2005, 14:40

Ca ne marche toujours pas :( ... J'espère que vous pourrez m'aider à nouveau ! J'ai vérifié mes parenthèses, mes guillemets etc et les nombres sont bien pairs. J'ai placé des ; à la fin de chaque instructions, j'ai remplacé les isset pas !empty et remplacé le
<input type="button" value="OK" mailto:[email protected] />
que j'avais sorti de nulle part !
J'ai cherché en vain une erreur ... J'espère que vous pourrez la trouver.
Voici maintenant le code après tous les changements :
<html>
<head>
<title>\\ Vérification de vos informations</title>
<meta name="generator" content="Namo WebEditor v5.0(Trial)">
</head>
<body>
<form action="mailto:[email protected]" method="post">

<?

// on teste la déclaration de nos variables

if (!empty($_POST['parents']) && !empty($_POST['enfant']) && (!empty($_POST['piscineoui']) || !empty($_POST['piscinenon'])) && (!empty($_POST['nageur']) || !empty($_POST['nonnageur'])) && (!empty($_POST['accompagnateur']) || !empty($_POST['nonaccompagnateur']))){

    // on affiche nos résultats
    
    echo ' Je soussigné '.$_POST['parents'].'autorise ma fille'.$_POST['enfant'].' à participer au stage organisé par l ADLV les 28, 30 et 31 Août 2005 ';
    echo '<br>';
    if (!empty($_POST['piscineoui'])){
            print ("Mon enfant participe à la sortie piscine");
          }
          else {
            print ("Mon enfant ne participe pas à la sortie piscine");
          }
    echo '<br>';
    if (!empty($_POST['nageur'])){
            print ("Mon enfant est nageur");
          }
          else{
            print("Mon enfant n est pas nageur");
          }
    echo'<br>'
    if (!empty($_POST['accompagnateur'])){
            print("Je souhaite accompagner pour la sortie piscine");
          }
          else{
            print("Je ne souhaite pas accompagner pour la sortie piscine");
          }
}
?>

<input type="submit" name="OK" value="OK">
</form>
</html>
Merci !

Haly
Invité n'ayant pas de compte PHPfrance

04 août 2005, 14:43

Ah oui j'oubliais : l'erreur est toujours exactement la même !

Invité
Invité n'ayant pas de compte PHPfrance

04 août 2005, 17:15

Il manque encore un petit point virgule sur le dernier :
echo '<br>'

Haly
Invité n'ayant pas de compte PHPfrance

05 août 2005, 12:10

J'étais tellement concentrée sur ce code que je n'ai pas vu les erreurs essentielles ! Merci beaucoup, mon problème est désormais réglé !

Haly
Invité n'ayant pas de compte PHPfrance

05 août 2005, 16:55

Heu... j'avais peut-être parlé un peu trop vite ! j'ai changé un peu mon formulaire pour que des cases radios avec pour valeurs "Oui" et "Non" ne puissent pas se cocher en même temps (et oui javais oublié ce détail) et du coup j'ai encore des erreurs qui s'affichent !

Voici mon formulaire :
<html>
<head>
<title> \\ Inscription au stage de reprise 2005 \\</title>
</head>

<body>


    <p>&nbsp;</p>
    <p><img src="../../images/boutons/barre_inscription.gif" width="322" height="31" border="0"></p>
    
    <table style="font-family:'Trebuchet MS'; font-size:13;" border="1" cellspacing="0" width="90%" bordercolordark="white" bordercolorlight="black">
        <tr>
            <td>
	    	<form action="verifstage.php" method="post">
	    	
                <p><br> &nbsp;Je soussigné <input type="text" name="parents"> 
                autorise ma fille <input type="text" name="enfant"> a participer 
                au stage organisé par l ADLV les <u>29, 30 et 31 Août 2005</u><br><br>

                // Choix entre "Oui" et "Non" pour le bouton "piscine"
                &nbsp;Elle est également autorisée à participer à la sortie 
                piscine du <u>Mercredi 31 Août à Neufchâtel en Bray</u> : 
                &nbsp;<input type="radio" name="piscine" value="Oui">Oui 
                &nbsp;&nbsp;&nbsp;<input type="radio" name="piscine" value="Non">Non

                <br><br> 

                // Choix entre "Oui" et "Non" pour le bouton "nageur"
                &nbsp;Si oui est-elle : <input type="radio" name="nageur" value="Oui"> Nageur 
                &nbsp;&nbsp;&nbsp;<input type="radio" name="nageur" value="Non">Non Nageur
                
                <br><br> 
                
                //Choix entre "Oui" et "Non" pour le bouton "accompagnateur"
                &nbsp;Je souhaite accompagner les gymnastes pour la sortie piscine : 
                <input type="radio" name="accompagnateur" value="Oui"> Oui 
                &nbsp;&nbsp;&nbsp;<input type="radio" name="accompagnateur" value="Non"> Non
                
                <br>&nbsp;</p>
                
                
                <p align="center"><input type="submit" name="envoyer" value="Envoyer"></form><br></p>
                
                <hr>
                
                <p align="left">&nbsp;<b><u>Note</u></b> : Les entraînements GR seront réalisés par Magali et Nadège&nbsp;;
                <br>La danse et préparation physique seront réalisées par un professeur de danse classique certifié&nbsp;;
                <br><b><u>Rappel</u></b> : Le prix est de 12 € pour les trois jours (à régler pendant le stage)<br>&nbsp;</p>
            </td>
        </tr>
    </table>

<p>&nbsp;</p>
</body>
</html>
Et voici maintenant ma page de récupération de données :
<html>
<head>
<title>\\ Vérification de vos informations</title>
</head>
<body>

<table style="font-family:'Trebuchet MS'; font-size:13;" border="1" cellspacing="0" width="90%" bordercolordark="white" bordercolorlight="black">
        <tr>
            <td>
            
                <form action="mailto:[email protected]" method="post">

<?

// Test de remplissage des champs

if (!empty($_POST['parents']) && !empty($_POST['enfant']) && !empty($_POST['piscine']) && !empty($_POST['nageur']) && !empty($_POST['accompagnateur'])){

    // Affichage des résultats
    
    echo ' Je soussigné '.$_POST['parents'].'autorise ma fille'.$_POST['enfant'].' à participer au stage organisé par l ADLV les 28, 30 et 31 Août 2005 ';
    echo '<br>';
    
    // C'est ici que les pb commencent : le msg d'erreur indique que la variable piscine est indéfinie
    if ($piscine=="Oui"){
            print ("Mon enfant participe à la sortie piscine");
          }
          else {
            print ("Mon enfant ne participe pas à la sortie piscine");
          }
    echo '<br>';
    
    // Ainsi que la variable nageur
    if ($nageur=="Oui"){
            print ("Mon enfant est nageur");
          }
          else{
            print("Mon enfant n est pas nageur");
          }
    echo'<br>';
    
    // Et la variable accompagnateur
    if ($accompagnateur=="Oui"){
            print("Je souhaite accompagner pour la sortie piscine");
          }
          else{
            print("Je ne souhaite pas accompagner pour la sortie piscine");
          }
          else{
            print ("Attention, Vous n'avez pas rempli tous les champs !");
}
?>
<br><br>
<div align="center"><input type="submit" name="OK" value="OK"></div>
</form>
</td>
</tr>
</table>
</body>
</html>
je ne comprends pas pourquoi il m'affiche des variables indéfinies alors qu'elles sont définies dans le formulaire...

Merci pour votre réponse !

Invité
Invité n'ayant pas de compte PHPfrance

05 août 2005, 17:07

Ne tenez pas compte de cette erreur que j'avais enlevée avant de tester le formulaire :
print("Je ne souhaite pas accompagner pour la sortie piscine"); 
          } 
          else{ 
            print ("Attention, Vous n'avez pas rempli tous les champs !"); 
} 
==> il manque une accolade mais je l'avait déjà replacée, l'erreur n'est pas là !

Haly
Invité n'ayant pas de compte PHPfrance

10 août 2005, 17:25

Personne n'a la réponse à ma question :(
Je vais peut-être aller voir sur un autre forum alors !
En tt cas merci pour votre aide précieuse !

Mammouth du PHP | 19672 Messages

10 août 2005, 18:08

Si aucune des deux cases n'est cochée par défaut, aucune valeur n'est envpoyée lors de l'envoi du formulaire au traitement: donc à ce moment la, soit tu coches un des boutons radio par défaut, soit tu testes avec un isset dans la phase traitement
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: