Page 1 sur 1

Formulaire : pbl de récupération des données

Posté : 27 févr. 2007, 18:40
par Lilou
Bonjour !!

J'ai un petit problème avec mon formulaire que je suis incapable de résoudre malgré la lecture des tuto et autres post de ce forum...
En fait, mon script ne rentre pas dans ma boucle, et se fiche pas mal de savoir si les champs sont remplis ou pas et je n'ai pas réussi à trouver la faille...

Merci pour votre aide !
<html>
  <body>
   <form method="POST" action="<? $_SERVER['PHP_SELF'];?>" enctype="text/plain" name="formulaire">
  					    <p>
					      <table>
						    <tr>
							  <td>Votre prénom : </td>
							  <td><input type="text" name="prenom" size="47" /></td>
							</tr>
						    <tr>
							  <td>Votre nom : </td>
							  <td><input type="text" name="nom" size="47" /></td>
							</tr>
							<tr>
							  <td>Votre email : </td>
							  <td><input type="text" name="mail" size="47" /></td>
							</tr>
							<tr>
							  <td>Votre message : </td>
							  <td><textarea name="texte" cols="35" rows="3"></textarea></td>
							</tr>
							<tr>
							  <td></td>
							  <td><input type="submit" value="Envoyer" /></form></td>
						  </table>
     				    </p>
					<?

if ((isset($_POST['prenom'])) && (isset($_POST['nom'])) && (isset($_POST['mail'])) && (isset($_POST['texte'])))
{	
	$prenom=$_POST['prenom'];
	$nom=$_POST['nom'];
	$mail=$_POST['mail'];
	$texte=$_POST['texte'];

if (!empty($prenom) && !empty($nom) && !empty($mail) && !empty($texte))
{ //  si les champs sont remplis
	echo '<h4>Merci ' . htmlentities($prenom) . ' '. htmlentities($nom) . '</h4>';
}
else
{ //les champs sont pas remplis
	echo '<h4>Erreur !</h4>';
	echo '<p>Vous devez remplir correctement tous les champs</p>';
}
}
?>
  </body>
</html>
 
[/php]

Posté : 27 févr. 2007, 18:47
par thehawk
Personnellement je ne vois pas de boucle juste des conditions est tu sur d'avoir mi tout ton codes ?

Posté : 27 févr. 2007, 19:03
par lilou
Oui, en effet, je me suis mal exprimée...excuse
C'est encore plus simple qu'une boucle, je veux seulement récupérer les données entrées dans le formulaire, mais il ne les prend pas en compte...

En fait, la seconde étape sera l'envoie d'un mail avec ces données...mais pour cela il faudrait déjà les récupérer... :P

Posté : 27 févr. 2007, 19:11
par thehawk
Alors premiere étape avant ta deuxieme condition fait un echo sur chaque variable pour voir ce qu'elle affiche sic'est bon fait la meme chose sur dans la seconde conditions . voila de quoi t occuper

Posté : 27 févr. 2007, 19:23
par lilou
J'ai suivi ton conseil thehawk, mais cela n'affiche rien. Je reviens à mon formulaire vide.

Posté : 27 févr. 2007, 19:30
par thehawk
essaye sans le $_SERVER[php_self] et met le nom de ton fichier et rajoute

Posté : 27 févr. 2007, 19:35
par lilou
J'ai changer pour le nom de mon fichier, toujours rien.
essaye sans le $_SERVER[php_self] et met le nom de ton fichier et rajoute
Est-ce qu'il ne manquerai pas la fin de ta phrase ? Que dois-je rajouter ? :wink:

Posté : 27 févr. 2007, 19:43
par thehawk
non dsl il ne manque rien ... bon je suis entrain de tester en local

Posté : 27 févr. 2007, 19:48
par lilou
Merci the hawk :D
En espérant que tu trouves mon erreur !

Posté : 27 févr. 2007, 19:48
par thehawk
Bon je te rassure aucune erreur avec le php il est niquel ... regarde attentivement ton code html en particulier l'architecture de ton tableau il ne manque pas quelque chose ?

Posté : 27 févr. 2007, 20:00
par lilou
Merci thehawk, en effet, mon code était incomplet !
Mais après correction, il ne se passe toujours rien !
Tu as réussi à la faire marcher en local de ton côté ?
Je te remet le code corrigé...
   				<form method="POST" action="testcontact.php" enctype="text/plain" name="formulaire">
                         <table>
                            <tr>
                              <td>Votre prénom : </td>
                              <td><input type="text" name="prenom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre nom : </td>
                              <td><input type="text" name="nom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre email : </td>
                              <td><input type="text" name="mail" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre message : </td>
                              <td><textarea name="texte" cols="35" rows="3"></textarea></td>
                            </tr>
                            <tr>
                              <td>&nbsp;</td>
                              <td><input type="submit" value="Envoyer" name="submit" /></form></td>
							</tr>
						</table>
					</form>

Posté : 27 févr. 2007, 20:10
par thehawk
oui j'ai fait marché le code en local ...
<html>
  <body>
   <form action="test.php" method="POST">
                          <p>
                          <table>
                            <tr>
                              <td>Votre prénom : </td>
                              <td><input type="text" name="prenom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre nom : </td>
                              <td><input type="text" name="nom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre email : </td>
                              <td><input type="text" name="mail" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre message : </td>
                              <td><textarea name="texte" cols="35" rows="3"></textarea></td>
                            </tr>
                            <tr>
                              <td></td>
                              <input type="hidden" value="1" name="p" />
                              <td><input type="submit" value="Envoyer" /></form></td>
							  </tr>
                          </table>
                         </p>
                    <?
    $prenom=$_POST[prenom];
    echo $_POST[prenom];
    $nom=$_POST[nom];
    echo $_POST[nom];
    $mail=$_POST[mail];
    echo $_POST[mail];
    $texte=$_POST[texte];
    echo $_POST[texte];
if ((isset($_POST['prenom'])) && (isset($_POST['nom'])) && (isset($_POST['mail'])) && (isset($_POST['texte'])))
{    
    $prenom=$_POST[prenom];

    $nom=$_POST[nom];

    $mail=$_POST[mail];
 
    $texte=$_POST[texte];

if (!empty($prenom) && !empty($nom) && !empty($mail) && !empty($texte))
{ //  si les champs sont remplis
    echo '<h4>Merci ' . htmlentities($prenom) . ' '. htmlentities($nom) . '</h4>';
}
else
{ //les champs sont pas remplis
    echo '<h4>Erreur !</h4>';
    echo '<p>Vous devez remplir correctement tous les champs</p>';
}
}
?>
  </body>
</html>
je l'ai nommé en local test.php .

Posté : 27 févr. 2007, 20:33
par lilou
Merci beaucoup thehawk !!! :D

Mon problème est réglé ! ça fonctionne parfaitement. C'est dommage, je ne peux pas mettre de résolu à côté de mon topic...

Je redonne le code final si cela peut aider les prochains et leur éviter de s'arracher les cheveux trop longtemps !! ;-)
<html>
  <body>
   <form action="test.php" method="POST">
                          <table>
						    <tr>
                              <td>Votre prénom : </td>
                              <td><input type="text" name="prenom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre nom : </td>
                              <td><input type="text" name="nom" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre email : </td>
                              <td><input type="text" name="mail" size="47" /></td>
                            </tr>
                            <tr>
                              <td>Votre message : </td>
                              <td><textarea name="texte" cols="35" rows="3"></textarea></td>
                            </tr>
                            <tr>
                              <td><input type="hidden" value="1" name="p" /></td>
                              <td><input type="submit" value="Envoyer" /></td>
                            </tr>
						  </table>
					  </form>
                    <?
if ((isset($_POST['prenom'])) && (isset($_POST['nom'])) && (isset($_POST['mail'])) && (isset($_POST['texte'])))
{    
    $prenom=$_POST['prenom'];

    $nom=$_POST['nom'];

    $mail=$_POST['mail'];
 
    $texte=$_POST['texte'];

if (!empty($prenom) && !empty($nom) && !empty($mail) && !empty($texte))
{ //  si les champs sont remplis
    echo '<h4>Merci ' . htmlentities($prenom) . ' '. htmlentities($nom) . '</h4>';
}
else
{ //les champs sont pas remplis
    echo '<h4>Erreur !</h4>';
    echo '<p>Vous devez remplir correctement tous les champs</p>';
}
}
?>
  </body>
</html>

Posté : 27 févr. 2007, 21:18
par Truc
Mon problème est réglé ! ça fonctionne parfaitement. C'est dommage, je ne peux pas mettre de résolu à côté de mon topic...
C'est fait :wink:

Tu n'as plus qu'à poser une autre question pour pouvoir le faire toi même :P