2012-11-13 45 views
-1

我想只在我正在構建的社交網絡中選擇特定數據。登錄的會話是$SESSION['user_login'],它似乎沒有選擇我需要的行。任何人有任何想法?在選擇特定數據時遇到困難

 <?php 
    if (isset($_GET['u'])) { 
    $username = mysql_real_escape_string($_GET['u']); 
    if (ctype_alnum($username)) { 
     //check user exists 
     $check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'"); 

     if (mysql_num_rows($check)===1) { 
      $get  = mysql_fetch_assoc($check); 
      $username = $get['username']; 
      $firstname = $get['first_name'];  
     }else{ 
      echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">"; 
      exit(); 
     } 
    } 
} 
+2

的mysql_query是一種過時。如果你的社交網絡網站我建議使用PDO或mysqli更安全.. – Dinesh

+0

你能解釋一下這個問題嗎?你在期待什麼,你究竟看到了什麼?有沒有錯誤信息? – Phil

回答

0

如在評論中提到的那樣mysql_query已被棄用,我建議使用更安全的擴展。您通過選擇意味着什麼。使用您的選擇查詢,您將只獲得1行,因爲您使用唯一的用戶名訪問登錄信息。你的代碼是正確的,你得到一個行,但沒有辦法知道它是否存在於你的結果中。爲了進行調試,您必須將其回顯出來。但是你不會在瀏覽器上得到任何東西,因爲你正在使用執行(這就是我所說的)php標籤,它們不返回結果。您將需要使用,而不是讓您的結果回聲。

這裏是你的FIX-

<?php 
    if (isset($_GET['u'])) { 
    $username = mysql_real_escape_string($_GET['u']); 
    if (ctype_alnum($username)) { 
    //check user exists 
    $check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'"); 
    if (mysql_num_rows($check)===1) { 
    $get = mysql_fetch_assoc($check); 
    $username = $get['username']; 
    $firstname = $get['first_name'];  

    echo $username; 
    echo $first_name; 
    } 
    else 
    { 
    echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">"; 
    exit(); 
    } 
    } 
    } 

希望這有助於..

DINS