aide php pour un vrai débutant

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 : aide php pour un vrai débutant

Re: aide php pour un vrai débutant

par lunatikzx » 04 juil. 2011, 05:19

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/script.js"></script>
<title>PHP validation</title>
<?php 
if (isset($_POST['soumet'])){
	
	if ((isset($_POST['surname'])) && (isset($_POST['name'])) && (isset($_POST['telephone']))&& (isset($_POST['courriel'])) && (isset($_POST['pays']))&& (isset($_POST['province']))){
		
		$surname= $_POST['surname'];
		$name= $_POST['name'];
		$telephone= $_POST['telephone'];
		$courriel= $_POST['courriel'];
		$pays= $_POST['pays'];
		$province= $_POST['province'];		
		$erreur = false;
		
		if (empty($_POST['surname'])){
			echo '<p class="erreur">*Veuillez remplir la case prénom correctement.</p>';
			$erreur=true;
			}
		if (is_int($_POST['surname'])){
			echo '<p class="erreur">*Veuillez nepas mettre de chiffre dans la case prénom.</p>';
			$erreur=true;
			}	
		
		if (empty($_POST['name'])){
			echo '<p class="erreur">*Veuillez remplir la case nom correctement.</p>';
			$erreur=true;
			}
		
		if (is_int($_POST['name'])){
			echo '<p class="erreur">*Veuillez nepas mettre de chiffre dans la case prénom.</p>';
			$erreur=true;
			}	
		
		if (empty($_POST['telephone'])){
			echo '<p class="erreur">*Veuillez remplir la case téléphone correctement.</p>';
			$erreur=true;
			}
		if (!preg_match('/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/',$_POST['telephone'])){
    		echo '<p class="erreur">*Veuillez entrer un numéro de téléphone valide. (xxx-xxx-xxxx)</p>';
        	$erreur=true;
			}
		
		if (isset($_POST['check_oui'])){
			if (!preg_match('/^[a-z][a-z0-9-\._]+@[a-z0-9-\._]+\.[a-z]{2,5}$/i',$_POST['courriel'])){
				echo '<p class="erreur">*Veuillez entrer votre courriel</p>';
				$erreur=true;
				}	
			}
		if (($_POST['pays'])==0){
			echo '<p class="erreur">*Veuillez choisir un pays</p>';
			$erreur=true;
		}
		if (($_POST['province'])==0){
			echo '<p class="erreur">*Veuillez choisir une province</p>';
			$erreur=true;
		}
	}
	if ($erreur == false){
		echo "<p> Document envoyé merci $name $surname</p>";
	}
}
?>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body>
<h1>PHP Validation<span id="soumise"></span></h1>
<div>
	<form action="index.php" method="post" id="formulaire" >
  		<p><label>Veuillez entrer votre prenom: <input type="text" id="surname" name="surname" placeholder="Entrer prénom" value="<?php if (isset($surname)){ echo $surname;}?>"></label></p>
    	<p id="rSurname" class="erreur"></p>   
         
        <p><label>Veuillez entrer votre nom: <input type="text" id="name" name="name" placeholder="Entrer nom"value="<?php if (isset($name)){ echo $name;}?>"></label></p>
        <p id="rName" class="erreur"></p>
	  
        <p><label> Veuillez entrer votre numero de téléphone: <input type="text" id="telephone" name="telephone" placeholder="Entrer téléphone"value="<?php if (isset($telephone)){ echo $telephone;}?>"></label></p>
    	<p id="rTelephone" class="erreur"></p>
      
        <p> Cochez pour recevoir les informations conçernant le site?: </p>
 		
        <p><label>Oui<input type="checkbox" name="check_oui" id="check_oui" value="true"></label></p>
        <p><label> Veuillez entrer votre courriel: <input type="text" id="courriel" name="courriel" placeholder="Entrer courriel"value="<?php if (isset($courriel)){ echo $courriel;}?>"></label></p>
   		<p id="rCourriel" class="erreur"></p>   
        <p><label>Veuillez choisir un pays et une province:</label></p>   
        <p>
        <select name="pays" id="pays" value="<?php if(isset($pays)){ echo ($pays);}?>">
            <option value="0" name="">Choisir</option>
            <option value="1" name="Canada">Canada</option>
            <option value="2" name="Etats-Unis">États-Unis</option>
            <option value="3" name="Ouganda">Ouganda</option>
            <option value="4" name="Cameroun">Cameroun</option>
        </select>
        <select name="province" id="province" value="<?php if (isset($province)){ echo $province;}?>">
        	<option value="0">Choisir</option>
            <option value="QC">QC</option>
            <option value="ON">ON</option>
            <option value="AB">AB</option>
            <option value="MB">MB</option>
            <option value="IPE">IPE</option>
            <option value="C-B">C-B</option>
            <option value="N-B">N-B</option>
            <option value="N-E">N-E</option>
            <option value="NU">NU</option>
            <option value="TN">TN</option>
            <option value="SK">SK</option>
            <option value="YU">YU</option>
            <option value="0">---</option> 
            <option value="AK">AK</option>
            <option value="AL">AL</option>
            <option value="AR">AR</option>
            <option value="AZ">AZ</option>
            <option value="CA">CA</option>
            <option value="CO">CO</option>
            <option value="CT">CT</option>
            <option value="DC">DC</option>
            <option value="DE">DE</option>
            <option value="FL">FL</option>
            <option value="GA">GA</option>
            <option value="HI">HI</option>
            <option value="IA">IA</option>
            <option value="ID">ID</option>
            <option value="IL">IL</option>
            <option value="IN">IN</option>
            <option value="KS">KS</option>
            <option value="KY">KY</option>
            <option value="LA">LA</option>
            <option value="MA">MA</option>
            <option value="MD">MD</option>
            <option value="ME">ME</option>
            <option value="MI">MI</option>
            <option value="MN">MN</option>
            <option value="MO">MO</option>
            <option value="MS">MS</option>
            <option value="MT">MT</option>
            <option value="NC">NC</option>
            <option value="ND">ND</option>
            <option value="NE">NE</option>
            <option value="NH">NH</option>
            <option value="NJ">NJ</option>
            <option value="NM">NM</option>
            <option value="NV">NV</option>
            <option value="NY">NY</option>
            <option value="OH">OH</option>
            <option value="OK">OK</option>
            <option value="OR">OR</option>
            <option value="PA">PA</option>
            <option value="RI">RI</option>
            <option value="SC">SC</option>
            <option value="SD">SD</option>
            <option value="TN">TN</option>
            <option value="TX">TX</option>
            <option value="UT">UT</option>
            <option value="VA">VA</option>
            <option value="VT">VT</option>
            <option value="WA">WA</option>
            <option value="WI">WI</option>
            <option value="WV">WV</option>
            <option value="WY">WY</option>
		</select>
        </p>
        
    	<p id="rPays" class="erreur"></p>
        
   		<p><input type="submit" name="soumet" id="soumet" value="Soumet"></p>
        <p><input type="reset" value="Recommencer"></p>
	</form>
</div>
</body>
</html>
voila j'ai réussi ... ça ne prenait pas grand chose juste un ou deux judicieux conseil...
reste plus qu'a valider le champ province.
Merci !!!

Re: aide php pour un vrai débutant

par lunatikzx » 04 juil. 2011, 01:55

Et pourquoi lorsque j'ajoute un if autour de tout ces if jsute pour demander au formulaire d'être validé lors du click du bouton soumet , ca ne fonctionne pas?

Re: aide php pour un vrai débutant

par lunatikzx » 04 juil. 2011, 00:39

Donc si je comprend bien je devrait verifier avec is set si toutes mes variable sont présente et dans une condition indenté dans la condition qui vérifie si celle ci est bien définie.

Re: aide php pour un vrai débutant

par Ryle » 04 juil. 2011, 00:34

Pourquoi est-ce que sur certaines lignes, tu testes avec isSet() ou empty() si la variable $_POST['xxx'] existe avant de l'utiliser, alors que pour $_POST['telephone'], tu fais directement un preg... du coup si la variable n'est pas définie, php te renvoi ce message d'erreur :)

Re: aide php pour un vrai débutant

par Invité » 04 juil. 2011, 00:31

bon ça va aller mieux comme ça ...
c'est l'erreur qui me reste

Notice: Undefined variable: telephone in C:\xampp\htdocs\php_forms\index.php on line 15

Re: aide php pour un vrai débutant

par lunatikzx » 04 juil. 2011, 00:27

Code : Tout sélectionner

[php]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" src="js/script.js"></script> <title>PHP validation</title> <?php if ((!isset($_POST['surname']))||is_int($_POST['surname'])){ echo '<p class="erreur">*Veuillez remplir la case prénom correctement.</p>'; } if (empty($_POST['name'])){ echo '<p class="erreur">*Veuillez remplir la case nom.</p>'; } if (!preg_match('/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/',$_POST['telephone'])){ echo '<p class="erreur">*Veuillez entrer un numéro de téléphone valide. (xxx-xxx-xxxx)</p>'; } if (isset($_POST['check_oui'])){ if (!preg_match('/^[a-z][a-z0-9-\._]+@[a-z0-9-\._]+\.[a-z]{2,5}$/i',$_POST['courriel'])){ echo '<p class="erreur">*Veuillez entrer votre courriel</p>'; } } if (isset($_POST['n_pays'])){ echo '<p class="erreur">*Veuillez choisir un pays</p>'; } ?> </head> <body> <h1>PHP Validation</h1> <div> <form action="index.php" method="post" id="formulaire" > <p><label>Veuillez entrer votre prenom: <input type="text" id="surname" name="surname" placeholder="Entrer prénom"></label></p> <p id="rSurname" class="erreur"></p> <p><label>Veuillez entrer votre nom: <input type="text" id="name" name="name" placeholder="Entrer nom"></label></p> <p id="rName" class="erreur"></p> <p><label> Veuillez entrer votre numero de téléphone: <input type="text" id="telephone" name="telephone" placeholder="Entrer téléphone"></label></p> <p id="rTelephone" class="erreur"></p> <p> Cochez pour recevoir les informations conçernant le site?: </p> <p><label>Oui<input type="checkbox" name="check_oui" id="check_oui" value="true"></label></p> <p><label> Veuillez entrer votre courriel: <input type="text" id="courriel" name="courriel" placeholder="Entrer courriel"></label></p> <p id="rCourriel" class="erreur"></p> <p> <select name="n_pays" id="n_pays"> <option value="0" id="">Choisir</option> <option value="1" id="Canada">Canada</option> <option value="2" id="Etats-Unis">États-Unis</option> <option value="3" id="Ouganda">Ouganda</option> <option value="4" id="Cameroun">Cameroun</option> </select> </p> <p id="rPays" class="erreur"></p> <p><input type="submit" value="Valider"></p> <p><input type="reset" value="Recommencer"></p> </form> </div> </body> </html>[/php]

Re: aide php pour un vrai débutant

par moogli » 03 juil. 2011, 15:54

globalement : aucun des champs du formulaire ne correspond au traitement html !

première chose a faire corrigé les nom (soit dans le html sans dans le code php c'est toi qui vois). L'attribut name c'est qui va servire pour l'index dans le tableau $_POST, donc name="truc" va donner $_POST['truc'] !

@+

Re: aide php pour un vrai débutant

par lunatikzx » 03 juil. 2011, 15:41

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/script.js"></script>
<title>PHP validation</title>
<?php 
	if ((!isset($_POST['surname']))||is_int($_POST['surname'])){
		echo '<p class="erreur">*Veuillez remplir la case prénom correctement.</p>';
   		}
	if (empty($_POST['name'])){
        echo '<p class="erreur">*Veuillez remplir la case nom.</p>';
		}
	if (!preg_match('/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/',$_POST['telephone'])){
    	echo '<p class="erreur">*Veuillez entrer un numéro de téléphone valide. (xxx-xxx-xxxx)</p>';
        }
	if (isset($_POST['check_oui'])){
			if (!preg_match('/^[a-z][a-z0-9-\._]+@[a-z0-9-\._]+\.[a-z]{2,5}$/i',$_POST['courriel'])){
				echo '<p class="erreur">*Veuillez entrer votre courriel</p>';
			}
		}
	if (isset($_POST['n_pays'])){
		echo '<p class="erreur">*Veuillez choisir un pays</p>';
		}
		

?>
</head>

<body>
<h1>PHP Validation</h1>
<div>
	<form action="index.php" method="post" id="formulaire" >
  		<p><label>Veuillez entrer votre prenom: <input type="text" id="surname" name="Prenom" placeholder="Entrer prénom"></label></p>
    	<p id="rSurname" class="erreur"></p>   
         
        <p><label>Veuillez entrer votre nom: <input type="text" id="name" name="Nom" placeholder="Entrer nom"></label></p>
        <p id="rName" class="erreur"></p>
	  
        <p><label> Veuillez entrer votre numero de téléphone: <input type="text" id="telephone" name="NumTel" placeholder="Entrer téléphone"></label></p>
    	<p id="rTelephone" class="erreur"></p>
      
        <p> Cochez pour recevoir les informations conçernant le site?: </p>
 		
        <p><label>Oui<input type="checkbox" name="oui" id="check_oui" value="true"></label></p>
        <p><label> Veuillez entrer votre courriel: <input type="text" id="courriel" name="Courriel" placeholder="Entrer courriel"></label></p>
   		<p id="rCourriel" class="erreur"></p>   
              
        <p>
        <select name="pays" id="n_pays">
            <option value="0" id="">Choisir</option>
            <option value="1" id="Canada">Canada</option>
            <option value="2" id="Etats-Unis">États-Unis</option>
            <option value="3" id="Ouganda">Ouganda</option>
            <option value="4" id="Cameroun">Cameroun</option>
        </select>
        </p>
        
    	<p id="rPays" class="erreur"></p>
        
   		<p><input type="submit" value="Valider"></p>
        <p><input type="reset" value="Recommencer"></p>
	</form>
</div>
</body>
</html>

Re: aide php pour un vrai débutant

par moogli » 03 juil. 2011, 15:19

salut,

undefined index en français c'est index non définis, clairement tu utilise un index du tableau $_POST qui n'existe pas, pour éviter cela il faut utiliser isset et ou empty afin d'être sur que le formulaire est comme tu le souhaite (et tu ne peux faire confiance a ce qui est envoyé car n'importe qui peux modifier du html ou envoyer une requête html sur ton script ;) )

sans le message d'erreur complet et le formulaire html on ne peux pas plus t'aider.

@+

aide php pour un vrai débutant

par lunatikzx » 03 juil. 2011, 14:39

Bonjour a tous j'ai quelques problemes avec un code php que je dois faire pour un travail scolaire.
J'appelle des la fonction pregmatch pour valider les champs courriel et telephone mais PHP me retourne constamment l'erreur Undefined index.

Code : Tout sélectionner

<?php if ((!isset($_POST['surname']))||is_int($_POST['surname'])){ echo '<p class="erreur">*Veuillez remplir la case prénom correctement.</p>'; } if (empty($_POST['name'])){ echo '<p class="erreur">*Veuillez remplir la case nom.</p>'; } if (!preg_match('/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/',$_POST['telephone'])){ echo '<p class="erreur">*Veuillez entrer un numéro de téléphone valide. (xxx-xxx-xxxx)</p>'; } if (isset($_POST['check_oui'])){ if (!preg_match('/^[a-z][a-z0-9-\._]+@[a-z0-9-\._]+\.[a-z]{2,5}$/i',$_POST['courriel'])){ echo '<p class="erreur">*Veuillez entrer votre courriel</p>'; } } if (isset($_POST['n_pays'])){ echo '<p class="erreur">*Veuillez choisir un pays</p>'; } ?>
j'ai essayé de trouver des réponses un peu partout sur le net mais je n'arrive pas a en trouve une qui me convienne .

j'attend vos réponses .