Code et nombre d'essaie limité , php

ai -  
 ai -
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.';  
 }  
?>  

12 réponses

  1. Utilisateur anonyme
     
    ta oublier un apostrophe à cette ligne:

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

    ; )
    0
  2. ai
     
    Oui merci j'ai corrigé quelques erreurs , dont ca et des ; qui manquais ^^ merci
    0
  3. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    il te manques de ' ou \" autour des 2 strings
      VALUES('".$ip."','".$pays."',".$nbtestmax.")";    
    
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    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
  6. ai
     
    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
  7. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    essaye:
    $sql = "INSERT INTO connexion(ip,pays,nbtestmax) VALUES('$ip', '$pays', $nbtestmax)";  
    
    
    0
  8. ai
     
    Ca ne me marque plus l'erreur , mais ca ne m'affiche rien du tout :s Page Blanche
    0
  9. xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
     
    verifie deja que les données sont bien envoyees dans ta base de donnees
    0