Cookie变量不起作用

时间:2013-07-30 18:41:41

标签: php

我有这个代码,我的用户已经设置了所有的cookie,但它显示的文本没有全部设置。谁能解决这个问题?它显示的是第一个文本,而不是第二个文本,它在过去的一个小时里让我感到困惑。我错过了一些可笑的愚蠢行为吗?

if(!isset($_COOKIE['user']))
{
    echo "You do not have access here";
}

if(isset($_COOKIE['user']))
{
    $user = $_COOKIE['user'];

    $lq = "SELECT havelair FROM users WHERE username = '$user'";
    $lresult = mysqli_query($con,$lq);
    $lrow = mysqli_fetch_array($lresult);
    $lair = $lrow[0];

    if($lair == '1')
    {
        if(!isset($_COOKIE['Ankou']) || !isset($_COOKIE['Durnburg']) || !isset($_COOKIE['Hardash']) || !isset($_COOKIE['Kashaer']) || !isset($_COOKIE['Wyrdwood']))
        {
?>

text

<?php
        }

        if(isset($_COOKIE['Ankou']) && isset($_COOKIE['Durnburg']) && isset($_COOKIE['Hardash']) && isset($_COOKIE['Kashaer']) && isset($_COOKIE['Wyrdwood']))
        {
            mysqli_query($con,"UPDATE users SET havelair='2' WHERE username ='$user'");
?>

text

<?php

        }
    }

1 个答案:

答案 0 :(得分:0)

print_r输出为:

Array ( [Ankou] => visit [Hardash] => visit [Wyrdwood] => visit [Durnberg] => visit [Kashaer] => visit )

并且,在您的代码中,您有:

!isset($_COOKIE['Durnburg'])

注意拼写的差异。这可能是个问题。

此外,您的代码易受SQL注入攻击。看看这个question,看看如何解决问题的陷阱和想法。