0

セッション変数を使用して 1 つのログイン フォームを作成しました。このログイン フォームは index.php であり、このフォーム アクションは、先に進む前にそれを validate.php ページにリダイレクトしています。Vaidate.php コードにはこれが含まれています

<?php
session_start();                    // Initialize session           
include('config.php');              // Include database connection settings
$sql= mysql_query("select * from users where (username= '". mysql_real_escape_string($_post['uname'])."') and (password='".mysql_real_escape_string($_post['pass'])."')");  // Retrieve username and password from database according to user's input
    // check if the username and password exists
    if(mysql_num_rows($sql)==1)
    {
        // store the USERNAME in SESSION VARIABLE
        $_SESSION['name'] = $_POST['uname']; 
        // and then JUMP to WELCOME page
        header('Location:welcome.php');
    }
    else
    {
        // Jump to login page
        //echo "<script type='javascript'>{alert('Username Or Password Incorrect')
//      return false;
//      }
        header('Location:index.php');
    }

?>

index.php には以下のコードが含まれています

<?php
session_start();                // function to start the session 

if (isset($_SESSION['name']))   // Check, if user is already login, then jump to Welcome page
    {
        header('Location: welcome.php');
    }
?>
</head>
<title>Login</title>

<body>
<form action="validate.php" method="post" name="log"/>
<h3 align="center" style="margin-top:40px">User Login</h3>
<table border="1" cellpadding="3" cellspacing="0" width="40%" align="center" style="margin-top:60px">
<tr>
    <td>User Name</td>
    <td >
        <input type="text" name="uname"/>
    </td>
</tr>
<tr>
    <td>Password</td>
    <td>
        <input type="password" name="pass"/>
    </td>
</tr>
<tr>
    <td colspan="2" align="center">
        <input type="submit" value="Submit">
        <input type="reset" value="Clear ">
    </td>
</tr>
</table>
</body>
</html>

この問題は、ユーザー名のパスワードが正しい場合でも、index.php にリダイレクトされることです。この場合、何が欠けているのかわかりません。コードは正しいようです。

4

2 に答える 2

1

$_POST must be capital. Besides, i recommend to store the $_POST['uname'] in a variable first, then use it in the query.

于 2012-05-25T07:27:31.220 に答える
1

$_post['pass'] と $_post['uname'] は定義されていません。とを使用$_POST['pass']$_POST['uname']ます。

于 2012-05-25T07:16:39.577 に答える