verifcation des champs d un formulaire

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 : verifcation des champs d un formulaire

par Jib » 03 avr. 2006, 02:23

c'est clair, j'en peux plus, je viens de finir tout seul un projet de deux personnes. Mon binome ne voulait pas faire de php cette année. Demainon a soutenance et il est aps encore venu me voir pour que je lui explique le code... Perso je sais aps comment il va bien pouvoir faire, mais bon il est majeur et vacciné.

Bon le projet tourne bien et je vais finir le rapport.

Merci pour votre aide...


Cordialement.

par Truc » 03 avr. 2006, 00:47

Et tu pourras rendre ton rapport demain 8h avec des yeux comme ça :shock: pour avoir passer une bonne partie de la nuit à chercher :lol:

par Jib » 03 avr. 2006, 00:39

YEP, je viens de remarquer ca avec la console javascript
tout a l heure je faisais mon rapport pour mon projet et surement que j ai du virer un }, alors ca faisais tout planter,et le pire c que ct dans une fonction que je n utilise meme plus alors je cherchais pas dans la bonne fonction :oops:
Mais je viens de découvrir l utilité et l existence de la console javascript de mozilla.

Merci en tout cas, car j ai eu trop peur....

par Truc » 03 avr. 2006, 00:31

tu as peut être ajouté du code Javascript dansla page. Si ce code n'est pas correct le reste ne sera plus exécuté.

Montre nous la manière dont tu ajoute le fichier JS
il faut mettre <!-- et --> autour ou pas?
ce n'est pas une obligation c'est juste pour les navigateurs qui ne sont pas compatible avec le JS pour passer le code JS

par Jib » 03 avr. 2006, 00:28

j'ai fai le test avec ;

function check(){
msg = "salut";
alert(msg);
}

et en cliquant sur le bouton, rien ne se passe, savez vous pk?
j'ai pas desactive le javascript du mozilla pourtant.

par contre la fonction est incluse dans un fichier que j appele sur toute mes page et je l ai mis entre les balise <script> et </script>

il faut mettre <!-- et --> autour ou pas?

par Jib » 03 avr. 2006, 00:24

Bonsoir,

J'ai un enorme probleme, ce matin et meme y a de ca 2 h ma fonction de vérification fonctionnait tres bien.
La je sais pas ce que j'ai fait mais rien ne se passe:

voila la fonction

Code : Tout sélectionner

function check() { var msg = ""; if (document.formulaire.h_depart.value == "") { msg += "Veuillez saisir une heure de départ\n"; document.formulaire.h_depart.style.backgroundColor = "#F3C200"; } if (document.formulaire.h_arrive.value == "") { msg +="Veuillez saisir une heure d'arrivée \n"; document.formulaire.h_arrive.style.backgroundColor = "#F3C200"; } else{ if (document.formulaire.h_arrive.value < document.formulaire.h_depart.value){ msg +="l'heure de d'arrivée doit etre antérieure à l'heure de depart\n"; document.formulaire.h_depart.style.backgroundColor= "#FF0000"; document.formulaire.h_arrive.style.backgroundColor = "#FF0000"; } if (msg == "") return(true); else { alert(msg); return(false); } }
et voila le code php qui va avec
<?

 $nbescale=$_POST['nbescale']; 
 echo "<form method=\"post\" name=\"formulaire\" action=\"abis.php?nbescale=$nbescale\" onSubmit=\"return compare2($nbescale);\" >";
}
else
{
    echo "<form method=\"post\" name=\"formulaire\" action=\"index.php\" onSubmit=\"return check();\" >";
} 
?>
		<td>
			<input size="9"  type="text" name="h_depart" value="<? echo $_POST['h_depart'];?>" onKeyUp="javascript:couleur(this);" />
		</td>
		<td >
			<input size="9" type="text" name="h_arrive" value="<? echo $_POST['h_arrive'];?>" onKeyUp="javascript:couleur(this);" />
		</td>
?>
Pouvez vous m aider je dois rendre mon projet demain matin 8h precise.

Je vois pas pk ca marche plus.

par Jib » 01 avr. 2006, 23:31

Merci.
Ca fonctionne, c'est bon je vais pouvoir faire une bonne verification.

par Truc » 01 avr. 2006, 23:24

les apostrophes pour "elements" sont de trop:
elements[elem_arr].value

par Jib » 01 avr. 2006, 22:24

Salut,

Bah ma fonction en javascript ne fonctionne pas.
Si tu veux, je te montre mon code. Ce que tu m'as dis de faire ne fait rien du tout.


voila le code :

<p class="ecrit">Vous avez décidez d'ouvir un vol
<?PHP
if (isset($_POST['nbescale']))
{
   $nbescale=$_POST['nbescale']; 
 echo "<form method=\"post\" name=\"formulaire\" action=\"abis.php?nbescale=$nbescale\" onSubmit=\"return compare2($nbescale);\" >"; 
}
else
{
    echo "<form method=\"post\" name=\"formulaire\" action=\"index.php\" onSubmit=\"return check();\" >";
}

<table>
	<tr>
		<!--<td>Continent</td>-->
		<td>ville</td>
		<td>heure départ</td>
		<td>heure arrivée</td>
		<td>modele-fabricant</td>
		<td>fréquence</td>
		<td>&nbsp;&nbsp;</td>
	</tr> 
	<tr class="ecrit">
		<!--<td>
			<select name="continent" style="width:110px;" onKeyUp="javascript:couleur(this);">
<? if (isset($_POST['continent'])){	?><option><?echo $_POST['continent'];?></option><? }?>
              
            <option value="1">Europe</option>
				<option value="2">Asie</option>
				<option value="3">Océanie</option>
				<option value="4">Amerique du Sud</option>
				<option value="5">Amerique du Nord</option>
			</select>
		</td>-->
		<td>
		
			<select name=ville onKeyUp="javascript:couleur(this);">
		  <? if (isset($_POST['ville'])){ ?><option><?echo $_POST['ville'];?></option><? }?>
          
          
        <?php
        $result=pg_exec($db,"select nom_ville from ville_desservie;");
			$max=pg_numrows($result);
			for($i=0 ; $i<$max  ;$i++)
			{
				$vil=pg_fetch_array($result,$i);
				$ville=$vil[0];
				echo "<option value=$ville>$ville</option>";
			}
			echo "</select>";
		?>
		</td>
		<td>
			<input size="9"  type="text" name="h_depart" value="<?=$_POST['h_depart'];?>" onKeyUp="javascript:couleur(this);">
		</td>
		<td >
			<input size="9" type="text" name="h_arrive" value="<?=$_POST['h_arrive'];?>" onKeyUp="javascript:couleur(this);" >
		</td>
		<td>
		
		<SELECT name=Type onKeyUp="javascript:couleur(this);"   >
          <? if (isset($_POST['Type'])){ ?><option><?echo $_POST['Type'];?></option><? }?>
          
          

        <?

			$resulttype=pg_exec($db,"select distinct modele, fabricant from type_avion;");
			$max=pg_numrows($resulttype);          
			for($i=0 ; $i<$max  ;$i++)
			{
				$type=pg_fetch_array($resulttype,$i);
				$Type=$type[0].'-'.$type[1];	
				echo "<OPTION VALUE='$Type'> $Type</OPTION>";
			}
		echo "</SELECT>";
		?>
		</td>
		<td >
			<select name=frequence tabindex=40 onKeyUp="javascript:couleur(this);"   >
            <?PHP if (isset($_POST['frequence'])){?> <option><? echo
            $_POST['frequence']; ?></option><?}
            else
            {
            ?>
                   <option value="lundi">Lundi </option>
					<option value="mardi">Mardi </option>
					<option value="mercredi">Mercredi </option>
					<option value="jeudi">Jeudi </option>
					<option value="vendredi">Vendredi </option>
					<option value="samedi">Samedi </option>
					<option value="dimanche">Dimanche </option>
            <?PHP 
            }
            ?>
            </select>
		</td>
		<td>
	</tr>
    <tr><td>mois</td><td></tr>
    <tr>
                <td>
            <select name=mois>
            <?PHP
		  if (isset($_POST['mois'])){ ?><option><?echo $_POST['mois'];?></option><? }
          else
          {
            ?>
                <option value="janvier"> janvier </option>
                <option value="fevrier"> fevrier </option>
                <option value="mars"> mars </option>
                <option value="avril"> avril </option>
                <option value="mai"> mai </option>
                <option value="juin"> juin </option>
                <option value="juillet"> juillet </option>
                <option value="aout"> aout </option>
                <option value="septembre"> septembre </option>
                <option value="octobre"> octobre </option>
                <option value="novembre"> novembre </option>
                <option value="decembre"> decembre </option>
            <?PHP
          }
            ?>
            </select>
        </td>
    </tr>
	<?PHP
	if (!isset($nbescale))
	{
		?>
		<tr>
			<td colspan=6>
				nombre d'escales  ? :
					<input id="liste_1" size=4 type=text name=nbescale />
					<input type=submit VALUE=valider /></form>
			</td>
		</tr>
		<?PHP
	}
	else
	{
// on recupere le type de l'avion
//$modele=$_POST['modele'];
//$fabricant=$_POST['fabricant'];
list($modele, $fabricant) = explode("-",$_POST['Type']);
$Rnum_type=pg_exec($db,"select n_type from type_avion where fabricant='$fabricant' and modele='$modele';");
$num_type=pg_fetch_array($Rnum_type,0);
$Ntype= $num_type[0];
$ville=$_POST['ville'];

$ville=trim($ville);

    //generation du numero de vol
	//on va d abord recuperer le continent en fonction de la ville choisie
	$reque=pg_exec("select code_continent from ville_desservie where nom_ville='$ville';");
	$cont=pg_fetch_array($reque,0);
      $continent=$cont[0];
	$requ=pg_exec("select num_dernier_vol from continent where code_continent=$continent;");
	$num=pg_fetch_array($requ,0);
	echo "<input type=hidden name=continent value=$continent />";
	$n_vol=$num[0];
	//ici, on va traiter la variable recuperée
	$len=strlen($n_vol);
	$rest = substr($n_vol, 1, $len);
	
	$rest=$rest+1;
	if ($rest<10){ $rest='00'.$rest;}
	else if ($rest<100) {$rest='0'.$rest;}
	$n_vol=$continent.$rest;
	   

//$n_vol=$_POST['continent'].date('d').date('s');
echo" <input type=hidden name=n_vol value=$n_vol />";
/*
pas besoin finalement
$requeteNA=pg_exec("select n_avion from avion where n_type=$Ntype;");
$maw=pg_numrows($requeteNA);

echo "<tr><td colspan=6> choisir le numéro d'avion pour le vol
$n_vol<select name=n_avion>";
for($k=0 ; $k<$maw ; $k++)
{
    $nA=pg_fetch_array($requeteNA,$k);
    $n_avion=$nA[0];
    echo "<option value=$n_avion> $n_avion </option>";
}
echo "</select></td></tr>";
*/
echo" <input type=hidden name=Ntype value=$Ntype />";

if ($nbescale !=0)
			echo "<tr><td colspan=6>vous pouvez creer jusqu'à $nbescale escale";
		else
			echo "<tr><td colspan=6>Aucune escale n'est a créer";
		echo " pour le vol de num $n_vol : </td></tr>";
// on va rechercher le type de l avion
        
        $j=1;
    while ($j <= $nbescale)
		{
			?>
			<tr class="escale">
				<td colspan=6>
					<u>Création de l'escale pour ce vol :</u> 
					<br />
						<label>continent</label>
							<select name="continent_e<? echo $j;?>" style="width:110px;">
								<option value=""></option>
								<option value="1">Europe</option>
								<option value="2">Asie</option>
								<option value="3">Océanie</option>
								<option value="4">Amerique du Sud</option>
								<option value="5">Amerique du Nord</option>
							</select>
						<label>ville</label>
						<select name=ville_e<? echo $j;?>>
						<?PHP
							$result=pg_exec($db,"select nom_ville from ville_desservie;");
							$max=pg_numrows($result);
							for($i=0 ; $i<$max  ;$i++)
							{
								$vil=pg_fetch_array($result,$i);
								$ville=$vil[0];
							?>	
							
                            <option value="<? echo $ville;?> "><?echo $ville;?></option>
                           <? 
						}
                        echo "</select>";
						?>
						<br />         
						<label>arrive &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
							<input size=8 type=text name="arr_e<? echo $j;?>" />
						<label>depart</label>
							<input size=8 type=text name="dep_e<? echo $j;?>" /><br />
				</td>
			</tr>
			<?
            $j=$j+1;
            //echo "j: ".$j."<br/>";
           // echo "nbescale: ".$nbescale."<br/>";
		}
		echo "</table><br /><input class=bouton type=submit value=Envoyer /></form>";
	}

	?>


?>

et la fonction javascript:

Code : Tout sélectionner

function compare2(nb) { for (i=1; i<=nb; i++) { var elem_arr = 'arr_e'+i; var elem_dep = 'dep_e'+i; if (document.forms['formulaire'].elements['elem_arr'].value > document.forms['formulaire'].elements['elem_dep'].value) alert ("votre heure d'arrivee pour l escale est superieur à celle de depart"); else alert ("ok"); } }
ps: J'ai fai un test avec des valeurs numeriques mais cela ne fais rien.
Alors a defaut de reussir le javascript je teste de le faire en php mais je dois savoir comment comparer des heures.

ps2: dans une autre page, je dois additionner des heures de vols et soustraires d autres heures de vols.

Merci

par Truc » 01 avr. 2006, 21:46

en cliquant sur le bouton, rien en se passe
ça signifie qu'il y a une erreur Javascript.

remplace
var baba=document.formulaire.elem_arr.value;
par:
var baba = document.forms['formulaire'].elements['elem_arr'].value;
et refait un test

par Jib » 01 avr. 2006, 20:13

A la base c pour ma boucle for.
En gros, dans une page j'ai un 1er formulaire où je dois renseigner une destination, une h de depart, une h d arrivée, un modele d'avion et un fabricant (ce sont les champs de la relation vol de ma base de donnée). On m'a demandé de permettre la creation d'escales sur la meme page. Donc j'ai aussi un champs qui correspond aux nombres d'escales a créer.
Si la reponse est zero, je n'affiche aucun autre formulaire. Par contre, si la reponse est deux, j'affiche deux nouveaux formulaires pour créer 2 escales.
Chaque formulaire escales porpose de renseigner une ville escale, une heure de d'arrivée et une heure de départ.
donc j'aimerai verifier que les heures d'arrivée sur la ville escale sont bien inférieur aux heures de départ de la ville d'escale. J'aimerai vérifier ceci via le javascript, c'est pour ca que je met la variable nbescale dans la fonction javascript.
Mais ne sachant pas faire de javascript, tu as lu un essai de fonction.

Merci.

par Cyrano » 01 avr. 2006, 19:58

À quoi te sert donc le paramètre de la fonction : tu ne l'utilises nulle part :-k

par Jib » 01 avr. 2006, 18:04

Ok


mais si ma fonction est ceci :
function compare2(nb)
{
i=1;
	var elem_arr = 'arr_e'+i;
	var elem_dep = 'dep_e'+i;
	var baba=document.formulaire.elem_arr.value;
   alert(baba);
}
en cliquant sur le bouton, rien en se passe

par contre avec alert(elem_arr) j obtiens bien arr_e1.
il semble que la ligne var baba ne marche pas....

par Truc » 01 avr. 2006, 17:59

Par contre elle ne fait pas la comparaison des heures
certainement logique si tu saisie des dates au format jj/mm/aaaa ou autre il va certainement falloir passer par les fonctions date pour comparer les dates. Regarde la fonction "parse".

par Jib » 01 avr. 2006, 17:37

Alors 1er test reussi, la fonction alert affiche bien la valeur $nbescale.
Par contre elle ne fait pas la comparaison des heures