我有一个非常奇怪的问题,我似乎无法追查。任何有关调试的帮助都会 非常 赞赏!
让我用场景来描述这个。
场景1(不正确)
curl_exec
)并获取用户信息top.php
文件curl_exec
)并收到错误,因为CAS票证已被使用,设置“CAS拒绝您的凭据”的新错误消息(不是正确的) top.php
文件,不第二次刷新/重定向情景2(半正确)
curl_exec
)并获取用户信息top.php
,因为它已被注释掉,并打印出“找不到用户”(这是正确的错误消息) 调试
所以,我已经检查,仔细检查并三重检查top.php
不使用include
,require
,redirect
(我们编写的打印函数) <meta>
重定向标记,然后调用exit;
),或实际刷新页面的任何其他内容。
实际上,我已经输入了一个die
语句来打印出错误消息。在top.php
的一行中,它正确打印出来。当我将该语句向下移动一行(在HTML </div>
标记下方)时,它会刷新页面并输出不正确的错误消息。任何地方都没有任何PHP标签。
据我所知,这意味着问题实际上并不在top.php
文件中,因为打印</div>
不应该导致页面刷新/重定向。
如何从这里进行调试的任何想法都会非常有用。清除缓存/缓冲区?如何更好地跟踪PHP正在做什么?
注意:没有输出PHP错误。
更新:是的,我找到了罪魁祸首!我没有调用include 'top.php';
而只是复制/粘贴login.php
内的代码,而是提出了相同的问题。所以我开始删除行,直到找到导致问题的行:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
所以,完全转换问题,因为我首先没有太多问题:有人可以解释为什么这会导致页面刷新,为什么只是有时候(即它不会持续)刷新页面?
答案 0 :(得分:1)
如果你有firefox抓住自己的livehttpheaders副本。将其打开并完成方案1.跟踪http请求和响应标头以查看其中发生的情况。它应该为您提供有关浏览器和服务器之间发生的事情的更多信息。