我有一些登录页面的代码,除了它似乎没有工作,我的意思是当我输入正确的用户名和密码并单击登录时,表单只是重新加载并保持在同一登录页。如果有人可以建议一些可能的解决方案,那将是非常新的PHP,并且到目前为止还没有任何运气。这是我的代码:
<?php
require_once("nocache.php");
$id = $_POST["id"];
$pword = $_POST["pword"];
if(!empty($_POST)) {
if(!empty($id) || !empty($pword)) {
require_once("dbconn.php");
$sql = "select username, school_type from school_info where username = '$id' and password = '$pword'";
$rs = mysql_query($sql, $dbConn);
if(mysql_num_rows($rs) > 0) {
session_start();
$_SESSION["who"] = $id;
$_SESSION["school_type"] = mysql_result($rs, 0, "school_type");
header("location: EOI_home.php");
}
} else {
header("location: login.php");
}
}
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="login">
ID: <input type="text" name="id" /><br/>
pword: <input type="password" name="pword" /><br/>
<input type="submit" value="log in" />
<input type="reset" />
</form>
顺便说一句,我从这个代码中获取的文件的名称是login.php
以下是dbconn.php文件的内容:
<?php
$dbConn = mysql_connect("localhost", "twa312", "dam6av9a");
if (!$dbConn){
die('Could not connect: ' . mysql_error()); }
mysql_select_db("test", $dbConn)
or die ('Database not found ' . mysql_error() );
?>
这是nochache.php文件:
<?php
header("Cache-Control: no-cache");
header("Expires: -1");
?>
只是添加了这些额外文件的内容,以防万一。
答案 0 :(得分:3)
exit;
重定向后没有header("location: EOI_home.php");
。以下情况对我来说也不合适..
if (!empty($id) || !empty($pword))
如果$id
不为空但$pword
仍然会登录,但除非用户有空密码,否则不会重定向。它应该是......
if (!empty($id) && !empty($pword))
答案 1 :(得分:1)
将session_start
电话移至页面顶部。如果你输出任何东西,在点击该命令之前它不会起作用,如果你关闭了警告,那么你就不会知道它。