PHP重定向或cookie,不是在Godaddy上工作,而是在localhost上工作

时间:2014-11-04 18:52:29

标签: php redirect cookies

所以我刚刚将我的php上传到godaddy,除了正在运行的重定向现已停止。在实时服务器上的代码如何工作到离线之间应该没有区别,所以我不明白改变了什么。

以下是无效的代码示例

带有注销超链接的标题链接,据我所知,它应该作为超链接

<div id="header">
           <div>
            <a href="index.php">Home</a> 
                <div id="loginreglink">
                <a href="Logout.php">Log Out</a>
                </div>
           </div>
          </div> 

实际的退出页面(logout.php)

<?php

require_once ('Connection.php');

header('Refresh: 0;');

            if (!isset($_COOKIE['Username'])){
                require ('LoginFunctions.inc.php');
                redirect_user();
            } else {
                setcookie('Username', '', time()-60*60*24*90, '/', '', 0, 0);
                require ('RedirectPage.php');
                redirect_user();
            }


?>

RedirectPage.php(应该在登出页面访问后立即链接的下一页)

<?php
            require ('index.php');
            redirect_user();
?>

然后立即链接回索引,但是用户应该注销。这不会发生。

页面重定向到索引(因为它应该)可能会使用以下序列,这使我认为重定向正在工作,但用户没有注销。 cookie未被删除。我真的不明白为什么它不是因为它确实通过localhost上的netbeans工作。

1 个答案:

答案 0 :(得分:1)

这很容易。取消设置cookie。

if (!isset($_COOKIE['Username'])){
   require ('LoginFunctions.inc.php');
   redirect_user();
} else {
   setcookie('Username', '', time()-60*60*24*90, '/', '', 0, 0);
   require ('RedirectPage.php');
   //add this
   unset($_COOKIE['Username'];
   //or use setcookie and make the time to expire in the past and just put an empty value like
   $cookie_name = "Username";
   $cookie_value = "";
   $time = -3600;
   setcookie($cookie_name, $cookie_value, $time, "/");
   redirect_user();  
}