-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();
        }
    }
 }
4

1 回答 1

0

正如评论中提到的 mysql_query 已被弃用,并且建议使用更安全的扩展。选择行是什么意思。使用您的选择查询,您只会得到 1 行,因为您正在使用唯一的用户名访问登录信息。你的代码是正确的,你得到了一行,但没有办法知道它是否存在于你的结果中。为了调试,您必须将其回显。但是你不会在你的浏览器上得到任何东西,因为你使用的是不返回结果的执行(这就是我所说的)php标签。您将需要使用而不是让您的结果得到回显。

这是你的解决方法-

 <?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();
   }
    }
    }

希望这可以帮助..

丁斯

于 2012-11-13T00:58:37.090 回答