-1

ログインに接続されたデータベースで、ユーザーがスクリプトにログインしたときに URL リダイレクトを読み取る URL を使用できるかどうかを知りたいですか? または、単純な一意のログインリダイレクトに関する他のアイデアはありますか?

私のデータベースは、ID/ユーザー名/パスワード/URL の列で構成されています。

そして私のコードは

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);
$count=mysql_num_rows($result);

if($count==1){

session_register("myusername");
session_register("mypassword"); 
header('Location: '.$row['url']);
}
else {
echo "Wrong Username or Password";
}

ob_end_flush();
?>
4

3 に答える 3

2

はい、できます。ログイン時に、データベース テーブルから URL を読み取り、header('Location: ...');を使用してリダイレクトするだけです。

于 2012-06-30T18:16:37.633 に答える
1

データベースのログイン フィールドに、URL を指定するフィールドを追加します。ユーザーがログインしたら、URL を取得し、次のコードを使用して取得した URL にリダイレクトします。

header('Location: http://www.example.com/');
于 2012-06-30T18:16:26.320 に答える
1

データベースにそのようなものを作成することはありません。

ただし、ログイン時に使用する URL フィールドを DB に格納できます。

PHP スクリプトで、DB から結果行を取得してユーザーが実際に存在し、パスワードが正しいことを確認したら (もちろん、より複雑なログインはより多くのことを行います)、次のようなものを使用できます。

header('Location: '.$row['url']);

ログイン状態に応じて、そのユーザーを別のページにリダイレクトします。ただし、ヒントとして、リダイレクトする直前に設定され、他のページでその値がチェックされているある種の $_SESSION 変数を使用してログに記録されていることを確認してください。

編集

session_register の使用は非推奨です: http://php.net/manual/en/function.session-register.php

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

$sql="SELECT * FROM $tbl_name WHERE username=".mysql_real_escape_string($myusername)." and password=".mysql_real_escape_string($mypassword);
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;

    while($row = mysql_fetch_assoc($result)){
        header('Location: '.$row['url']);
        exit(); // As a user above mentions this is actually quite important
    }

}else{
    echo "Wrong Username or Password";
}

その終了PHPタグを取り出してください。あなたは本当にそれを望んでいません。SQL エラーが発生する可能性があります。その場合、引用符が痛みの原因であり、フィールド値をカプセル化する必要'があることがわかりますが、mysql_real_escape_string がどのようにエスケープされるかをいつも忘れるので、今のところそのままにしておきます。

于 2012-06-30T18:18:18.737 に答える