0

我有一些登录页面的代码,但它似乎不起作用,我的意思是当我输入正确的用户名和密码并单击登录时,表单只是重新加载并停留在同一个登录页面上。如果有人可以提出一些可能的解决方案,那我对 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" />&nbsp;
<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");
?>

只需添加这些额外文件的内容,以防有什么不同。

4

2 回答 2

3

重定向exit;后没有。header("location: EOI_home.php");此外,以下情况对我来说也不合适..

if (!empty($id) || !empty($pword))

if$id不为空,但$pword它仍然会登录,但不会重定向,除非用户的密码为空。它应该是..

if (!empty($id) && !empty($pword))
于 2013-05-23T18:54:53.537 回答
1

session_start呼叫移至页面顶部。如果您正在输出任何内容并且在点击该命令之前它将不起作用,并且如果您关闭了警告,那么您将不知道它。

于 2013-05-23T18:51:03.667 回答