1

PHPに問題があります。簡単なログイン システムを作成しましたが、ログインしてもメンバー ページにリダイレクトされず、空白のページに移動します。私が試したように、ログインは機能しますecho("success")。どんな助けでも大歓迎です。

<?php
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if($username&&$password)
{
    $connect = mysql_connect("mysite","hidden","hidden") or die("Couldn't   connect");
    mysql_select_db("hidden") or die("Couldn't find db");   

    $query = mysql_query("SELECT * FROM users WHERE Username = '$username'");
    $numrows = mysql_num_rows($query);

    if($numrows!=0)
    {
        //code to login
        while($row = mysql_fetch_assoc($query))
        {
            //validate values
            $dbusername = $row['Username'];
            $dbpassword = $row['Password'];
        }
        //check to see if the values match
        if($username==$dbusername && $password==$dbpassword)
        {
            header('Location: memberHome.php');
            $_SESSION['username']=$dbusername;
        }
        else
            die("incorrect password");
    }
    else
        die("User doesn't exist");
}
else
    die("Please enter a username and a password");
?>
4

3 に答える 3

1
header('Location: memberHome.php');
$_SESSION['username']=$dbusername;

セッション変数を割り当てたい場合は、ヘッダーが次のページに進む前に割り当てる必要があります;) 次のように:

$_SESSION['username']=$dbusername;
header('Location: memberHome.php');
于 2012-05-20T20:34:27.530 に答える
0

ヘッダーの後に死ぬことを試みましたか?

$_SESSION['username']=$dbusername;
header('Location: memberHome.php');
die;
于 2012-05-20T20:35:38.863 に答える
0

最初にユーザー名が存在するかどうかを確認してからパスワードが正しいかどうかを確認するのではなく、両方を同時に行ってみませんか?

    $row = mysql_fetch_assoc(mysql_query("SELECT * FROM users
    WHERE Username='$username' 
    AND pass='$password'"));

if($row['id']) { 
$_SESSION['username']=$dbusername;
header('Location: memberHome.php');
}

また、ステートメントでは使用*しない方が賢明です。SELECT本当に必要なアイテムだけを選択してください。

リダイレクトしないという点で、コードに問題はありません。

このコードを使用してマシンでローカルに試し、DB接続を取り出しました。しかし、以下に示すコードを使用して、memberHome.php にリダイレクトすることができました。これは、ユーザー名とパスワードが一致していれば、正しく機能していることを示しています。

<?php
session_start();

$username = "david";
$password = "password";

if($username&&$password)
{
    //$connect = mysql_connect("mysite","hidden","hidden") or die("Couldn't   connect");
   //mysql_select_db("hidden") or die("Couldn't find db");   

    //$query = mysql_query("SELECT * FROM users WHERE Username = '$username'");
    $numrows = 1;

    if($numrows!=0)
    {

            //validate values
            $dbusername = "david";
            $dbpassword = "password";

        //check to see if the values match
        if($username==$dbusername && $password==$dbpassword)
        {
            header('Location: memberHome.php');
            $_SESSION['username']=$dbusername;
        }
        else
            die("incorrect password");
    }
    else
        die("User doesn't exist");
}
else
    die("Please enter a username and a password");
 ?>
于 2012-05-20T20:45:03.117 に答える