Php 登录检查页为空或不';t重定向
一开始,剧本做得很好。我登录,注销,并且能够多次这样做 现在,我不知道发生了什么。页面以空白结束,如果它不是完全空白,它会显示一些html,但不会重定向。但是,它让我登录,因为我可以直接进入我应该重定向到的页面,只需在地址栏中键入它,而不会返回到登录页面(这有意义吗) 我知道这一定是关于我的治疗,但我不完全理解 这是登录检查脚本:Php 登录检查页为空或不';t重定向,php,mysql,login,Php,Mysql,Login,一开始,剧本做得很好。我登录,注销,并且能够多次这样做 现在,我不知道发生了什么。页面以空白结束,如果它不是完全空白,它会显示一些html,但不会重定向。但是,它让我登录,因为我可以直接进入我应该重定向到的页面,只需在地址栏中键入它,而不会返回到登录页面(这有意义吗) 我知道这一定是关于我的治疗,但我不完全理解 这是登录检查脚本: <?php $host=""; // Host name $username=""; // Mysql username $password=""; // My
<?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 />' ";
}
?>
确保在php标记之前或之后没有任何代码回显。我学会避免这种情况的一个原因是,如果最后一个
?>
标记后面没有其他内容,或者如果页面纯粹是PHP,那么就删除它。这样做将有助于避免它后面的任何额外空格,这将导致该错误。确保在php标记之前或之后没有任何代码回显。我学会避免这种情况的一个原因是,如果最后一个?>
标记后面没有其他内容,或者如果页面纯粹是PHP,那么就删除它。这样做将有助于避免后面的任何额外空格导致该错误。如果在check.php页面中使用include或require,请不要在index.php页面或其他包含页面中使用类似的标题。另外,如果在check.PHP页面中使用include或require,请确保在打开和关闭PHP标记之前或之后没有任何空白,不要在index.PHP页面或其他包含页面中使用类似的标题。另外,请确保在打开和关闭PHP标记之前或之后没有任何空格
如果在之前有空格,我将编辑文章以包含打开/关闭的PHPI,该文件包含在其他地方?我编辑代码以包含整个内容。无论是否包含html代码,它都会做同样的事情。删除多余的空格`如果前面有空格,我看不到空格,我将编辑帖子以包含其他地方包含的打开/关闭PHPI文件?我编辑代码以包含整件事。不管是否包含html代码,它都会做同样的事情。删除多余的空格`如果代码位于一堆html的中心怎么办?这会影响它吗?@NoName那么它就不起作用了。我给出的示例只有在与您给出的示例相同的纯php页面上才有效。基本上,如果在header()
函数之前输出了任何文本/空格,您就会得到错误,我的朋友,您已经解决了这个问题。不管它是什么,它都与PHP中的间距或之前/之后/所有html有关。我想我还需要时间才能做这些快乐的事情。没什么大不了的。我会让它改为重定向。@NoName不客气。如果还有什么我可以帮助您的,请告诉我。我觉得将应用程序逻辑(PHP)和表示(html)分开很有帮助。我建议使用Smarty或Twig之类的模板引擎。这可以防止此类错误。如果代码位于一堆html的中心,该怎么办?这会影响它吗?@NoName那么它就不起作用了。我给出的示例只有在与您给出的示例相同的纯php页面上才有效。基本上,如果在header()
函数之前输出了任何文本/空格,您就会得到错误,我的朋友,您已经解决了这个问题。不管它是什么,它都与PHP中的间距或之前/之后/所有html有关。我想我还需要时间才能做这些快乐的事情。没什么大不了的。我会让它改为重定向。@NoName不客气。如果还有什么我可以帮助您的,请告诉我。我觉得将应用程序逻辑(PHP)和表示(html)分开很有帮助。我建议使用Smarty或Twig之类的模板引擎。这可以防止此类错误。无需任何地方。连接到数据库的任何内容都包含连接脚本。Ok。确保您在check.php和index.php文件中没有设置相同的头。或者尝试刷新();在你设置一个标题看看是否有帮助之后。啊,刷新是非常聪明的。我在信中加了这个。谢谢:)哪里都不需要。连接到数据库的任何内容都包含连接脚本。Ok。确保您在check.php和index.php文件中没有设置相同的头。或者尝试刷新();在你设置一个标题看看是否有帮助之后。啊,刷新是非常聪明的。我在信中加了这个。谢谢:)
[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