Code et nombre d'essaie limité , php

Fermé
ai - Modifié par ai le 11/01/2011 à 17:56
 ai - 13 janv. 2011 à 09:59
Bonjour,

Je voudrais créer une page avec un code et si ou bout de 3 essaie , on trouve pas , on dois attendre 1H , voila le code . Sa me marque You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near at line 1


<?php   
if(isset($_POST['code']) && !empty($_POST['pays'])) // Tous les champs rempli  
{  
$code = mysql_real_escape_string($_POST['code']);   
$ip = mysql_real_escape_string($_SERVER["REMOTE_ADDR"]);   
$temp = '3600';  // Temps avant de pouvoir réessayer   
$code = '123456'; // Code test  
$pays = mysql_real_escape_string($_POST['pays']);  
$nbtestmax= '3'; // nombre d'essais max  

mysql_connect("localhost","root","");  
mysql_select_db("*******");  

$sql = "INSERT INTO connexion('ip','pays','nbtestmax') VALUES(".$ip.",".$pays.",".$nbtestmax.")";    
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());  
    
$query = "SELECT * FROM connexion WHERE ip='".$ip."' ";   
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
$data = mysql_fetch_assoc($req);  

if($data['nbtest']=='3') // Si il a essayer tous ses essais  
{  
Echo 'Vous avez Dépassez le nombre essais veuillez attendre 1H ';  
}  
else  
{  
if($temp==date(dmy)) //Si sa fais 1H qu'il attends , c'est essais sont remis a 0  
 {  
    $data['nbtest'] = 0;  
   
    if($code==$_POST['code'])  
 {  
 echo'Félicitation , vous avez trouvez le bon code';  
 }  
 else  
 {  
 $data['nbtest']++;  
        $essaie=3-$data['nbtest'] ;
 echo 'le code est mauvais , il ne vous reste plus que'; echo $essaie  ;  
 }  
 }  
 //s'il n'a pas encore épuisé tout ses essais  
 elseif($essais < 3)  
 {  
 if($code==$_POST['code'])  
 {  
 echo'Félicitation , vous avez trouvez le bon code';  
 }  
 }  
 else  
 {  
 $data['nbtest']++;  
        $essaie=3-$data['nbtest']  ;
 echo 'le code est mauvais , il ne vous reste plus que'; echo $essaie  ;  
 $nbtest=$data['nbtest'];  
    }  

    if($nbtest==3)// si il a utilisé ces essaie   
    {  
     $temp==date(dmy); // Date au format 11012011  
     $temp =  $temp+ 100000000; //vu que le formart est 11012011 , si on fais plus sa,    sa revien a ajouté 1H  
     }  
 mysql_connect("localhost","root","");  
    mysql_select_db("*******");  
    $sql ="UPDATE connexion SET nbtest='".$nbtest."' ";    
     // on insere le tuple (mysql_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)  
     mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());    
 //si c'est pas ok, tu augmentes les erreurs de 1 (++) et tu met à jour la session dernier_essai avec time()   
 }  
 }  
 else  
 {  
  echo 'Erreur Interne.';  
 }  
?>  

A voir également:

12 réponses

Utilisateur anonyme
11 janv. 2011 à 17:54
ta oublier un apostrophe à cette ligne:

Echo 'Vous avez Dépassez le nombre essais veuillez attendre 1H '<<<---;

; )
0
Oui merci j'ai corrigé quelques erreurs , dont ca et des ; qui manquais ^^ merci
0
Up , Personne ne sais ?
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
11 janv. 2011 à 22:08
il te manques de ' ou \" autour des 2 strings
  VALUES('".$ip."','".$pays."',".$nbtestmax.")";    
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Comment ca ?
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
11 janv. 2011 à 23:01
une fois que ton code php va se déployer:

suppose que avec ip = 1.2.3.4 et pays = benin

alors

VALUES(".$ip.",".$pays.",".$nbtestmax.")";

devient

VALUES(1.2.3.4 ,benin , 0) ;

au lieu de

VALUES('1.2.3.4' ,'benin' , 0) ;
0
Ok j'ai changer la ligne en ca :
$sql = "INSERT INTO connexion('ip','pays','nbtestmax') VALUES('".$ip."','".$pays."','".$nbtestmax."')";    


Mais sa me marque toujours cette erreur :
Erreur SQL !INSERT INTO connexion('ip','pays','nbtestmax') VALUES('127.0.0.1','france','3')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ip','pays','nbtestmax') VALUES('127.0.0.1','france','3')' at line 1
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
12 janv. 2011 à 13:09
essaye:
$sql = "INSERT INTO connexion(ip,pays,nbtestmax) VALUES('$ip', '$pays', $nbtestmax)";  

0
Ca ne me marque plus l'erreur , mais ca ne m'affiche rien du tout :s Page Blanche
0
Up :s
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
12 janv. 2011 à 22:05
verifie deja que les données sont bien envoyees dans ta base de donnees
0
J'ai vérifier et elle y sont envoyé
0