我不确定为什么,但它适用于我的开发服务器。我正在运行Apache2并使用PHP作为我的编程语言。服务器不完全相同但非常相似/大部分每个设置都是相同的。
这与服务器上的PHP版本有什么关系吗?
生产正在运行:PHP版本5.4.27-1 + deb.sury.org~precision + 1
开发正在运行:PHP版本5.4.32-2 + deb.sury.org~lucid + 1
或者我的代码中有些东西我不见了?
<?php
$page = 'Home';
require_once('includes/config.php');
require_once('includes/auth.php');
require_once('includes/header.php');
?>
<div id="content">
<?php
if($loggedin){
if(isset($customer)){
header('Location: ftp.php');
require_once('indexes/customers.php');
} else if(isset($web_user)){
if(checkperm($loggedin_id, 2)){header("Location: bulletin.php");}
if(checkperm($loggedin_id, 4)){ header("Location: signoff.php?dep=Workorders");}
require_once('indexes/employees.php');
}
} else {
require_once('indexes/guest.php');
}
//echo "<meta http-equiv='refresh' content='0;url=http://www.yoursite.com'>";
?>
</div>
<?php
require_once('includes/footer.php');
?>
应用程序上的每个注册用户都设置了特定权限和角色,以便他们可以访问应用程序的特定部分。
基本上,如果登录并且用户的“角色”设置为$ customer,他们将只能访问我们应用程序的FTP部分以下载/上传文件给我们。
如果登录并且用户的“角色”是$ web_user,并且他们的checkperm(权限)是id:2(加工),那么在登录时将它们重定向到公告页面。
如果登录并且用户的“角色”是$ web_user,并且他们的checkperm(权限)是id:4(管理员),那么将它们重定向到工作订单签名页面。
代码与开发服务器上运行的代码相同。
答案 0 :(得分:3)
您正在致电:
header('Location: ftp.php');
您已经输出了一些内容。必须在输出之前发送标题!这包括HTML和PHP echo语句。
答案 1 :(得分:1)
使用标题下方的exit,但在发送任何输出之前确保它。
if(isset($customer)){
header('Location: ftp.php');
exit();
/* Why do you have this line here? When redirect begins above then it will not be executed */
require_once('indexes/customers.php');
}