Corriger une erreur/faille SQL

Erwan -  
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Lorsque j'ajoute les paramètres de la requete POST à mon URL:
http:// ... rate.php?winner=37&loser=46
Et que j'y ajoute un apostrophe comme ceci: 46' une erreur se produit:


Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/multiserv/users/1007150/projects/2640771/www/facemash/rate.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/1007150/projects/2640771/www/facemash/rate.php:18) in /data/multiserv/users/1007150/projects/2640771/www/facemash/rate.php on line 38

Donc, je voudrais savoir comment eviter cette erreur, de la reparer. merci !

voici le code de rate.php
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
include('./inc/dbconfig.php');
include('./inc/functions.php');

if ($_GET['winner'] && $_GET['loser']) {

    $result = mysql_query("SELECT * FROM images WHERE image_id = " . $_GET['winner'] . " ");
    $winner = mysql_fetch_object($result);

    $result = mysql_query("SELECT * FROM images WHERE image_id = " . $_GET['loser'] . " ");
    $loser = mysql_fetch_object($result);

    $winner_expected = expected($loser->score, $winner->score);
    $winner_new_score = win($winner->score, $winner_expected);
    
    mysql_query("UPDATE images SET score = " . $winner_new_score . ", wins = wins+1 WHERE image_id = " . $_GET['winner']);

    $loser_expected = expected($winner->score, $loser->score);
    $loser_new_score = loss($loser->score, $loser_expected);
    
    mysql_query("UPDATE images SET score = " . $loser_new_score . ", losses = losses+1  WHERE image_id = " . $_GET['loser']);

    // Insert battle
    mysql_query("INSERT INTO modelBattles SET winner = " . $_GET['winner'] . ", loser = " . $_GET['loser'] . " ");

    header('Location: /facemash');
}
?>



1 réponse

Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Bonjour,
Vu que tu attend un entier, le plus simple est d'utiliser la fonction intval sur tes variables.
Sinon pour les chaines de caractère il faut voir du côté de mysql_real_escape_string.
0