champs obligatoire

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 : champs obligatoire

Re: champs obligatoire

par candiceolsonlighting » 10 janv. 2012, 20:21

Merci de ta réponseImage

Re: champs obligatoire

par Truc » 11 févr. 2010, 16:01

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.

Re: champs obligatoire

par AB » 26 janv. 2010, 16:49

quel methode vous me conseillé php ou javascript mais pour le php j'ai une autre question dans le code php il y a cette ligne

<form method="post" action="register.php?action=Verif">

ceci va me renvoyer vers une page verif non ?
Ben ça va te renvoyer sur la page qui est indiquée dans action. Ici en l'occurrence il est indiqué register.php
Evidemment c'est pas top surtout s'il s'agit d'appeler la même page car si tu changes le nom de ton fichier ultérieurement...
Pour ces raisons pour renvoyer sur la page elle-même, on utilise souvent action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" ou action = "#"

A noter que le test javascript préalable au contrôle php ne fait pas simplement "que joli" :)

C'est un confort pour l'utilisateur qui n'a pas à attendre la réponse du serveur, et par la même occasion on soulage le serveur d'une requête inutile.
C'est donc tout bénef, pour le visiteur et pour les performances du serveur.

Mais comme cela a déjà été dit, l'indispensable étant le contrôle PHP, c'est par cette partie qu'il faut commencer et soigner tout particulièrement.

Gosso modo on peut considérer dans ce cas que php est le moteur qui se doit fiable en toutes circonstances, et l'éventuel complément en JS est une option de confort et d'optimisation des performances :)

Re: champs obligatoire

par stealth35 » 26 janv. 2010, 00:18

je rejoin dunbar sur le fait que uniquement javascript c'est dangereux.
mais tu peux mixer les deux, javascript c'est juste pour faire joli coté client.

Re: champs obligatoire

par spidercrash » 25 janv. 2010, 23:44

merci pour l'info

pour test j'ai essayer de crée un fichier nommé inscription.php

j'y est inscrit le code php donnée précedement, pour voir la reaction cependant quand je ne rempli aucun champs et que je valide sa me renvoie la dessus

http://pmaison/index.php?action=Verif

imposible de trouver la page est ce normal ?

Re: champs obligatoire

par dunbar » 25 janv. 2010, 23:19

Salut,
Les vérifications uniquement en JavaScript sont dangereuse il suffit qu'il ne soit pas activer sur le navigateur et tes contrôles ne fonctionnerons pas donc je te conseil les deux ou uniquement PHP, mais surement pas uniquement java.

Quand au lien de l’action il te renvoie a la page register.php et la case ‘Verif’
Clique ici pour des explications

Re: champs obligatoire

par spidercrash » 25 janv. 2010, 22:21

quel methode vous me conseillé php ou javascript mais pour le php j'ai une autre question dans le code php il y a cette ligne

<form method="post" action="register.php?action=Verif">

ceci va me renvoyer vers une page verif non ?

Re: champs obligatoire

par stealth35 » 25 janv. 2010, 17:26

sinon en javascript on peux faire un truc du genre :
<script type="text/javascript">
//<![CDATA[
var verifForm = function(form)
{    
	var error     = 0;
	var html      = '';
	var fields    = document.forms[0].elements;

	console.log(fields.length);
					
	for(var i = 0; i < fields.length; i++)
	{                    
		var field = fields[i];
		
		if(field.name && field.value == '')
		{                        
			html += "Merci d'indiquer votre " + field.name + "<br />";
			++error;
		}
	}
	
	if(error !== 0)
	{
		document.getElementById('message').innerHTML = html;
	}
	else
	{
		form.submit();
	}
	
};
//]]>
</script>
avec dans le html

Code : Tout sélectionner

<div id="message"></div>
et pour le form on rajouterai :

Code : Tout sélectionner

onsubmit="verifForm(this); return false;"

Re: champs obligatoire

par stealth35 » 25 janv. 2010, 16:04

Bon alors question optimisation nous pourrions en discuter mais je n'ai pas envie de plus c'est pas le sujet du poste.
Quand a mes case : j'aime bien travailler comme cela j'ai comme habitude de créer un seule fichier par traitement, je suis par contre d'accord concernant le header, par contre je trouve mon code bien plus lisible que le tien (mais bon c'est une question de gout ça :wink: ).
Et puis sauf avis contraire un switch est plus rapide que des if ou elseif
C'est certain que pour un débutant ton est beaucoup plus simple que l'autre exemple :?

je te parlai de casse , genre

Code : Tout sélectionner

$TestForm = (iSset($_GET['action'])
plutot faire :

Code : Tout sélectionner

$testForm = (isset($_GET['action'])
:wink:

Re: champs obligatoire

par dunbar » 25 janv. 2010, 15:48

Bon alors question optimisation nous pourrions en discuter mais je n'ai pas envie de plus c'est pas le sujet du poste.
Quand a mes case : j'aime bien travailler comme cela j'ai comme habitude de créer un seule fichier par traitement, je suis par contre d'accord concernant le header, par contre je trouve mon code bien plus lisible que le tien (mais bon c'est une question de gout ça :wink: ).
Et puis sauf avis contraire un switch est plus rapide que des if ou elseif
C'est certain que pour un débutant ton est beaucoup plus simple que l'autre exemple :?

Re: champs obligatoire

par stealth35 » 25 janv. 2010, 15:41

c'est pas très beau...
Effetivement mais le but était uniquement de montrer une manière de faire en php, pas de lui faire un code complet et propre, ou de faire des remarques qui ne mene à rien, rien de t'empêche de lui indiquer une autre piste ou autre manière de faire.
je suis tout a fait d'accord sur le fait de montrer la manière de procédé, par contre c'est bien de partir quand même sur de bonne base de code un peu plus propre. en partant de ta méthode. On pourrais faire en peu plus propre (c'est surtout la casse qui ma interpellé).
<?php
    $testForm = (isset($_GET['action']) ? $_GET['action'] : null);
    
    switch ($testForm):
        case 'Verif':
            $mess         = "Merci d'indiquer votre %s";
            $message     = array();
            
            foreach($_POST as $key => $value)
            {                
                if(empty($value))
                {
                    $message[] = sprintf($mess, $key);
                }
            }

            if(!empty($message))
            {   
                echo implode('<br />', $message);
            }
            else
            {
                $query = http_build_query(array_merge(array('action' => 'Traitement'), $_POST));
                header("Location:index.php?$query");
            }
            
            break;
        case 'Traitement':
            echo 'Traitement';
            echo '<pre>' . print_r($_GET, true) . '</pre>';
            break;
        default    
		?>
        
        <div id="corps">
            <form method="post" action="index.php?action=Verif">
                <dl>
                    <dt><dt><label for="nom">Nom * :</label><dt>
                    <dd><input type="text" name="nom" id="nom" size="30" value=""/></dd></dd>
                    
                    <dt><label for="prenom">Prénom * :</label><dt>
                    <dd><input type="text" name="prenom" id="prenom" size="30" value=""/></dd>
                    
                    <dt><label for="adresse">Adresse * :</label><dt>
                    <dd><input type="text" name="adresse" id="adresse" size="30" value=""/></dd>
                    
                    <dt><label for="ville">Ville * :</label><dt>
                    <dd><input type="text" name="ville" id="ville" size="30" value=""/></dd>
                    
                    <dt><label for="cp">Code Postal * :</label><dt>
                    <dd><input type="text" name="cp" id="cp" size="10" value=""/></dd>
                    
                    <dt><label for="email">Email * :</label><dt>
                    <dd><input type="text" name="email" id="email" size="30" value=""/></dd>
                    
                    <dt><label for="mps">Mot de Passe * :</label><dt>
                    <dd><input type="text" name="mps" id="mps" size="30" value=""/></dd>
                    
                    <dt><label for="datenaissance">Date de Naissance * :</label><dt>
                    
                    <dd>
                        <input type="text" name="jj" id="jj" size="10" value=""/><label for="jj">JJ</label>
                        <input type="text" name="mm" id="mm" size="10" value=""/><label for="mm">MM</label>
                        <input type="text" name="aa" id="aa" size="10" value=""/><label for="aa">AAAA</label>
                    </dd>
                    
                    <dd><br /><button type="reset">Remise a zéro</button><button type="submit">Envoyer</button></dd>
                </dl>
            </form>
        </div>
        
        <?php break     ?>
        <?php endswitch ?>
je suis pas très convaincu pour le coup du header, mais pourquoi pas...

je fais poster un petit code pour la validation coté javascript :wink:

Re: champs obligatoire

par dunbar » 25 janv. 2010, 14:49

c'est pas très beau...
Effectivement mais le but était uniquement de montrer une manière de faire en php, pas de lui faire un code complet et propre, ou de faire des remarques qui ne mene à rien, rien de t'empêche de lui indiquer une autre piste ou autre manière de faire.

Re: champs obligatoire

par stealth35 » 25 janv. 2010, 14:40

c'est pas très beau...

Re: champs obligatoire

par dunbar » 24 janv. 2010, 21:33

Salut,

Je te conseil de faire les test en php, un exemple ci-dessous
<?php
$TestForm = (iSset($_GET['action']) ? $_GET['action'] : null);
switch ($TestForm)
 {
	  case 'Verif':
	        #############################################
	        #  Champs abligatoire.
	        #

	        $Message  = (Empty($_POST['nom']) ? 'Merci d\'indiquer votre nom.<br />' : null);
	        $Message .= (Empty($_POST['prenom']) ? 'Merci d\'indiquer votre prénom.<br />' : null);
	        $Message .= (Empty($_POST['adresse']) ? 'Merci d\'indiquer votre adresse.<br />' : null);
	        $Message .= (Empty($_POST['ville']) ? 'Merci d\'indiquer votre ville.<br />' : null);
	        $Message .= (Empty($_POST['cp']) ? 'Merci d\'indiquer votre cp.<br />' : null);
	        $Message .= (Empty($_POST['email']) ? 'Merci d\'indiquer votre email.<br />' : null);
	        $Message .= (Empty($_POST['mps']) ? 'Merci d\'indiquer votre mps.<br />' : null);
	        $Message .= (Empty($_POST['jj']) ? 'Merci d\'indiquer votre jj.<br />' : null);
	        $Message .= (Empty($_POST['mm']) ? 'Merci d\'indiquer votre mm.<br />' : null);
	        $Message .= (Empty($_POST['aa']) ? 'Merci d\'indiquer votre aa.<br />' : null);


	        if($Message == TRUE)
	        {   //En cas de champs manquant on affiche le(s) message(s)
	        	echo $Message;
	        }
	         else
	              { //Si aucun message ont passe au traitement
	              	extract($_POST);
	              	header("Location:register.php?action=Traitement&nom='".$nom."'&prenom='".$prenom."'&adresse='".$adresse."'&cp='".$cp."'&ville='".$ville."'&mail='".$email."'&mps='".$mps."'&jj='".$jj."'&mm='".$mm."'&aa='".$aa."'");
	              }

	    break;
	  case 'Traitement':
	       echo 'Traitement';

	       echo '<pre>';
            print_r($_GET);
           echo '</pre>';
	    break;
	  default;


	echo '<div id="corps">
	       <form method="post" action="register.php?action=Verif">
	        <p>
	        <label for="nom">Nom * :</label><br />
	        <input type="text" name="nom" id="nom" size="30" /><br />
	        <label for="prenom">Prénom * :</label><br />
	        <input type="text" name="prenom" id="prenom" size="30" /><br />
	        <label for="adresse">Adresse * :</label><br />
	        <input type="text" name="adresse" id="adresse" size="30" /><br />
	        <label for="ville">Ville * :</label><br />
	        <input type="text" name="ville" id="ville" size="30" /><br />
	        <label for="cp">Code Postal * :</label><br />
	        <input type="text" name="cp" id="cp" size="10" /><br />
	        <label for="email">Email * :</label><br />
	        <input type="text" name="email" id="email" size="30" /><br />
	        <label for="mps">Mot de Passe * :</label><br />
	        <input type="text" name="mps" id="mps" size="30" /><br />
	        <label for="datenaissance">Date de Naissance * :</label><br />
	        <input type="text" name="jj" id="jj" size="10" /><label for="datenaissance">JJ</label>
	        <input type="text" name="mm" id="mm" size="10" /><label for="datenaissance">MM</label>
	        <input type="text" name="aa" id="aa" size="10" /><label for="datenaissance">AAAA</label><br />
	        </p>
	        <input type="reset" value="Remise a zéro" />
	        <input type="submit" value="Envoyer" />

	        </form>

	 </div>';

	    break;
 }



?>

Re: champs obligatoire

par spidercrash » 24 janv. 2010, 17:58

Tu peux utiliser le php.
Il teste les données du formulaire et si ils voient qu'ils manquent des informations ils renvoient
sur la page du formulaire.
et quel fonction dois-je utilisé pour qu'a l'action du bouton envoie du formulaire le php controle les champs ?