我刚刚遇到一个问题,对我来说似乎很不寻常。
我想在我的各个页面中"包含"一个特定的PHP脚本(loggedStatus.PHP)。
其内容为-
<?php
@session_start();
//$username,$password,$databaseName declared
if(isSet($_COOKIE['myCookie']))
{
$dbConnection = mysql_connect("localhost",$username,$password);
mysql_select_db($databaseName);
$userLoggedIn = mysql_fetch_array(mysql_query("SELECT * FROM usersList WHERE sessionVal='".$_COOKIE['myCookie']."'"));
mysql_close($dbConnection);
if(!$userLoggedIn['userID']) { echo header("location:../"); exit(); }
}
else { header("location:../"); exit(); }
$relLink = "../";
?>
我的网站的文件夹结构是-
mainFolder-社会--index.php--profile.php--messages.php--白蛋白.php--更多文件。。。-包括--loggedStatus.php--更多文件
在我的每个页面(index.php、profile.php等)的顶部,我使用include('../include/loggedStatus.php');
"包含"了以上内容
但每当我这样做的时候,我都会在菜单栏出现之前在顶部找到一个空格。这种情况仅发生在webkit浏览器(Chrome、Safari、Opera)中,而不发生在Firefox中。
其他一切似乎都很好。
但是当我用完整的脚本替换include('../include/loggedStatus.php');
时,空间就消失了!
我是遗漏了什么,还是webkit引擎中的错误?
include
语句相对于文件在服务器上的位置。我会避免为include
语句使用相对路径,因为如果您的代码结构发生更改,它就会中断。设置一个与您的工作目录相关的已定义字符串,并使用该字符串包含文件。如果您的代码每次都发生更改,您可以快速更改已定义的路径。
define("BASE_DIR", "/var/www/");
include BASE_DIR . "includes/loggedStatus.php";
或者看看自动加载器。
header
重定向的情况正好相反,请确保这些重定向是绝对的。
header("location: /"); //Redirect to root page
header("location: /profile.php"); //Redirect to profile page
至于页面开头的空格,请检查每个文件,并确保它以<?php
开头,而不是空格、选项卡或任何其他形式的空白。
还可以使用浏览器中的"查看源代码"来尝试跟踪页面中空白的位置。