PHP重定向循环

时间:2016-01-29 09:51:45

标签: php loops redirect

任何人都可以指导或帮助我了解这个make_cookie功能吗?它确实创建了重定向循环,并且页面将不会加载。这从PHP 5.3升级到PHP 5.5之后出现,我比较了php.ini文件

    function make_cookie($name,$value,$time,$loc=0) {

        global $QUERY_STRING, $db_handler, $user;
        if($this->cookies) {
            setcookie($name,$value,$time);
        } else {
            $query="SELECT t2.*,t1.id AS sess FROM session AS t1 ".
                    "LEFT JOIN user AS t2 ON t1.user=t2.id ".
                    "WHERE t1.last_ip='".$_SERVER["REMOTE_ADDR"]."' ".
                    "AND t1.cookie='".$value."' AND t1.out_time>NOW()";

            $result=mysqli_query($db_handler,$query) or die(mysqli_error($db_handler));
            if($rida=mysqli_fetch_assoc($result)) {
                //define("_asutus_id",$rida["asutus_id"]);
                $user_id=$rida["id"];
                $mods_text=$this->get_mods($user_id);
                $user1_text=$this->get_user1($user_id);
                $fl=fopen("tmp/$value.inc","w+");
                fwrite($fl,"<?\n");
                fwrite($fl,"\$GLOBALS[\"mod_rights\"]=".$mods_text.";\r\n");
                fwrite($fl,"\$GLOBALS[\"user1\"]=".$user1_text.";\r\n");
                fwrite($fl,"?>\n");
                fclose($fl);

                $fl=fopen("tmp/".$value."_1.inc","w");
                fwrite($fl,"<?\n");
                fwrite($fl,"\$GLOBALS[\"tooted\"]=Array();\r\n");
                fwrite($fl,"?>\n");
                fclose($fl);
                //$query=mysql_query("UPDATE session SET rights='$rights_text',mods='$mods_text' WHERE id=".$rida["sess"]) or die(mysql_error());
                mysqli_free_result($result);
            }
            $qry_str=preg_replace("/sessID=[0-9a-f]{32,32}/i","",$QUERY_STRING);

            Header("Location: index.php?sessID=".$value."&".$qry_str);


        }
    }

我在另一个函数中调用它

        function new_sess($loc=0) {
        global $user,$db_handler;
        $token=md5(microtime());
        $expires=time()+3600;
        $exp=date("Y-m-d H:i:s", $expires);
        mysqli_query($db_handler, "INSERT INTO session (cookie, in_time, out_time, last_ip, ipname) VALUES ('".$token."', NOW(), '".$exp."', '".$_SERVER["REMOTE_ADDR"]."', '".gethostbyaddr($_SERVER["REMOTE_ADDR"])."')") or die(mysqli_error($db_handler));
        $this->sessID=$token;
        $this->make_cookie("sessID",$token,time()+3600,$loc);

        $user='';
        log_("new_session","_");
    }

0 个答案:

没有答案