Si valeur existe (2)
                    
        
     
             
                    Sinistrus
    
        
    
                    Messages postés
            
                
     
             
            1010
        
            
                            Date d'inscription
             
                            Statut
            Membre
                            Dernière intervention
             
            
                -
                                     
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
        Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
        Bonjour à tous !
Pouvez-vous m'aider à corriger ce bout de code svp ?
Merci d'avance
            
            
                
            
                
    
    
    
        Pouvez-vous m'aider à corriger ce bout de code svp ?
<?php
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS); mysql_select_db(MYSQL_BASE,$db);
$req = mysql_query("SELECT COUNT(IPs) AS dejaexistant FROM tb_jeux_pakinou WHERE IPs = '".$_SERVER['REMOTE_ADDR']."'");
$res = mysql_fetch_array($req);
if($res['dejaexistant'] == 0) {echo "<script>location.href = 'index.php';</script>";}
if($res['dejaexistant'] != 0) {
$NumId = $_GET["NumId"];
if(isset($_POST['Vote'])) $Vote = mysql_real_escape_string($_POST["Vote"]); else $Vote ="";
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Erreur de connexion '.mysql_error());
mysql_select_db(MYSQL_BASE,$db) or die('Erreur de selection '.mysql_error());
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "UPDATE tb_jeux_pakinou SET IPs=CONCAT(IPs, ', ".$ip."'), Vote = Vote + 1 WHERE NumId='".$NumId."'";
mysql_query($sql) or die('Erreur SQL !'.$sql."<br />".mysql_error());
echo "<script>location.href = 'index.php';</script>";
} ?>
Merci d'avance
        A voir également:         
- Si valeur existe (2)
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
- Ce-35888-2 - Forum PS4
9 réponses
                        
                    En fait, je voudrais que si jamais par exemple, un utilisateur met le lien de validation : 
Malheureusement je ne maitrise pas PHP, je bidule :s
    
                http://monsite.com/jeux/vote.php?NumId=7pour tricher un vote, la page n'enregistre pas et le renvois à l'index. Si l'IP de l'utilisateur n'existe pas dans ma table (voir sujet https://forums.commentcamarche.net/forum/affich-29958238-si-valeur-existe#p29958681) alors il enregistre.
Malheureusement je ne maitrise pas PHP, je bidule :s
                        
                    Dans ce cas, plutôt que :
utilise
Ensuite, pourquoi tu ouvre deux fois ta connexion SQL (une au début et de ton script et une dans ton
La deuxième connexion est inutile, et vue que je suis de bon humeur aujourd'hui, voilà une idée de code que tu pourrais utiliser.
Attention, je n'ai pas testé le code, il se peut que tu es à l'adapté en fonction de tes besoins.
    
                echo "<script>location.href = 'index.php';</script>";
utilise
header("location:index.php");
Ensuite, pourquoi tu ouvre deux fois ta connexion SQL (une au début et de ton script et une dans ton
if($res['dejaexistant'] != 0)
La deuxième connexion est inutile, et vue que je suis de bon humeur aujourd'hui, voilà une idée de code que tu pourrais utiliser.
<?php
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_BASE,$db);
//LIKE %....% te permet de rechercher une sous-chaine dans une chaine de caractère, peut importe sa position
$req = mysql_query("SELECT COUNT(IPs) AS dejaexistant FROM tb_jeux_pakinou WHERE IPs LIKE %".$_SERVER['REMOTE_ADDR']."%;"); 
$res = mysql_fetch_array($req);
if($res['dejaexistant'] == 0) {
	header("location:index.php");
} else {
	$NumId = mysql_real_escape_string($_GET["NumId"]);
	
	if(isset($_POST['Vote'])) $Vote = mysql_real_escape_string($_POST["Vote"]);
	else $Vote ="";
	
	$ip = $_SERVER['REMOTE_ADDR'];
	
	$sql = "UPDATE tb_jeux_pakinou SET IPs=CONCAT(IPs, ', ".$ip."'), Vote = Vote + 1 WHERE NumId='".$NumId."' LIMI 1;";
	mysql_query($sql) or die('Erreur SQL !'.$sql."<br />".mysql_error());
	
	header("location:index.php");
}
?>
Attention, je n'ai pas testé le code, il se peut que tu es à l'adapté en fonction de tes besoins.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /homez.724/xyz/www/jeux/pakinou2014/vote.php on line 60
Warning: Cannot modify header information - headers already sent by (output started at /homez.724/xyz/www/inclusion/header.php:15) in /homez.724/xyz/www/jeux/pakinou2014/vote.php on line 62
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    Voilà ce qu'il me donne :s
    
                Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /homez.724/xyz/www/jeux/pakinou2014/vote.php on line 80
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 '%00.00.00.01%' at line 1
$res = mysql_fetch_array($req) or die(mysql_error());
                        
                    Merci joker, il me renvois encore une erreur sur la limite :
    
                Erreur SQL !UPDATE tb_jeux_pakinou SET IPs=CONCAT(IPs, ', 00.00.00.01'), Vote = Vote + 1 WHERE NumId='6' LIMI 1;
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 'LIMI 1' at line 1
                        
                    J'ai un peux fouillé, mais je me retrouve avec toujours un ajout dans ma table même si l'IP existe :
Il saute la condition du LIKE je penses :s
    
                <?php
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Erreur de connexion '.mysql_error());
mysql_select_db(MYSQL_BASE,$db) or die('Erreur de selection '.mysql_error());
$req = mysql_query("SELECT COUNT(IPs) AS ExisteDeja FROM tb_jeux_pakinou WHERE IPs LIKE '%".$_SERVER['REMOTE_ADDR']."%' ;"); 
$res = mysql_fetch_array($req) or die(mysql_error());
if($res['ExisteDeja'] == 0) {
echo "Existant";}
else {$NumId = $_GET["NumId"];
if(isset($_POST['Vote'])) $Vote = mysql_real_escape_string($_POST["Vote"]); else $Vote ="";
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "UPDATE tb_jeux_pakinou SET IPs=CONCAT(IPs, ', ".$ip."'), Vote = Vote + 1 WHERE NumId='".$NumId."' LIMIT 1";
mysql_query($sql) or die('Erreur SQL !'.$sql."<br />".mysql_error());
echo "Validé";}
?>
Il saute la condition du LIKE je penses :s
