-3

私が現在解決できない問題は、ユーザーがログインしたときです。ユーザーはサイト(index.php)に到着し、ユーザー名とパスワードを入力します。これは、投稿フォームを介してindex.phpに送信されます。詳細が正しくない場合は、エラーメッセージが表示されます。しかし、成功した場合は、ユーザーのホームページに移動してもらいたいのですが、これはできません。私は彼らにホームページへのリンクを提示することを余儀なくされていますが、それは少し不格好です。

明らかに解決策があるに違いないようです-リダイレクトされなかった前にサイトを見たことがありません!答えがPHp、HTML、またはJavascriptであるかどうかはわかりません。

編集:

質問が完全ではなかった場合は申し訳ありませんが、まだここで学習しています。リダイレクトをifステートメントに入れようとしましたが、それでも機能しません。理想的にはリダイレクトがコードの一番上になると思いますが、それを実行してログイン手順を保持する方法がわかりませんか?次のようにコーディングします。

if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);

$salt = "randomsalt";
$md5pass = md5($salt . $pass);

if ($user == "" || $pass == "")
{
    $error = "Not all fields were entered<br />";
}
else
{
    $query = "SELECT username,password FROM users
              WHERE username='$user' AND password='$md5pass'";


    if (mysql_num_rows(queryMysql($query)) == 0)
    {
        $error = "Username/Password invalid<br />";
    }
    else
    {
        $_SESSION['user'] = $user;
        $_SESSION['pass'] = $pass;

        header("Location: http://localhost:8888/profile.php?view=$user");

        exit;

    }
}

}

ありがとう

リッチ

編集2:

助けてくれてありがとう-それでも解決できなかったので、ページの上部にリダイレクトする必要がありますが、同様にログインスクリプトを配置する必要があります。結局、それを次のように解決しました:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=profile.php?view=$user\">";

上記のヘッダーと終了行の代わりに。

再度、感謝します

リッチ

4

3 に答える 3

4

リダイレクトが間違っている可能性があります。まず、これを一番上に置きますindex.php

<?php
/* Redirect browser */
header("Location: http://newPath/newPage.php/");

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

これは、exit後ですべての処理を停止するステートメントを含む単純なリダイレクトであるため、リダイレクトが機能しているかどうかをテストするだけで済みます。それが機能する場合は、リダイレクトに条件を追加します。

<?php
if (/*login credentials are valid*/){
    /* Redirect browser */
    header("Location: http://newPath/newPage.php/");

    /* Make sure that code below does not get executed when we redirect. */
    exit;
}
?>

ただし、もちろん/*login credentials are valid*/、関数の呼び出しなど、実際にクレデンシャルをチェックしてブール値を返すものに置き換えてください。

于 2012-04-05T11:34:21.423 に答える
-1

このソリューションはphp用です。これがお役に立てば幸いです。

$user_name = $_POST['username']; // posting value through form
$pass_word = $_POST['password']; // posting value through form

$sql = mysql_query("select 1 from admin_users where username='".$user_name."' and password='".$pass_word."'"); // checking username and password in database

if ($sql)    

{echo "Invalid User Name/Password";}

else

{header("Location: homepage.php"); exit;}
于 2012-04-05T11:38:01.420 に答える
-2

ユーザー名とパスワードを変数に取ります。

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

以下のように、これをあなたのテーブルと比較してください:

$sql = mysql_query("select * from tbl_users where username='".$username."' and password='".$pwd."'");
if(mysql_num_rows($sql)>0){
header("Location:homepage.php");
}else{
echo "Invalid username or password ";
}

これは機能します。

于 2012-04-05T11:46:10.783 に答える