-4

ログインフォームが表示されません。空白のページが表示されます。

正しいコードを投稿してください。簡単に置き換えることができます。私は php を初めて使用するので、私のコードはあなたのコードほど専門的ではありません。

これが私のコードです:

<?php
session_start();
?>
<head>
  <meta http-equiv=""Content-Type" content="text/html"; charset=utf-8 />
  <title>Member Register</title>
</head>
<body><?php
    $form = "<form action='./login.php' method='post'>

               <table>
                 <tr>
                   <td>Username:</td>
                   <td><input type='text' name='user' /></td>
                 </tr>
                 <tr>
                   <td>Password:</td>
                   <td><input type='password' name='password' /></td>
                 </tr>
                 <tr>
                   <td></td>
                   <td><input type='submit' name='loginbtn' value='Login' /></td>
                 </tr>
               </table>
             </form>";

    if ($_POST['loginbtn']) {
        $user = $_POST['user'];
        $password = $_POST['password'];

        if ($user) {
            if ($password) {

                require("connect.php");

                $password = md5(md5("Ji5t63s".password."v5h2ih47");

                $query = mysql_query("SELECT * FROM users WHERE username='$user'");
                $numrows = mysql_num_rows($query);
                if ($numrows == 1) {
                    $row = mysql_fetch_assoc($query);
                    $dbid = $row['id'];
                    $dbuser = $row['username'];
                    $dbpass = $row['password'];
                    $dbactive = $row['active'];

                    if ($password == $dbpass){
                        if ($dbactive == 1){
                            $_SESSION['userid'] = $dbid;
                            $_SESSION['username'] = $dbuser;

                            echo "You have been logged in as <b>$dbuser</b>. <a href="./member.php">Click here</a> to go to the member page.";

                        }
                        else
                            echo "you must activate your account to login. $form";
                    }
                    else
                        echo "you did not entered a correct password. $form";
                }
                else
                    echo "The user you entered was not found. $form";
                    mysql_close();

            }
            else
                echo "You must enter you password. $form";
        }
        else
            echo "You must enter your username. $form";
    }
    else
        echo $form;
?>
</body>
</html>
4

2 に答える 2

2

(テスト済み)

フォームが表示されない理由は、次の 2 行のためです。

1)これには、最後に閉じ括弧がありませんでし)た。

$password = md5(md5("Ji5t63s".password."v5h2ih47");

次のようにする必要があります。

$password = md5(md5("Ji5t63s".password."v5h2ih47"));

2) -<a href="./member.php">問題は、(エスケープされていない) 二重引用符または単一引用符の使用です。

既存の回線:

echo "You have been logged in as <b>$dbuser</b>. <a href="./member.php">Click here</a> to go to the member page.";

次のようにする必要があります。

echo "You have been logged in as <b>$dbuser</b>. <a href='./member.php'>Click here</a> to go to the member page.";

またはそれらをエスケープします\"

echo "You have been logged in as <b>$dbuser</b>. <a href=\"./member.php\">Click here</a> to go to the member page.";

残りの部分 (インクルード ファイルを含むコード) の機能に関しては、私の手に負えません。フォームが表示されない理由を尋ねました。

于 2013-10-05T20:02:47.277 に答える
-2

Please don't have any whitespace characters before your session_start() .

Instead of:

    <?php
session_start(); ?>

please make it:

<?php
session_start();?>

The session needs to be started before you output anything to the browser. Please remember PHP is an interpreter, and therefore is executed by each line.

于 2013-10-05T17:43:18.657 に答える