我想要一个固定的cookie结果,但我无法得到它

时间:2016-04-04 06:05:36

标签: php .htaccess cookies

我对这个简单的事情有疑问,但这让我很困惑。我从头开始做了“清晰的浏览数据”。我只想要一个恒定的结果,但我无法得到它。我已经有了一个结果但是在我按下F5按钮(刷新)几次之后,这个结果有时会自行改变(不稳定)。 Cooval意味着“饼干价值”,我只想让cooval的结果保持不变。结果只有两个选择,即“鹰”和“罗伊肯”。

我混淆了三件事:

  1. 我只在地址栏中尝试一个名为“*******。com / home”的网址。逻辑是 当然进入条件1并且永远不会进入条件2, 因为网址是****** / home,但为什么结果不稳定? 有时候是“鹰”,有时候是“罗伊肯”。

  2. 如果逻辑进入条件2,则警报和回声应为
    显示出来,但事实并非如此,它假定逻辑永远不会 转到条件2,但是有一个rand()代码 条件2可能是由此造成的。

  3. 如果我使用此符号/ * blablabla * /作为整个条件2,如this, 然后结果是完全固定的,但是它很奇怪,虽然它不应该进入条件2并且我也使用“退出”;在...上 条件1因此如果逻辑进入条件2则不可能。

  4. 图片: enter image description here

    的index.php

    <?php
        $hostname='localhost';
        $database='*********';
        $username='*********';
        $password='*********';
        $pdo = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    
        session_start();
        ob_start();
        date_default_timezone_set("Asia/Jakarta");
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);  
    
        $urlget = $_GET['url'];
        $urlexplode = filter_var($urlget, FILTER_SANITIZE_STRING);
        $url = explode("/", $urlexplode);   
        $urlsave=$url[0];
        echo "urlsave=$urlsave<br>";
    
        if($urlsave=='home'){
            //----------------------------------------condition 1
            $coousername='myCookie';
            $cooval=$_COOKIE[$coousername];
            echo "cooval=$cooval<br>";
            exit;
        }else{
            //----------------------------------------condition 2
            echo "<script language=javascript> alert('I am in the condition 2')</script>"; 
            echo "<br><br><br>geblek lu keong<br>";
            $coousername='myCookie';
            $cooval=$url[0];
            //with referral
            $q=$pdo->query("SELECT COUNT(username) AS cu FROM t_un WHERE username='$cooval' AND status='1'");
            $f=$q->fetch(PDO::FETCH_OBJ);
            $cu=$f->cu;
            if($cu<>0){
                //right referral
                setcookie($coousername, $cooval, time() + (3600 * 24 * 365), "/"); // 1 year
            }else{
                //wrong referral
                if(!isset($_COOKIE[$coousername])){
                    $cooval2='eagle';
                    setcookie($coousername, $cooval2, time() + (3600 * 24 * 365), "/"); // 1 year
                }else{
                    $q=$pdo->query("SELECT username FROM t_un WHERE status='1' AND ve='1' AND upgrade='1' ORDER BY RAND() LIMIT 1");
                    $f=$q->fetch(PDO::FETCH_OBJ);
                    $username=$f->username;
                    setcookie($coousername, $username, time() + (3600 * 24 * 365), "/"); // 1 year
                    exit;
                }
            }
        }
        exit;
    ?>
    

    我的.htaccess就像这样:

    #Disallow viewing htaccess file
    <Files .htaccess>
        order allow,deny
        deny from all
    </Files>
    
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    
    RewriteRule ^/?$ /home [R=301,L]
    
    #404 missing page
    ErrorDocument 404 /pagenotfound.php
    

    现在,我不知道逻辑在哪里运行,条件1或2.请任何人都可以帮助我,因为我已经在这里堆了3天。

0 个答案:

没有答案