Controle de formulaire d'inscription

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 : Controle de formulaire d'inscription

Re: Controle de formulaire d'inscription

par xTG » 10 déc. 2012, 15:51

Cela signifie que tu n'as pas une ressource MySQL mais un booléen.
La fonction mysql_query() renvoie un booléen à false lorsque la requête contient une erreur à l'exécution.

Je parierai pour des caractères spéciaux dans les valeurs que tu lui passes vu que tu ne protèges pas ces dites variables.
Tu as mysql_real_escape_string() pour protéger des variables à injecter dans une requête.

Sinon tu peux utiliser mysql_error() pour avoir l'erreur relative au mysql_query() (en plaçant la fonction après).

Re: Controle de formulaire d'inscription

par gabrieltm99 » 10 déc. 2012, 15:31

Lorsque que j'essais de m'enregistre comme un client j'ai se message d'erreur pourtant lorsque je le vois Hé bien il me semble que cela à l'air

( ! ) Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\tp\login.php on line 22




function verification_mail($email,$nom,$pass){
if($email != "" && $nom != ""&& $pass != ""){
$requete = "SELECT * FROM utilisateur, WHERE courriel='$email' AND nom='$nom' AND motPasse='$pass'";
$result = mysql_query($requete);


if ($enreg = mysql_fetch_row($result)) { /*<---- la ligne 22 est ici je suis dans l'impasse*/
// Si une ligne a été trouvée c'est que le couple
// (identifant, mot de passe) est valide

Re: Controle de formulaire d'inscription

par xTG » 07 déc. 2012, 14:23

Si tu ne sais pas où c'est que tu n'as pas de souci non ?
On a un problème ou on en a pas...

Donc si tu as un problème quel est-il ?
Car dire "j'ai un souci" n'apporte absolument rien du tout...

Controle de formulaire d'inscription

par pacphil » 07 déc. 2012, 12:48

Bonjour j'essaie de créer un formulaire d'inscription a mon espace membre en une seule page php mais j'ai quelque soucis et je vois pas très bien ou exactement.
Seriez vous m'aidez svp?

Merci d'avance
<?PHP

function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
}

    //Verifie le nom est correct uniquement des lettres
    $motif_nom ='/^[a-z\d_]{3,12}$/i';
    if(!preg_match($motif_nom,$_POST['nom']))
    {
	echo'<div id="dialog" title="Erreur">Votre nom est incorrect!!!!</div>';
	include("footer.php");
    return FALSE;			 
    }
    else{
	$_POST['nom'];
    }

    //vérification de la premier adresse email puis le seconde
    $motif_email ='/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/';
   if(!preg_match($motif_email,$_POST['email']))
    {
	echo'<div id="dialog" title="Erreur">La premier adresse email est incorrect!!!!</div>';
	include("footer.php");
    return FALSE;				 
    }
    else{
	$_POST['email'];
    }
	
    $motif_email_2 ='/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/';
    if(!preg_match($motif_email_2,$_POST['email_2']))
    {
	echo'<div id="dialog" title="Erreur">La deuxi&egrave;me adresse email est incorrect!!!!</div>';
	include("footer.php");
    return FALSE;	
    }
    else{
	$_POST['email_2'];
    }



$nom        = (isset($_POST['nom']))          ? Rec($_POST['nom'])          : '';
$email      = (isset($_POST['email']))        ? Rec($_POST['email'])        : '';
$email_2    = (isset($_POST['email_2']))      ? Rec($_POST['email_2'])      : '';
$sexe       = (isset($_POST['sexe']))         ? Rec($_POST['sexe'])         : '';
$security   = (isset($_POST['security_code']))? Rec($_POST['security_code']):'';

$ip =   $_SERVER['REMOTE_ADDR'];
		$date                      = date("Y-m-d");
        $quipass                   = date("Y-m-d");
		$heure                     = date("H:i:s");
        $heurepass                 = date("H:i:s");
		
		
////////////////////////////////////nouvel partie/////////////////////////////////////////////////////////////////////////////////////
if( isset($_POST['Submit'])) {
	
	$inscr=0;
	
    if($security == $_POST['security_code'] && !empty($security)) 
    {
	unset($_POST['security_code']);

	echo' <script>
    $(document).ready(function() {
    $("#dialog").dialog({
	modal: true,
	opacity: 0.1,	 
	minWidth: 400 ,
	height: 120,
	position: [500,250], 	                      
	buttons: { "Ok": function() {
	$(location).attr("href","inscription.php"); { $(this).dialog("close"); } } }
  	});	});
    </script>';
	echo'<div id="dialog" title="Erreur">Le code de s&eacute;curit&eacute; n&acute;est pas correct!!!!</div>';  
    include("footer.php");
	$inscr=1;
	return FALSE;
    }
   	else
	{	
		if (($nom != '') && ($email != '') && ($email_2!= '') && ($sexe != ''))
		{
/////////////////////////////////////teste le nom dans la base de donnée///////////////////////////////////////		
	$texts_exist=mysql_query("SELECT email FROM comptes WHERE nom='$nom'") or die (mysql_error());
	$test_nom_nb=mysql_num_rows($texts_exist);
	if(!$test_nom_nb==0)
	{
	echo' <script>
    $(document).ready(function() {
    $("#dialog").dialog({
	modal: true,
	opacity: .80,		
	minWidth: 400 ,
	height: 120,
	position: [450,250], 		                       
	buttons: { "Ok": function() { 
	$(location).attr("href","index.php"); { $(this).dialog("close"); } } }
  	});	});
    </script>';
	echo'<div id="dialog" title="Erreur">Votre Nom est dans la base de donn&eacute;e!!!!</div>';
	include("footer.php");
    $inscr=1;
    return FALSE;				
	}	
///////////////////////////////test email si elle est dans la base////////////////////////////////////////
	$text_exist=mysql_query("SELECT email FROM comptes WHERE email='$email'") or die (mysql_error());
	$test_email_nb=mysql_num_rows($text_exist);
	if(!$test_email_nb==0)
	{
	echo' <script>
    $(document).ready(function() {
    $("#dialog").dialog({
	modal: true,
	opacity: .80,		
	minWidth: 400 ,
	height: 120,
	position: [450,250], 		                       
	buttons: { "Ok": function() { 
	$(location).attr("href","inscription.php"); { $(this).dialog("close"); } } }
  	});	});
    </script>';
	echo'<div id="dialog" title="Erreur">Email est dans la base!!!!</div>';
	include("footer.php");
    $inscr=1;
    return FALSE;				
    }
///////////////////////////////////////////////////////////////////////////////////////////////////////				

			
		    $taille = 20;
			$lettres = "abcdefghijklmnopqrstuvwxyz0123456789AZERTYUIOPMLKJHGFDSQWXCVBN";
			srand(time());
			for ($i=0;$i<$taille;$i++)
				{
				@$idm.=substr($lettres,(rand()%(strlen($lettres))),1);
				}
	       // Creation d'un identifiant
	       $tail = 8;
	       $lett = "abcdefghijklmnopqrstuvwxyz0123456789";
	       srand(time());
	       for ($i=0;$i<$tail;$i++)
		       {
		       @$pass2.=substr($lett,(rand()%(strlen($lett))),1);
		       }
		       $pass1=md5($pass2);
		
		
        if ($inscr==0){
        @mysql_query("INSERT INTO comptes (idX, idm, nom, pass, email, sexe, ip, date, quipass, heure, heurepass)
                                   VALUES ('', 
						                   '".mysql_real_escape_string($idm)."', 
								           '".mysql_real_escape_string($nom)."', 
								           '".mysql_real_escape_string($pass1)."', 
								           '".mysql_real_escape_string($email)."', 
								           '".mysql_real_escape_string($sexe)."', 
								           '".mysql_real_escape_string($ip)."', 
								           '".mysql_real_escape_string($date)."',
								           '".mysql_real_escape_string($quipass)."', 
								           '".mysql_real_escape_string($heure)."', 
								           '".mysql_real_escape_string($heurepass)."')") 
	                                       or die (mysql_error());
						   
echo ("<center><br /><br /><b>Votre inscription a r&eacute;ussi.</b><br />");
echo ("Veuillez-vous connecter pour acc&eacute;der &agrave; l'espace membre.<br /><br />");
echo ("<a href=\"index.php\">Se connecter</font></a><br /><br /><br /><br /></center>");

////////////////////////////////////////////////envois mail password /////////////////////////////////		
$body="Bonjour $nom,\n\nVous venez de vous inscrire sur le site http://www.h-immo.be\nVeuillez ne pas perdre ce mail pour pourvoir vous identifier a nouveau\n\nVoici les informations que vous avez saisi:\n\nNom: $nom\n\nAdresse Email: $email \n\nPassword: $pass2";
@mail("$nom <$email>","Confirmation de l'inscription sur h-immo.be",$body, "From: h-immo.be <[email protected]>");	
@mysql_query("INSERT INTO infoscomptes (nom) VALUES('$nom')") or die (mysql_error());			
//////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            else 
			{
		    echo '<p>Erreur n° 1</p>';
            }	
		}
		else
		{
		
		echo '<p>Erreur n° 2</p>';
			
		}
	}
} // fin du if (!isset($_POST['submit']))
		
//////////////////////////////////////////////////////////////////////////////////////////////////////				}
			
if(isset($_POST['Submit'])) {
	
echo'<table width="99%" height="308" border="0" />
     <tr>
     <td width="47%" height="304">
     <form method="post" action="'.$_SERVER['PHP_SELF'].'" />
     <table width="429" border="0" align="center" />
     <tr>
     <td width="423">
     <table width="100%" border="0">
     <tr>
     <td>&nbsp;</td>
     </tr>
     <tr bgcolor="#0099CC">
     <td>
     <div align="center"><font  color="#FFFFFF"><b>Inscription</b></font></div>
     </td>
     </tr>
     </table>
     <table width="100%" border="0">
     <tr>
     <td width="37%"><b>'.$nom_lang.'<img src="design/force.gif" width="16" height="16" /> :</b></td>
     <td width="63%"> 
     <input class="input" type="text" name="nom" value="'.stripslashes($nom).'" />
     </td>
     </tr>
     <tr>
     <td width="37%"><b>'.$email_lang.'<img src="design/force.gif" width="16" height="16" /> :</b></td>
     <td width="63%"> 
     <input class="input" type="text" name="email" value="'.stripslashes($email).'" />
     </td>
     </tr>
     <tr>
     <td width="37%"><b>'.$email_2_lang.'<img src="design/force.gif" width="16" height="16" border="0" /> :</b></td>
     <td width="63%"> 
     <input class="input"  type="text" name="email_2" value="'.stripslashes($email_2).'">
     </td>
     </tr>
     <tr>
     <td></td>
     <td><p><b>Mr&nbsp;:</b>
     <input class="input" type="radio"  name="sexe" value="H" checked/>&nbsp;&nbsp;&nbsp;
     <b>Mme&nbsp;:</b>
     <input class="input" type="radio"  name="sexe" value="F" />
     </p>
     <p><b>Pro&nbsp;:</b><input class="input" type="radio"  name="sexe" value="pro" /></p></td>
     </tr>
     <tr>
     <td width="37%"><b>'.$sk.'</b></td>
     <td width="63%"> 
     <img src="CaptchaSecurityImages.php??rand= rand()" id="captchaimg" /><br />
     </label><input class="input" id="security_code" name="security_code" type="text" /><br />
     <small>'.$sk1.'&nbsp;<a href="javascript: refreshCaptcha();">'.$sk2.'</a>&nbsp;'.$sk3.'</small>
     </td> 
     </tr>
     </table>
     <table width="100%" border="0">
     <tr>
     <td>
     <center><input type="submit" name="Submit" value="'.$valide.'"></center>
     </td>
     </tr>
     </table>
     </td>
     </tr>
     </table>
     </form>
     <script language="JavaScript" type="text/javascript">
     function refreshCaptcha()
     {
	 vvar img = document.images["captchaimg"];
	 img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
     }
     </script>
     <br /><br />
     </td>
     </tr>
     </table>';
     }
?>