-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 に答える