<?php
$con = mysqli_connect('localhost','root','[mypassword]','dbhwsource');
if(isset($_GET['username'])){
$username = $con->real_escape_string($_GET['username']);
$test = $con->query("SELECT username FROM users WHERE username='$username'");
if($test!=false) die("usererror");
}
if(isset($_GET['email'])){
$email = $con->real_escape_string($_GET['email']);
$test = $con->query("select * from users where email='$email'");
if($test!=false) die("emailerror");
}
$con->close();
echo "ok";
?>
所以我只是想檢查用戶名/電子郵件是否可用,但我得到的是「usererror」,無論輸入的用戶名是什麼!我只是感到沮喪,並且隨處搜索示例代碼,代碼看起來沒有問題。我究竟做錯了什麼?檢查用戶名可用性php
編輯:
$test = $test->fetch_assoc();
if(!empty($test)) die("usererror");
這個工作!
爲什麼投了下來... :( – DarrenVortex 2013-02-10 08:12:02
1.避免SQL注入通過使用準備好的陳述2.添加錯誤消息,即'$ con> error',以獲得有關錯誤性質的更多信息。 – 2013-02-10 08:20:47
1.我使用轉義字符串,因此不應該阻止SQLi? 2.沒有錯誤,否則我會在這裏發佈。 – DarrenVortex 2013-02-10 08:43:42