Parse error: syntax error, unexpected '}' in /customers

Fermé
Magalie-du-54 Messages postés 4 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 8 juillet 2015 - Modifié par Magalie-du-54 le 6/07/2015 à 18:11
jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 - 8 juil. 2015 à 14:01
Bonjour a tous.
Voila mon problème :
un ami m'a fais ce code et elle comporte pas mal d'erreur....
Je penses que cela vient des accolades mais je ne sais pas ou exactement.
Merci d'avance d'éclairer ma lanterne.
<?php
include('SqlCo.php');
$Action = htmlspecialchars($_GET['Action']);if ($_SERVER['HTTP_USER_AGENT'] == "dce6b5348ae2fd99175f0ea676bea8d857e01626")
{ 
if ($Action == "GET")
 { 
error_reporting(E_ERROR | E_PARSE);
 $Game = mysql_escape_string($_GET["Game"]);  
 $Consol  = mysql_escape_string($_GET["Consol"]);
 $hwid = mysql_escape_string($_GET["hwid"]);  
 mysql_connect($host, $username, $password) or die(mysql_error());
 mysql_select_db($db_name) or die(mysql_error());  
 $result = mysql_query("SELECT * FROM $table") 
 or die(mysql_error());
 while($row = mysql_fetch_array( $result ))
 {  
if ($row['active'] == 1 && $row['console'] == $Consol && $row['jeux'] == $Game) {
 $str = "$row[1]:$row[2]:";     
 mysql_query("UPDATE $table SET `active` = '0',`hwid` = '$hwid' WHERE ID = '$row[0]' AND email = '$row[1]' AND password = '$row[2]' AND console = '$row[3]' AND jeux = '$row[4]' AND active = '$row[5]'");
 break;  }  }  
mysql_close();  
if ($str != null)
{  echo "$str";
} else {echo "No Account";
 } } 
 else if ($Action == "Create")
{     $console = htmlspecialchars($_GET['console']);
 $jeux = htmlspecialchars($_GET['jeux']);    
  $email = htmlspecialchars($_GET['email']);
 $pass = htmlspecialchars($_GET['pass']);   
 try            
 {                $bdd = new PDO('mysql:host=mon host;dbname=ma bd', "login", "mon mdp"); 
 }            catch (Exception $e)           
 {                    die('Erreur');    
 }       
  if (isset($console) AND isset($jeux) AND isset($email) AND isset($pass))      
 {           
     $reqexist = $bdd->prepare("SELECT * FROM Account WHERE email = ?");
 $reqexist->execute(array($email));             
   $reqexist2 = $reqexist->rowCount(); 
 if ($reqexist2 == 0)               
 {                   
$query_pseudo = $bdd->prepare("INSERT INTO `Account` (`email`, `password`, `console`, `jeux`, `active`) VALUES (?, ?, ?, ?, '1')");
 if ($query_pseudo->execute(array($email,$pass,$console, $jeux)))                   
 {                    echo "Account Added";                   
 }                   
    else                  
 {                
    echo "WTF";                   
 }                }              
  else              
 {                  
  echo "Already";               
 }                                   }   
 }       
 else if ($Action == "Dispo")
 {         
   $console = htmlspecialchars($_GET['console']);  
 $jeux = htmlspecialchars($_GET['jeux']);                     
 try            {              
 $bdd = new PDO('mysql:host=mon host;dbname=ma bd', "login", "mon mdp");          
 }            catch (Exception $e)            {                    die('Erreur');          
 }            if(isset($console) AND isset($jeux))          
 {                           
 $query_pseudo = $bdd->prepare("SELECT * FROM Account WHERE console = ? AND jeux = ? AND active='1'"); 
 $query_pseudo->execute(array($console, $jeux));                  
 $data_pseudo=$query_pseudo->fetch();               
 $message = $query_pseudo->rowCount();              
 if ($message == 0)              
 {                  
  echo "Vide:";               
 }               
 else               
 {                  
  echo ":".$message.":";          
 }                            }        }   
 else if ($Action == "Verif"){            $hwid = htmlspecialchars($_GET['hwid']); 
 try            {                $bdd = new PDO('mysql:host=mon host;dbname=ma bd', "login", "mon mdp");  
 }          
  catch (Exception $e)           
 {                 
   die('Erreur');           
 }           
 if (isset($hwid))          
 {                           
 $reqcle = $bdd->prepare("SELECT * FROM Account WHERE hwid = ? AND active = '0'");           
 $reqcle->execute(array($hwid));                $recleinfo = $reqcle->fetch();                         
 if($recleinfo['hwid'] == $hwid)             
 {                   
 $str = $recleinfo['email'].":".$recleinfo['password'];                                      
 echo $str;                                   
 }                 
else            
    {                  
  echo "NoVerif";            
    }                           
 }    }}else{ ?>
 <?php}?>

3 réponses

jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 4 680
6 juil. 2015 à 18:35
Bonjour,


1 - Tu as ... dans ce même code ... du mysql_* .. et du PDO .... ????
=> Utilises UNIQUEMENT LA PDO !

2 - Ne remets pas partout dans ton code le code de connexion à ta BDD..... places le dans un fichier externe et INCLUS le au début de ton code tout simplement.

3 - Remplaces tes IF ELSIF ( $action) .. par Un switch .. cela rendra le code plus lisible.

4 - Une fois le ménage fais (voir les points 1 ,2 et 3 ) .... remets ton code en forme et pense à l'indenter histoire de voir les différents bloques .
A partir de là .. tu devrais pouvoir trouver la ou les erreurs dans le code.




0
Magalie-du-54
6 juil. 2015 à 20:48
Merci de ta réponse clair.
je vais attaquer ça dès demain :)
0
Magalie-du-54 Messages postés 4 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 8 juillet 2015
Modifié par Magalie-du-54 le 7/07/2015 à 15:36
Bonjour.
J'ai essayer de faire aussi propre que je pouvais mais je suis sur que cela ne sera pas forcement a ta convenance, car je n'ai pas trop compris comment remplacer les "else if" par un switch et d'ailleurs si j ai bien fais de retirer les connections pdo....
En espèrent que cela suffis pour pouvoir analyser le problème.
Cordialement.
Magalie.

<?php
include('SqlCo.php');
$Action = htmlspecialchars($_GET['Action']);if ($_SERVER['HTTP_USER_AGENT'] == "dce6b5348ae2fd99175f0ea676bea8d857e01626"){ if ($Action == "GET")
 { 
error_reporting(E_ERROR | E_PARSE);
 $Game = mysql_escape_string($_GET["Game"]);  
 $Consol  = mysql_escape_string($_GET["Consol"]);
 $hwid = mysql_escape_string($_GET["hwid"]);  
 mysql_connect($host, $username, $password) or die(mysql_error());
 mysql_select_db($db_name) or die(mysql_error());  
 $result = mysql_query("SELECT * FROM $table") 
 or die(mysql_error());
 while($row = mysql_fetch_array( $result ))
 {  if ($row['active'] == 1 && $row['console'] == $Consol && $row['jeux'] == $Game) {
 $str = "$row[1]:$row[2]:";     
 mysql_query("UPDATE $table SET `active` = '0',`hwid` = '$hwid' WHERE ID = '$row[0]' AND email = '$row[1]' AND password = '$row[2]' AND console = '$row[3]' AND jeux = '$row[4]' AND active = '$row[5]'");
 break;  
 }  
 }  
 mysql_close();  
 if ($str != null){  
 echo "$str";} else {echo "No Account";
 } 
 } 
 else if ($Action == "Create"){    
 $console = htmlspecialchars($_GET['console']);
 $jeux = htmlspecialchars($_GET['jeux']);     
 $email = htmlspecialchars($_GET['email']);
 $pass = htmlspecialchars($_GET['pass']);   
 try            
 {                
 }            
 catch (Exception $e)           
 {                   
 die('Erreur');    
 }         
 if (isset($console) AND isset($jeux) AND isset($email) AND isset($pass))      
 {                
 $reqexist = $bdd->prepare("SELECT * FROM Account WHERE email = ?");
 $reqexist->execute(array($email));                
 $reqexist2 = $reqexist->rowCount(); 
 if ($reqexist2 == 0)               
 {                   
 $query_pseudo = $bdd->prepare("INSERT INTO `Account` (`email`, `password`, `console`, `jeux`, `active`) VALUES (?, ?, ?, ?, '1')");
 if ($query_pseudo->execute(array($email,$pass,$console, $jeux)))                   
 {                   
 echo "Account Added";                   
 }                       
 else                  
 {                    
 echo "WTF";                   
 }                
 }               
 else              
 {                    
 echo "Already";               
 }                                   }   
 }        
 else if ($Action == "Dispo")
 {           
 $console = htmlspecialchars($_GET['console']);  
 $jeux = htmlspecialchars($_GET['jeux']);                     
 try            
 {                        
 }            
 catch (Exception $e)            
 {                  
 die('Erreur');          
 }            
 if(isset($console) AND isset($jeux))          
 {                           
 $query_pseudo = $bdd->prepare("SELECT * FROM Account WHERE console = ? AND jeux = ? AND active='1'"); 
 $query_pseudo->execute(array($console, $jeux));                  
 $data_pseudo=$query_pseudo->fetch();               
 $message = $query_pseudo->rowCount();              
 if ($message == 0)              
 {                   
 echo "Vide:";               
 }                
 else               
 {                   
 echo ":".$message.":";          
 }                           
 }       
 }   
 else if ($Action == "Verif"){            
 $hwid = htmlspecialchars($_GET['hwid']); 
 try            
 {                 
 }            
 catch (Exception $e)           
 {                    
 die('Erreur');           
 }            
 if (isset($hwid))          
 {                           
 $reqcle = $bdd->prepare("SELECT * FROM Account WHERE hwid = ? AND active = '0'");           
 $reqcle->execute(array($hwid));               
 $recleinfo = $reqcle->fetch();                         
 if($recleinfo['hwid'] == $hwid)             
 {                    
 $str = $recleinfo['email'].":".$recleinfo['password'];                                      
 echo $str;                                   
 }                 
 else            
    {                    
 echo "NoVerif";            
    }                           
 }    }}else{ ?>
<?
}
?>
0
jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 4 680
7 juil. 2015 à 17:00
1 - Pourquoi avoir des blocs try/catch vides ?
try            
 {                 
 }            
 catch (Exception $e)           
 {                    
 die('Erreur');           
 }


2 - Penses aussi que la norme veut que les IF / ELSE .. s'écrivent sous la forme :
 if( expression ) {

 } else {

 }


3 - Tu mélanges encore du mysql_* ... et du PDO dans ta page !!!
Passes tout en PDO !

Ca c'est du mysql_
mysql_query("UPDATE $table SET `active` = '0',`hwid` = '$hwid' WHERE ID = '$row[0]' AND email = '$row[1]' AND password = '$row[2]' AND console = '$row[3]' AND jeux = '$row[4]' AND active = '$row[5]'");


Ca c'est du PDO :
 $query_pseudo = $bdd->prepare("SELECT * FROM Account WHERE console = ? AND jeux = ? AND active='1'"); 
 $query_pseudo->execute(array($console, $jeux));  


4 - L'instruction ERROR_REPORTING se place AU DEBUT de ton code '( tout au début !! )
//Et remplaces :
// error_reporting(E_ERROR | E_PARSE);
// par : 
error_reporting(E_ALL);
0
Magalie-du-54 Messages postés 4 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 8 juillet 2015 > jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024
7 juil. 2015 à 18:29
Tu as raison ça devient logique !
Je vais m'y coller à nouveau :)
Merci d'avoir répondu si rapidement.
cordialement.
0
Magalie-du-54 Messages postés 4 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 8 juillet 2015
8 juil. 2015 à 13:52
bonjour !
Voici mon code remis au propre comme tu me l'as demander (enfin j'espères :D )
Par contre je tombes sur une nouvelle erreur que je ne comprends pas:
Notice: Undefined index: Action in /customers/3/7/1/mon site.com/httpd.www/index.php on line 4
<?php
error_reporting(E_ALL);
include('SqlCo.php');
$Action = htmlspecialchars($_GET['Action']);
if ($_SERVER['HTTP_USER_AGENT'] == "dce6b5348ae2fd99175f0ea676bea8d857e01626")
{
if ($Action == "GET")
	{	
	$Game = mysql_escape_string($_GET["Game"]);		
	$Consol  = mysql_escape_string($_GET["Consol"]);
	$hwid = mysql_escape_string($_GET["hwid"]);		
	mysql_connect($host, $username, $password) or die(mysql_error());
	mysql_select_db($db_name) or die(mysql_error());		
	$result = mysql_query("SELECT * FROM $table") 
	or die(mysql_error());
	while($row = mysql_fetch_array( $result ))
	{		
	if ($row['active'] == 1 && $row['console'] == $Consol && $row['jeux'] == $Game)
	{
	$str = "$row[1]:$row[2]:";		   
	$query_pseudo = $bdd->prepare("UPDATE $table SET `active` = '0',`hwid` = '$hwid'	WHERE ID = '$row[0]' AND email = '$row[1]' AND password = '$row[2]' AND console = '$row[3]' AND jeux = '$row[4]' AND active = '$row[5]'");
	break;		
	}		
	}	
	if ($str != null)
	{		
	echo "$str";
	} else {
	
	echo "No Account";
	}	
	}	
	else if ($Action == "Create"){	   
	$console = htmlspecialchars($_GET['console']);
	$jeux = htmlspecialchars($_GET['jeux']);	    
	$email = htmlspecialchars($_GET['email']);
	$pass = htmlspecialchars($_GET['pass']);      
	}	        
	if (isset($console) AND isset($jeux) AND isset($email) AND isset($pass))	     
	{                
	$reqexist = $bdd->prepare("SELECT * FROM Account WHERE email = ?");
	$reqexist->execute(array($email));                
	$reqexist2 = $reqexist->rowCount(); 
	if ($reqexist2 == 0)               
	{                   
	$query_pseudo = $bdd->prepare("INSERT INTO `Account` (`email`, `password`, `console`, `jeux`, `active`) VALUES (?, ?, ?, ?, '1')");
	if ($query_pseudo->execute(array($email,$pass,$console, $jeux)))                   
	{                   
	echo "Account Added";                   
	}else{   
}	
	echo "WTF";                   
	}                
	}else{   
}	
	echo "Already";               
    	            	        }	  
     
	else if ($Action == "Dispo")
	{           
	$console = htmlspecialchars($_GET['console']);  
	$jeux = htmlspecialchars($_GET['jeux']);                             
	}            
	if(isset($console) AND isset($jeux))          
	{                           
	$query_pseudo = $bdd->prepare("SELECT * FROM Account WHERE console = ? AND jeux = ? AND active='1'"); 
	$query_pseudo->execute(array($console, $jeux));                  
	$data_pseudo=$query_pseudo->fetch();               
	$message = $query_pseudo->rowCount();              
	if ($message == 0)              
	{                   
	echo "Vide:";               
	}else{ 
 }	
	echo ":".$message.":";                                    
	 }
	else if ($Action == "Verif"){            
	$hwid = htmlspecialchars($_GET['hwid']);           
	}            
	if (isset($hwid))          
	{                           
	$reqcle = $bdd->prepare("SELECT * FROM Account WHERE hwid = ? AND active = '0'");           
	$reqcle->execute(array($hwid));                $recleinfo = $reqcle->fetch();                         
	if($recleinfo['hwid'] == $hwid)             
	{                    
	$str = $recleinfo['email'].":".$recleinfo['password'];                                      
	echo $str;                                   
	}else{  
}	
	echo "NoVerif";            
 }else{	
   }
 ?>


En espèrent que cela n'est pas trop grave...
Cordialement.
0
jordane45 Messages postés 38217 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 juillet 2024 4 680
8 juil. 2015 à 14:01
Ton erreur se situe sur la ligne
$Action = htmlspecialchars($_GET['Action']);

Visiblement.... tu n'as aucune variable dans ton URL qui se nomme Action ....
Pour éviter d'avoir ce genre de messages d'erreur, tu peux vérifier, AVANT de les utiliser, que tes variables existent via la function ISSET.

Ce qui, dans ton cas, donnerait :
$Action = isset($_GET['Action']) ? htmlspecialchars($_GET['Action']): NULL;

if(!$Action){
 echo " AUCUNE VARIABLE ACTION DEFINIE... ! ";
}




mon code remis au propre comme tu me l'as demander (enfin j'espères :D )

Pas encore.....
Tu as toujours du MYSQL_* ... ET .. DU PDO !!!!!

Tu écris tes IF / ELSE comme ceci:
 if (expression)
{

}
else
{

}


Alors que la norme (PSR-2) préconise de les écrire de la façon suivante :
( et perso .. je trouve ça BEAUCOUP plus LISIBLE ! )
 if (expression) {

}else{

}


NB : Avant que tu ne demandes ce qu'est la norme PSR-2 ... la voici : http://www.php-fig.org/psr/psr-2/fr/
0