2011-03-22 3 views
0

J'ai ce code, et fonctionne parfaitement, mais je veux faire une simple modificationMysqli - problème avec mysqli_real_escape_string

<?php session_start(); 
require 'includes/f_banco1.php'; 
require '../PasswordHash.php'; 


function checkBd($sql, $db, $user, $codePass) { 
    $user = $_GET['userid']; //here 
    $codePass = $_GET['code'];//here 

    if(is_numeric($user)) { 

     ($sql = $db->prepare("select userid, code from password_reset where userid=? and code=?")); 

     $sql->bind_param('ss', $user, $codePass); 

     $sql->execute(); 

     $sql->bind_result($user, $codePass); 

     if ($sql->fetch()) { 
      $_SESSION['u_name']= sha1($user); 
      header("location: updatePass.php"); 
      return true; 
     } 
     else 
     echo "Não existe na BD"; 
     return false; 

    } 
    else 
    echo "Erro"; 

} 

checkBd ($sql, $db, $user, $codePass); 

?> 

je veux changer ces lignes

$user = $_GET['userid']; //here 
$codePass = $_GET['code'];//here 

à

$user = mysqli_real_escape_string($db, $_GET['userid']); 
$codePass = mysqli_real_escape_string($db, $_GET['code']); 

mais avec ce changement le code simple arrête de fonctionner, un écho de $ utilisateur ne montre rien

une idée?

merci

+0

en double possible (http://stackoverflow.com/questions/1561586/are- php-mysqli-prepare-requêtes-avec-bound-parameters-secure) – outis

Répondre

1

Vous n'avez pas besoin de faire cela. Vous utilisez des instructions préparées qui échappent automatiquement aux variables.

+0

Je n'ai pas besoin de faire les scapes? bonnes nouvelles :) – user455318

+0

@ user455318: Si vous n'utilisiez pas d'instructions préparées vous auriez besoin d'échapper si - ne pas oublier que :) – Jon

+0

ok, merci pour l'aide Jon. Problème résolu – user455318

0

Si vous préparez votre relevé, vous n'avez pas besoin d'échapper votre chaîne.

Note: [? Are PHP MySQLi préparé des requêtes avec des paramètres liés sécurisées] Votre connexion de base de données doit être ouverte à utiliser mysqli_real_escape_string()