1

私がやろうとしているのは、Cookie (「識別」と呼ばれる) で検証することにより、ユーザーの ID を確認することです。

それは私のコードです:

if(!$noCookie) {

$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) <= 0) {
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());
    print_r($row);

    while ($row=mysql_fetch_array($query)) {
        echo $usersId = $row["logged_user_id"];
    }
} else {
    echo 'no cookie';
}
}

ユーザーの Cookie が表のように同じものである場合、ユーザーの ID が返されます。

それが私がやろうとしていることです.IFは「はいCookie」と言いますが、その間は何もしません! エラーが発生しません。

4

3 に答える 3

1

行がないため、フェッチするものはありません。

if (mysql_num_rows($query) <= 0) {

これはすべき> 0ですか?

于 2011-07-23T17:57:35.400 に答える
1

評価が 0 以下のmysql_fetch_array場合にのみ実行しました。mysql_num_rows($query)つまり、行がありません

おそらくあなたは次のことを意味しました:

if (mysql_num_rows($query) > 0) { // <-----
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());
    // ...
}
else {
    echo 'no cookie';
}

mysql_fetch_arrayまた、通常は正しくない 2 つの異なる場所で実行していることにも注意してください。whileループの前にすでにmysql_fetch_array一度行っているため、ループには最初の結果行は含まれません。

于 2011-07-23T17:58:19.267 に答える
1
if(!$noCookie) {

$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) > 0) {
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());   
    foreach ($row as $r)
       echo $r["logged_user_id"];
} else {
    echo 'no cookie';
}
}
于 2011-07-23T17:58:25.207 に答える