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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire : pbl de récupération des données

par Truc » 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

par lilou » 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>

par thehawk » 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 .

par lilou » 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>

par thehawk » 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 ?

par lilou » 27 févr. 2007, 19:48

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

par thehawk » 27 févr. 2007, 19:43

non dsl il ne manque rien ... bon je suis entrain de tester en local

par lilou » 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:

par thehawk » 27 févr. 2007, 19:30

essaye sans le $_SERVER[php_self] et met le nom de ton fichier et rajoute

par lilou » 27 févr. 2007, 19:23

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

par thehawk » 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

par lilou » 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

par thehawk » 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 ?

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

par Lilou » 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]