看板 PHP 關於我們 聯絡資訊
因老師要求必須寫出一個登入網頁並搭配Apache和mysql 而該登入網頁必須可以使用'or 1=1--的sql injection方法入侵!! 我自己寫了一個登入網頁 但是在輸入帳號密碼之後(不論輸入的是否正確) 都會跳回登入的頁面,但是會多了一行: mysql_fetch_row():supplied argument is not a valid mysql result resource on line 24 可以請問一下 問題是出在哪邊?該如何解決呢?如果要達到老師的要求 那除了這個問題 我所寫的這個網頁可以達到目標嗎? 感謝回答~"~ 以下為我的網頁程式碼:(PS:我的mysql資料庫名稱為member,而資料表為membertest 其中有四個欄位,分別是ID(←主鍵),password,name,mail) <!-- login.php --> <html> <head><title>登入網站</title></head> <body> <center> <h2>輸入使用者名稱和密碼登入網站</h2> <hr><small><font color="red"> <? session_start(); session_register("login_session"); $ID = ""; $password = ""; if (isset($_POST["ID"])) $username = $_POST["ID"]; if (isset($_POST["Password"])) $password = $_POST["Password"]; if ($ID != "" && $password != "") { $link = mysql_connect("localhost",“root",“123456"); mysql_select_db("membertest"); $sql = "SELECT * FROM users WHERE ID='.$ID' AND password='.$password'"; $result = mysql_query($sql); if (mysql_fetch_row($result) != false) { $_SESSION["login_session"] = true; header("Location: hellow.php"); } else echo "名稱或密碼錯誤!<br>"; mysql_close($link); } ?> </font></small></center> <form action="check.php" method="post"> <table align="center" bgcolor="#FFCC99"> <tr><td>使用者名稱 : </td> <td><input type="text" name="Username" size="15" maxlength="10"></td></tr> <tr><td>使用者密碼 : </td> <td><input type="password" name="Password"size="15" maxlength="10"></td></tr> <tr><td colspan="2" align="center"> <input type="submit" value="登入網站"></td></tr> </table> </form> </body> </html> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.39.100
star508 :WHERE ID='".$ID."' AND password='".$password."'" 08/10 01:25
sosokill :一樣耶= =沒辦法登入 出現一樣的waring.... 08/10 01:33
sosokill :warning 08/10 01:34
JohnRoyer :印象中 password 好像是關鍵字要加上引號 `password` 08/10 01:56
sosokill :是改成`ID`='.$ID.' AND `password`='.$password'" ? 08/10 02:35
star508 :在$sql="SELECT ....";下一行 echo $sql;看看是什麼 08/10 12:03
star508 :還有header函式要在<html>前 08/10 12:05
sosokill :echo $sql;出來的結果是我輸入的帳號密碼!! 08/10 19:16
sosokill :現在似乎是mysql_fetch_row()的問題= = 08/10 19:16
ursm:$sql=select * from (table) 為什麼table是user? 09/20 04:12
ursm:不是應該是membertest? 09/20 04:13