2011-08-21 77 views
0
if (isset($submit)) { 
    $getusers = mysql_query("SELECT * FROM register"); 
    while($getrows = mysql_fetch_array($getusers)) { 
    $users = $getrows['username']; 
    if ($touser == $users) { 
     echo "$users"; 
     $send = $_GET['send']; 
     if ($send == $one) { 
     $query = mysql_query(
        "INSERT INTO mailtbl VALUES 
        (
         '', '$touser', '$fromuser', '$subject', 
         '$message', '0', '0', '1', '$date', '$rand' 
        )" 
       ); 
     $query2 = mysql_query(
        "INSERT INTO mailtbl_admin VALUES 
        (
         '', '$touser', '$fromuser', '$subject', 
         '$message', '0', '0', '1', '$date', '$rand' 
        )" 
       ); 
     $echo = "Message successfully sent."; 
     } 
    } else { 
     $echo = "There is no such user with the name of '$touser'"; 
    } 
    } 
    echo "$echo"; 
} 

我想寫代碼接受消息發送給另一個用戶,如果收件人在我的數據庫中。問題是我認爲我的狀況(if ($touser == $users)是錯誤的。 $touser指的是我的$_POST['recipient'],而$users是指數據庫中的用戶。發送消息,如果用戶在數據庫中,拒絕如果沒有

有人可以查看我的代碼,以確保我在正確的軌道上?

回答

0

而不是通過表中的所有用戶循環的,你爲什麼不而不是在你的SQL命令添加一個WHERE語句是這樣的:

"SELECT * FROM register WHERE username = '" . $touser . "'" 

如果你得到的結果發送郵件。如果您沒有收到結果,請顯示'沒有這樣的用戶'信息。

此外,如果您在評估$ touser到$ user時遇到問題,請嘗試輸出$ touser的內容以確保它是您的想法。

print_r($touser); 
+1

您真的應該鼓勵查詢者使用帶有變量的準備好的語句,而不是像這樣通過將字符串粘在一起來構建SQL。這正是您如何使SQL注入成爲可能。 –

+0

@丹尼爾 - 對不起。 – glove

+0

@ user470714謝謝!!!!!!!!!!!!!! – glove

相關問題