faire une obligation dans un formulaire ou autre

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 : faire une obligation dans un formulaire ou autre

par dunbar » 25 juin 2009, 13:36

voila mon formulaire
	
<html>
<head>
<title>Creation de la table</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="#E6E6FA">


<div align="center" >
<form method="post" action="test2.php" >

<?php
// Notez que !== n'existait pas avant 4.0.0-RC2
echo "<CENTER><H4> Aujourd'hui le " . date('d/m/Y à H:m:s ')."</H4>";
if ($handle = opendir('A_DIFFUSER')) {

echo '<select name="valeur[]" id="element1" size=30 multiple>';
/* Ceci est la façon correcte de traverser un dossier. */
while (false !== ($file = readdir($handle))) {
if($file != ".." && $file != ".")
{
echo "<option> $file\n </option>"; //multiselect
}
}
echo '</SELECT></CENTER>';

closedir($handle);
}

?>

<?php


// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT nom,prenom,email FROM membre order by nom';

$result = mysql_query($select,$db_link) or die ('Erreur : '.mysql_error() );

?>

<div class="normal" >selectiontion de la personne</div> 
 
<?php
 echo '<SELECT name="Uti[]" id="element2" onChange="FocusObjet()">'; 


while ($Utilisateur = mysql_fetch_array($result)) {
if( $Utilisateur[2] == "[email protected]" )
	{
	echo "<option VALUE='' ></option>";
	
	}
	
	else {
	echo "<OPTION VALUE='$Utilisateur[nom] # $Utilisateur[prenom] # $Utilisateur[email]'> $Utilisateur[0] $Utilisateur[1] / $Utilisateur[2]</OPTION>\n";
		 }
}
echo "</SELECT>";
<p>
<label for="comments">Vos commentaires dans l'email:</label><br />
<textarea name="rajout"  cols="50" rows="5" onclick="this.value''">
</textarea>
<p>
	<a href="<?php echo $url; ?>">Se d&eacute;loguer</a>
	<a href="destination1.php">retour sur la page d'accueil</a>
<input type="submit" value="Valider">
<input type="reset" value="Annuler" />
</form>
</div>
</body>
</html>
Bonjour,

En dehors de l'envie de te dire que tu devrais suivre les conseils de charabia pour refaire un formulaire +/- correct tu a oublier la balise de fermeture php "?>" après cette ligne. :wink:
echo "</SELECT>";

par charabia » 25 juin 2009, 09:24

Pour tester si une personne a choisi au moins une option dans un select multiple, tu fais juste la condition sur le $_POST. Par exemple
if(isset($_POST['Uti']))

par Invité » 25 juin 2009, 08:10

voila mon formulaire
	
<html>
<head>
<title>Creation de la table</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="#E6E6FA">


<div align="center" >
<form method="post" action="test2.php" >

<?php
// Notez que !== n'existait pas avant 4.0.0-RC2
echo "<CENTER><H4> Aujourd'hui le " . date('d/m/Y à H:m:s ')."</H4>";
if ($handle = opendir('A_DIFFUSER')) {

echo '<select name="valeur[]" id="element1" size=30 multiple>';
/* Ceci est la façon correcte de traverser un dossier. */
while (false !== ($file = readdir($handle))) {
if($file != ".." && $file != ".")
{
echo "<option> $file\n </option>"; //multiselect
}
}
echo '</SELECT></CENTER>';

closedir($handle);
}

?>

<?php


// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT nom,prenom,email FROM membre order by nom';

$result = mysql_query($select,$db_link) or die ('Erreur : '.mysql_error() );

?>

<div class="normal" >selectiontion de la personne</div> 
 
<?php
 echo '<SELECT name="Uti[]" id="element2" onChange="FocusObjet()">'; 


while ($Utilisateur = mysql_fetch_array($result)) {
if( $Utilisateur[2] == "[email protected]" )
	{
	echo "<option VALUE='' ></option>";
	
	}
	
	else {
	echo "<OPTION VALUE='$Utilisateur[nom] # $Utilisateur[prenom] # $Utilisateur[email]'> $Utilisateur[0] $Utilisateur[1] / $Utilisateur[2]</OPTION>\n";
		 }
}
echo "</SELECT>";
<p>
<label for="comments">Vos commentaires dans l'email:</label><br />
<textarea name="rajout"  cols="50" rows="5" onclick="this.value''">
</textarea>
<p>
	<a href="<?php echo $url; ?>">Se d&eacute;loguer</a>
	<a href="destination1.php">retour sur la page d'accueil</a>
<input type="submit" value="Valider">
<input type="reset" value="Annuler" />
</form>
</div>
</body>
</html>

par charabia » 24 juin 2009, 16:31

montre nous le code de ton formulaire

par waldner77 » 24 juin 2009, 15:42

j'ai essayer un echo quand j'ai sélectionner quelque sa marche
mais quand je fait une sélection il y a rien la sur ça ces normal
logique il doit le prendre en compte c'est pour sa que je ne vois pas le problème

par charabia » 24 juin 2009, 15:29

Avant d'utiliser la redirection, fait juste un echo pour voir si ça rentre bien dans la bonne condition.

Un conseil, ton code est illisible. Indente tout correctement, non seulement tu verras beaucoup mieux tes erreurs, mais le code sera beaucoup plus compréhensible.

par waldner77 » 24 juin 2009, 15:08

parce que $select contient les noms de pdf
et le $NP contient le nom et prénom
juste avant je vais un multiselect pour les différent nom de pdf
et après j'utilise un menu déroulant avec a l'intérieur le nom, le prénom et l'email des personnes qui sont sur ma table sql.
et je veux faire un test si il y a une sélection ou pas , et si il y a pas de sélection alors je revient sur la page et d'indiquer se qu'il ne va pas.

par charabia » 24 juin 2009, 15:01

Une fois tu mets $NP, une fois tu mets $select...j'avoue que je comprend rien du tout.

par waldner77 » 24 juin 2009, 14:53

oui j'avais vue quand j'ai regarder
et sa me fait toujours la même chose
if($NP == ' ' ){
								header("Location: test.php");
								
							}

par charabia » 24 juin 2009, 14:52

if($select=''){
Dans un IF il faut utiliser ==

par waldner77 » 24 juin 2009, 14:46

j'ai plus l'erreur mais il va pas a la page que je lui est indiquer

par charabia » 24 juin 2009, 14:40

par waldner77 » 24 juin 2009, 14:32

j'ai fait sa mais le soucie c'est qu'il me fait une erreur:
Parse error: syntax error, unexpected ':' in C:\xampp\htdocs\shiva\diffplans\destination\test2.php on line 55
if(isset($_POST['valeur']) && !empty($_POST['valeur']))
	{
		$Col1_Array = $_POST['valeur'];			
		foreach($Col1_Array as $select )
			{
			copy( "A_DIFFUSER\\".$select , "A_VERIFIER\\".$select);
			
			unlink("A_DIFFUSER\\".$select );
			//copier fichier .pdf des valeurs sélectionnées
			//echo '<br>';
			//echo $select;
			$Nom_pdf = $select ; //nom pdf:
				if(isset($_POST['Uti']) && !empty($_POST['Uti']))
					{	
						$Col1_Array = $_POST['Uti'];		
						foreach($Col1_Array as $select1)
							{				
								$pieces = explode("#", $select1);
								//echo $pieces[0]; //affiche le nom
								//echo "<br>"; //sert a sauter à la ligne
								//echo $pieces[1]; affiche le prenom
								//echo "<br>"; 
								//echo $pieces[2]; affiche l'email
								$NP= "$pieces[0] $pieces[1]" ;
							if($select=''){
								header(Location: test.php);
							}
							else{
								$pseudo=$_COOKIE['monpseudo'];								
								$request="select nom_pdf from a_verifier where nom_pdf='$Nom_pdf' limit 1"; 
								$query=mysql_query($request) or die(mysql_error()); 
									if( mysql_num_rows($query)==0 ){
										$request="select nom,prenom,email from membre where pseudo='$pseudo' limit 1";
										$query=mysql_query($request) or die(mysql_error());
											if(mysql_num_rows($query)!=0){
											list($nom,$prenom,$email)=mysql_fetch_array($query);
											$NP1="$nom $prenom";
											$date=date('Y/m/d H:m:s');
											$request="insert into a_verifier ";
											$request.="values ('$Nom_pdf','$NP','$NP1','$email','$pieces[2]','$date')";
											mysql_query( $request ) or die(__file__.' '.__line__.' '.mysql_error());
											echo "Document enregistré".' '.$select;
											echo '<br>';
												}else{
													echo 'Identité irrécupérable';
													echo '<br>';
														return;
													}	}else{
																echo "Document déjà présent dans la table.";
																echo '<br>';
															}
								}
							}
							
					}	
				
			} 				
	}	

par charabia » 24 juin 2009, 14:19

C'est en effet une des solutions.

par waldner77 » 24 juin 2009, 13:43

normalement pour le retour sur la page on fait un header?