【发布时间】:2013-03-30 19:44:05
【问题描述】:
如果用户设置了下拉菜单的值,我有这段代码可以将用户重新定位到 index.php 在不相关的页面上设置它,请检查我的代码。
if(isset($_GET['d'])&&empty($_GET['d'])===false){
$cur_page=$_SERVER['PHP_SELF'];
$current_page = substr($cur_page,1);
$possible_page = array('terms.php','contact.php','about.php');
if(in_array($current_page,$possible_page)){
header('Location:/index.php?d='.$_GET['d'].'');
exit();
}else{
echo $_GET['d'];
}
它在我的本地服务器上运行良好,但在实时服务器上却不行?
【问题讨论】:
-
您需要更好地解释“不起作用”的含义。您的标题中还需要一个空格,即:
'Location: /index.php?d=' -
如果标头已经发送,header() 不起作用。一旦将某些内容输出到页面,就会发生这种情况,即使是 PHP 标记之前的空格或字节顺序标记。
-
你试过
header('Location: index.php?d='.$_GET['d'])吗? (不带斜线) -
@adeneo 好吧,这无法解释为什么它在本地工作但不能在现场工作。
-
在靠近脚本顶部的某处输入
error_reporting(E_ALL);,因为您可能在某处遇到错误,并且可能是“第 X 行已发送标头”。