2011-03-22 67 views
0

我有這樣的代碼,以及完美的作品,但我想作一個簡單的修改的mysqli - 問題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); 

?> 

我想這方面的變革

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

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

但隨着這種改變代碼簡單停止工作,$用戶的回聲不顯示任何東西

有什麼想法嗎?

謝謝

+0

的可能重複(http://stackoverflow.com/questions/1561586/are- php-mysqli-prepared-queries-bound-parameters-secure) – outis 2012-07-19 10:04:27

回答

1

你不需要那樣做。您正在使用準備好的語句,它會自動轉義變量。

+0

我不需要做scapes嗎?好消息:) – user455318 2011-03-22 01:43:48

+0

@ user455318:如果你沒有使用準備好的語句,你將需要逃脫 - 不要忘記:) – Jon 2011-03-22 01:44:46

+0

好的,謝謝你的幫助喬恩。問題解決了 – user455318 2011-03-22 01:46:22

0

如果你準備好你的陳述,你不需要逃避你的字符串。

注:?是PHP的MySQLi準備與安全綁定參數查詢]您的數據庫連接,必須打開使用mysqli_real_escape_string()