1

このスクリプトを実行すると、ヘッダーを介してセッションを location:index.php にリダイレクトすることにより、セッション変数 ($email) をエコーし​​ようとしていますが、電子メール アドレスではなくセッション値 (数字の 1) をエコーするだけなので、理由がわからない。何か案は?ありがとう。

<?php
session_start();
if (isset($_POST['email'], $_POST['password'])) {
    $email = $_POST['email'];
    $password = $_POST['password'];
    if ($email && $password) {
        $connect = mysql_connect("localhost", "root", "") or die("Could not connect");
        mysql_select_db("test") or die("could not find database");
        $query = mysql_query("SELECT * FROM users WHERE email='$email'&& 
            password= md5('$password')");
        $numrows = mysql_num_rows($query);
        if ($numrows != 0) {
            $_SESSION["email"] = $email;
            session_write_close();
            header("location:index.php");
            Die();
        }
        else
            echo ("not a user");
    }
    else
        echo("enter both fields");
}
?>
<html>
    <form action='edit1.php' method='POST'>
        <table align='right' bgcolor='blue'>
            <tr>
                <td>Email
                </td>
                <td>Password
                </td>
            </tr>
            <tr>
                <td><input name='email' type='text'>
                </td>
                <td><input name='password' type='password'><td>
                    <input type='submit' value='login'>
                </td>
            </tr>
        </table>
    </form>
</html>


//index.php file

<?php
session_start(); {

    echo $_SESSION['email'] or die('fail'); {

    }
}
?>
4

2 に答える 2

3

コメントで言ったように、動作しor dieません。それを除く。

于 2012-07-01T21:54:16.903 に答える
0

or die('fail') を削除すると、正常に動作します。

関数 echo は無効なレンダリング 'or die()' を返します

于 2012-07-01T21:53:56.587 に答える