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

PHP重定向或cookies,不在Godaddy上工作,而是在localhost上工作,php,redirect,cookies,Php,Redirect,Cookies,因此,我刚刚将我的php上传到godaddy,除了正常工作的重定向现在已经停止。代码在实时服务器上的工作方式和离线之间应该没有区别,所以我不知道发生了什么变化 下面是一个不起作用的代码示例 标题链接与注销超链接,据我所知,作为一个超链接应该 <div id="header"> <div> <a href="index.php">Home</a> <div id="

因此,我刚刚将我的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)


RedirectPage.php(访问注销页面后立即链接到的下一个页面)


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


发生的情况是页面重定向到索引(正如它应该的那样)可能使用以下顺序,这让我认为重定向正在工作,但用户没有注销。cookie没有被移除。我真的不明白为什么它不是,因为它确实通过本地主机上的netbeans工作

这很容易。解开饼干

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();  
}

redirect\u user()
在何处声明?“代码在实时服务器上的工作方式与离线之间应该没有区别”。“我不能告诉你这有多错误。@米凯布兰特,那么为什么不开始解释一下或者把我和一些有帮助的东西联系起来呢?而不是让我觉得自己很笨。我是新来的,我知道,我的老师没用,所以我在自学,据我所知,到目前为止,我所写的所有代码在网上和网下都是一样的,而且,到目前为止,我还没有看到(因为我没有制作)任何代码工作方式不同的例子。@Spraters53两个不同的服务器,无论它们是本地的还是在某个托管公司的某个地方,都不应该假设它们具有相似的环境,除非您以某种方式将它们设置为相似的,并且知道它们使用相同的web服务器配置、安全设置、软件版本、,等等。了解这些不同的软件依赖关系是应用程序的基础,这是您真正需要通过时间和经验来了解的。我只是想消除所有环境的行为都会类似的想法。您意识到您在“else”条件下调用了两次
redirect\u user()
?在包含的
REdirectPage.php
文件中调用一次,然后在else条件中立即调用。为什么会这样?
redirect\u user()
的代码是什么?很简单,知道托管时为什么需要unset cookie吗?
unset($\u cookie['foo'])
不从浏览器客户端删除cookie,而只是从PHP内存中删除变量。您必须发送一个标头以使浏览器客户端上的cookie过期(通常通过
setcookie()
完成)。如果希望在执行脚本的其余部分不受此变量的影响,我确实认为这两种方法都是很好的做法。@MikeBrant这有点奏效,但现在无法正确取消cookie的设置。现在它似乎删除了cookie,然后当我选择另一个页面时,它会在我不尝试登录的情况下再次重置cookie。。不过,这个问题只发生在托管网站上,而不是本地。
<?php
            require ('index.php');
            redirect_user();
?>
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();  
}