2011-11-28 54 views
1

在开始时,脚本工作正常。我登录,注销,并能够多次执行此操作。登录检查页面空白或不重定向

现在,我不知道发生了什么。该页面最终会变成空白,如果它不完全是空白,则会显示一些html,但不会重定向。然而,它正在登录我,因为我可以直接进入我应该被重定向到的页面,方法是在地址栏中键入它,而不会被弹回到登录页面(这是否合理)?

我知道它必须是关于我的会话,但我不完全理解。

这是登录检查脚本:

<?php 
$host=""; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name=""; // Table name 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$uname=$_POST['uname']; 
$pname=$_POST['pname']; 

$uname = stripslashes($uname); 
$pname = stripslashes($pname); 
$uname = mysql_real_escape_string($uname); 
$pname = mysql_real_escape_string($pname); 

$sql="SELECT * FROM $tbl_name WHERE username='$uname' and password='$pname'"; 
$result=mysql_query($sql); 

$count=mysql_num_rows($result); 

if($count==1){ 
session_register("uname"); 
session_register("pname"); 
header("location:index.php"); 
echo " '<h2>Continue to the donor list</h2><br /><br /> 

      <div id="login-box-name"> 
       Return to the login screen? 
      </div> 

      <div id="login-box-field"> 
      </div> 

      <div id="login-box-name2"><a href="index.php"><img src="images/continue-btn.png" /></a></div> 

      <div id="login-box-field2"> 
      </div> 

      <br /> 

      <span class="login-box-options"> 

      </span> 

      <br /> 
      <br />' "; 
} 
else { 
echo " '<h2>Wrong Username or Password</h2><br /><br /> 

      <div id="login-box-name"> 
       Return to the login screen? 
      </div> 

      <div id="login-box-field"> 
      </div> 

      <div id="login-box-name2"><a href="login.php"><img src="images/return-btn.png" /></a></div> 

      <div id="login-box-field2"> 
      </div> 

      <br /> 

      <span class="login-box-options"> 

      </span> 

      <br /> 
      <br />' "; 
} 
?> 

这是我收到的错误:

[27-Nov-2011 17:52:59] PHP Warning: Cannot modify header information - headers already sent by (output started at /home4/folder/public_html/ccc/check.php:2) in /home4/folder/public_html/ccc/check.php on line 35 

[27-Nov-2011 17:52:59] PHP Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0 
+0

你在'<?php'之前有一个空格吗? –

+1

没有空间,我看到了,我将编辑帖子以包含开放/关闭php – Alina

+0

是该文件包含在其他地方? –

回答

2

确保你没有之前或之后回显的任何代码php标签。为什么我已经学会了避免这种情况,即在最后的?>标签之后,如果没有其他任何东西,或者该页面纯粹是PHP,则将其删除。这样做将有助于避免后面会引起该错误的任何额外空间。

+0

如果代码位于一堆html的中心,怎么办?这会影响它吗? – Alina

+0

@NoName然后它不会工作。我给出的例子只有在纯php页面上才能工作,就像你给出的例子。基本上,如果你在'header()'函数之前输出任何文本/空格,你会得到错误 – brenjt

+0

你,我的朋友,已经解决了这个问题。不管它是什么,它都与PHP之前/之后/之内的空格或所有html有关。我想我还需要时间才能做所有这些快乐的事情。没什么大不了的。我会让它重定向。 – Alina

2

如果您在check.php页面中使用include或require,请勿在index.php页面或其他包含页面中使用类似的页眉。此外,请确保您在打开和关闭PHP标签<?php . . . ?>之前或之后没有任何空白区域。

+0

不需要任何地方。任何连接到数据库的东西都有连接脚本。 – Alina

+0

好的。确保你没有在check.php和index.php文件中设置相同的头文件。或者尝试flush();在设置标题后查看是否有帮助。 –

+1

啊,冲水很聪明。我补充说。谢谢你:) – Alina

相关问题