2013-07-25 49 views
0

我刚刚遇到了一个问题,这对我来说似乎很不寻常。使用PHP在Webkit浏览器中包含/需要渲染问题(Chrome,Safari,Opera)

我想在我的各种页面中包含一个特定的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 

- social 

- - index.php 
- - profile.php 
- - messages.php 
- - album.php 
- - more files... 

- include 

- - loggedStatus.php 
- - more files...

在我的每一个页面的顶部(的index.php,profile.php,等等),我“包括“上述使用include('../include/loggedStatus.php');

但是,只要我这样做,我会在我的菜单栏出现之前找到顶部的空间。 这只发生在webkit浏览器(Chrome,Safari,Opera)中,而不是在Firefox中。

其他一切似乎都很好。

但是,当我用完整脚本替换include('../include/loggedStatus.php');时,空间消失!

我错过了什么,或者它是否是webkit引擎中的错误?

+1

**警告**您的代码易受sql注入攻击! –

+0

您是否指$ _COOKIE ['myCookie']变量的值? – gdebojyoti

+0

正确。反映用户输入。 –

回答

0

include语句相对于文件在服务器上的位置。我会避免使用include语句的相对路径,因为如果您的代码结构发生改变,它将会中断。设置一个与您工作目录相关的定义字符串,并使用该字符串包含文件。如果您的代码每改变一次,您都可以快速更改定义的路径。

define("BASE_DIR", "/var/www/"); 
include BASE_DIR . "includes/loggedStatus.php"; 

或查看autoloader

对于header重定向,反之亦然,使这些绝对。

header("location: /"); //Redirect to root page 
header("location: /profile.php"); //Redirect to profile page 

至于在页面检查每个文件的开始的空间,并确保它与<?php,而不是一个空格或制表符或空格任何其他形式的开始。

另请在浏览器中使用“查看源代码”来尝试跟踪页面中的空白处。

+0

每个页面都以<?php开头 – gdebojyoti

相关问题