formulaire d' authentification

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 d' authentification

par dunbar » 26 juin 2009, 18:48

A quoi ça sert que charabia te donne des conseils :?:
Si un enregistrement se fait à chaque rechargement de ta page c'est que tes conditions ne sont pas prises en compte.

Tu détectes en premier lieu l'action submit avec un isset($_POST['envoyer']) pour dire Si on clique sur envoyer on agit.

Ensuite tu fais tes conditions
if
{
//erreur1
}
elseif
{
//erreur2
}
elseif
{
//erreur3
}
else
{
//insertion données
}
Et en plus fait gaffe le breton est dans le coin :wink:

par Nagol » 26 juin 2009, 18:37

A tu fais comme t'indiquait charabia :?:
Si oui montre ton code corriger.
Et plus vite que ça! non mé!

par dunbar » 26 juin 2009, 17:49

A tu fais comme t'indiquait charabia :?:
Si oui montre ton code corriger stp.

par zyriuse75 » 26 juin 2009, 17:33

oublier ce que j ai écrit avant j 'ai dit que de la m.. :oops:
j ai suivis t ai conseille charabia j ai fais attention au condition et justement il me manquer 2 condition 2 else
j ai rajouter les 2 else et quand je viens a lancer le fichier la il me dit
" impossible de verifier votre authenticiter" il s'arrete donc à
if (!sql)
{
 message = " impossible ...."
}
voici donc le code actualiser
<?php
include ('connect_bdd.php');
 

	if (isset($_post['nom'])&& isset($_post['prenom'])&& isset($_post['age'])&& isset($_post['ville'])&& isset($_post['mail']) && isset($_post['login'])&& isset($_post['password'])&& isset($_post['confirmation'])&& isset($_post['Os'])){
		extract ($_post);
				}
	
	if (!empty($_post) && !empty($_post) && !empty($_post) && !empty($_post))
				{
					$message = "veuillez remplir les case";
				}
				

	 if(!ereg("^[A-Za-z0-9_]{4,20}$", $_post["login"]))
	 			{
    				$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caracteres<br />\n";
    			}
    			
  	 else if(!ereg("^[A-Za-z0-9]{4,}$", $_post["password"]))
				{
  	 				$message = "Votre mot de passe doit comporter au moins 4 caracteres";
			   }
    
 	 else if($_post["password"] != $_post["confirmation"])
				{
    				$message = "Votre mot de passe n'a pas ete correctement confirme";
  				}
   
    else if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",$_post["mail"]))
				{
    				$message = "Votre adresse e-mail n'est pas valide";
   			}
   else
   {
   			
 		$sql = mysql_query("
                    SELECT login,mail
                    FROM membre
                    WHERE login = '" . $_post["login"] . "'
                    OR mail = '" . $_post["mail"] . "'");

}
//probleme se trouve par ici je crois 
if (!$sql)
    {
      $message =" Impossible de verifier votre authenticiter";
	 }
	 
    else
    {
    if (mysql_num_rows($sql) > 0)                    
     {
     while($row = mysql_fetch_array($sql))
     {
        if($_post["login"] == $row["login"])
        
                              {
                                   $message = "Le nom d'utilisateur " . $_post["login"];
                                   $message .= "est deja utilise";
                              }
                              else if($_post["mail"] == $row["mail"])
                              {
                                   $message = "L'adresse mail " . $_post["mail"];
                                   $message .= "est deja utilisee";
                              }
                            }                       
                                                                    
                         // Création du compte utilisateur
                         $sql = mysql_query("
                              INSERT INTO membre(
                                   nom
                                   , prenom
                                   , age
                                   , ville
                                   , mail
                                   , login
                                   , password
                                   , Os
                              )
                              VALUES(
                                   '" . $_post["nom"] . "'
                                   ,'" . $_post["prenom"] . "'
                                   ,'" . $_post["age"] . "'
                                   ,'" . $_post["ville"] . "'
                                   ,'" . $_post["mail"] . "'
                                   ,'" . $_post["login"] . "'
                                   ,'" . md5($_post["password"]) . "'
                                   ,'" . $_post["Os"] . "'
                                   )
      			         ");
      			                  
      			                  
      			               if ($sql === true)
      			               {
						           $message = "la compte viens d'etre creer";
						           $message .= '<a href="index.php"> Retour</a>';
					             }
				
				else
				{
				  $message =mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
		         }
		}
     }

?>

<html>
<head><title>session d'enregistrement</title></head>
<body>
<link rel="stylesheet" type="text/css" title="design" href="design.css" />
<form  method="post" action="#" class="css">


<fieldset>
<legend><b>Vos cordonnees</b></legend>
<table>

<tr><td><label>Nom : </label></td><td><input type="text" class="nom" name="nom" id="form_nom" size="20"maxlenght="20"/>
</td></tr></p>

<tr><td><label>prenom : </label></td><td><input type="text" name="prenom" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Age : </label></td><td><input type="text" name="age" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Ville : </label></td><td><input type="text" name="ville" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Mail : </label></td><td><input type="text" name="mail" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Login : </label></td><td><input type="text" name="login" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Password : </label></td><td><input type="password" name="pass" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>confirmation du password : </label></td><td><input type="password" name="confirm" size="20"maxlenght="20"/>
</td></tr>

<tr><td><label>Os utilise : </label></td><td><input type="text" name="Os" size="20"maxlenght="20"/>
</td></tr>

</table>
<tr></fieldset>

<td><input type="reset" value=" effacer " ></td>
<td><input type="submit"value=" Envoyer " name="envoyer"></td>

<p>
<?php echo $message ?>
</p>

par charabia » 26 juin 2009, 17:29

Ce n'est pas que sur cette ligne. As-tu fait ce que je t'ai conseillé de faire ?

Autant partir sur un code qui soit propre dès le départ.

par zyriuse75 » 26 juin 2009, 17:18

j ai réussit à situer le problème il à l'air de venir de cette ligne
if (!$sql)
    {
    $message =" Impossible de verifier votre authenticiter";
} 
si je viens à enlever la ligne il me dit que mon nom doit comporter entre 4 et 20 caractère j 'ai beau relire et relire , j ai vraiment du mal à la trouver cette erreur[/php]

par zyriuse75 » 26 juin 2009, 14:50

desoler d'avoir oublier charabia,AB,et dunbar dans mes remerciement pour votre aide à m aider à trouver mon erreur je vais aller regarder sa de plus prés .

bonne journée à vous tous à bientôt :lol: :lol:

par dunbar » 26 juin 2009, 14:30

merci pour ton aide dumbar
De rien, mais charabia et AB sont est là aussi :) , de plus pour info c'est dunbar et pas dumbar :evil: :wink:

par charabia » 26 juin 2009, 14:28

Si un enregistrement se fait à chaque rechargement de ta page c'est que tes conditions ne sont pas prises en compte.

Tu détectes en premier lieu l'action submit avec un isset($_POST['envoyer']) pour dire Si on clique sur envoyer on agit.

Ensuite tu fais tes conditions
if
{
//erreur1
}
elseif
{
//erreur2
}
elseif
{
//erreur3
}
else
{
//insertion données
}

par zyriuse75 » 26 juin 2009, 11:19

j ai rajouter le message
$message = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
merci pour ton aide dumbar

par contre la je commence vraiment à sécher pour trouver la solution a mon autre problème comme quoi il vient à me créer un compte des que j'actualise la page et nom quand on rentre les données
[/php]

par dunbar » 25 juin 2009, 18:07

une faute d'inattention de ma part.
par contre j arrive pas à régler le problème comme quoi il vient a créer un compte à chaque actualisation, quand je remplit les champs et que je clique sur envoyer il n'y a aucun compte qui se créer

merci pour l'aide
Rajoute l'affichage des erreurs MySQl peut-être :?:
if ($sql === true){
                                            $message = "la compte viens d'etre creer";
                                            $message .= '<a href="index.php"> Retour</a>';
                    } else
	                    	{
	                    		$message = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

	                       }
De plus au risque de dire une bêtise mais quand tu fais extract() $_POST['login'] devient $login par exemple.
Donc il faudrait faire un INSERT de $login et non pas $_POST['login'] :wink:

par zyriuse75 » 25 juin 2009, 17:57

une faute d'inattention de ma part.
par contre j arrive pas à régler le problème comme quoi il vient a créer un compte à chaque actualisation, quand je remplit les champs et que je clique sur envoyer il n'y a aucun compte qui se créer

merci pour l'aide

par charabia » 25 juin 2009, 15:13

Pourquoi tu as 2 FORM sans aucune action ?

par zyriuse75 » 25 juin 2009, 15:11

excuse moi je penser l'avoir déposer
<?php
include ('connect_bdd.php');

	if (isset($_post['nom'])&& isset($_post['prenom'])&& isset($_post['age'])&& isset($_post['ville'])&& isset($_post['mail']) && isset($_post['login'])&& isset($_post['password'])&& isset($_post['confirmation'])&& isset($_post['Os'])){
		extract ($_post);
				}
	
	if (!empty($_post) && !empty($_post) && !empty($_post) && !empty($_post))
				{
					$message = "veuillez remplir les case";
				}
				

	 if(!ereg("^[A-Za-z0-9_]{4,20}$", $_post["login"]))
	 			{
    				$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caracteres<br />\n";
    			}
    			
  	 else if(!ereg("^[A-Za-z0-9]{4,}$", $_post["password"]))
				{
  	 				$message = "Votre mot de passe doit comporter au moins 4 caracteres";
			   }
    
 	 else if($_post["password"] != $_post["confirmation"])
				{
    				$message = "Votre mot de passe n'a pas ete correctement confirme";
  				}
   
    else if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",$_post["mail"]))
				{
    				$message = "Votre adresse e-mail n'est pas valide";
   			}
   			
   			
 		$sql = mysql_query("
                    SELECT login,mail
                    FROM membre
                    WHERE login = '" . $_post["login"] . "'
                    OR mail = '" . $_post["mail"] . "'");


if (!$sql)
    {
      $message =" Impossible de verifier votre authenticiter";
	 }
	 
    else
    {
    if (mysql_num_rows($sql) > 0)                    
     
     while($row = mysql_fetch_array($sql))
     {
        if($_post["login"] == $row["login"])
        
                              {
                                   $message = "Le nom d'utilisateur " . $_post["login"];
                                   $message .= "est deja utilise";
                              }
                              else if($_post["mail"] == $row["mail"])
                              {
                                   $message = "L'adresse mail " . $_post["mail"];
                                   $message .= "est deja utilisee";
                              }
                              
                         }
                                                                    
                         // Création du compte utilisateur
                         $sql = mysql_query("
                              INSERT INTO membre(
                                   nom
                                   , prenom
                                   , age
                                   , ville
                                   , mail
                                   , login
                                   , password
                                   , Os
                              )
                              VALUES(
                                   '" . $_post["nom"] . "'
                                   ,'" . $_post["prenom"] . "'
                                   ,'" . $_post["age"] . "'
                                   ,'" . $_post["ville"] . "'
                                   ,'" . $_post["mail"] . "'
                                   ,'" . $_post["login"] . "'
                                   ,'" . md5($_post["password"]) . "'
                                   ,'" . $_post["Os"] . "'
                                   )
      			                  ");   
      			               if ($sql === true){
											$message = "la compte viens d'etre creer";
											$message .= '<a href="index.php"> Retour</a>';
					}	
				
}


?>


<html>
<head><title>session d'enregistrement</title></head>
<body>

<form  method="post" action="#">
<form  action="" class="css">
<fieldset>

<legend><b>Vos cordonnees</b></legend>
<table>

<label><tr><td>Nom : </td><td><input type="text" name="nom" id="nom" size="20"maxlenght="20"/>
</td></tr></label>

<tr><td>Prenom : </td><td><input type="text" name="prenom" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Age : </td><td><input type="text" name="age" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Ville : </td><td><input type="text" name="ville" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Mail : </td><td><input type="text" name="mail" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Login : </td><td><input type="text" name="login" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Password : </td><td><input type="password" name="pass" size="20"maxlenght="20"/>
</td></tr>

<tr><td>confirmation du password : </td><td><input type="password" name="confirm" size="20"maxlenght="20"/>
</td></tr>

<tr><td>Os utilise : </td><td><input type="text" name="Os" size="20"maxlenght="20"/>
</td></tr>

</table>
<tr>

<td><input type="reset" value=" effacer " ></td>
<td><input type="submit"value=" Envoyer " name="envoyer"></td>

</fieldset>

<p>
<?php echo $message ?>
</p>

</form>
</tr>
</body>
</html>
encore merci pour t ai reponse et de ton aide :) [/php]

par charabia » 25 juin 2009, 14:18

tu nous remets le code corrigé ?