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

Lilou
Invité n'ayant pas de compte PHPfrance

27 févr. 2007, 18:40

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]

Mammouth du PHP | 991 Messages

27 févr. 2007, 18:47

Personnellement je ne vois pas de boucle juste des conditions est tu sur d'avoir mi tout ton codes ?
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 19:03

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

Mammouth du PHP | 991 Messages

27 févr. 2007, 19:11

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
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 19:23

J'ai suivi ton conseil thehawk, mais cela n'affiche rien. Je reviens à mon formulaire vide.

Mammouth du PHP | 991 Messages

27 févr. 2007, 19:30

essaye sans le $_SERVER[php_self] et met le nom de ton fichier et rajoute
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 19:35

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:

Mammouth du PHP | 991 Messages

27 févr. 2007, 19:43

non dsl il ne manque rien ... bon je suis entrain de tester en local
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 19:48

Merci the hawk :D
En espérant que tu trouves mon erreur !

Mammouth du PHP | 991 Messages

27 févr. 2007, 19:48

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 ?
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 20:00

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>

Mammouth du PHP | 991 Messages

27 févr. 2007, 20:10

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 .
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 févr. 2007, 20:33

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>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 févr. 2007, 21:18

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute