ユーザー名とパスワードに基づいて特定の URL をユーザーに割り当てる方法を教えてもらえますか?
エリック
問題のユーザーに関連付けられたデータベースにその URL を入れてみませんか。ユーザーとパスワードのクエリが TRUE の場合、そのユーザーに関連付けられた URL にリダイレクトします。
以下に例を示します。データベースに「users」という名前のユーザーが 1 人いて、次のフィールドがあるとします。
login.php フォームは次のようになります
<?php
//Database connection
$sql = mysql_connect("localhost","dbUsername","dbPassword");
mysql_select_db("dbName", $sql);
if ($_POST['submitLogin'){
//Login query
$q = mysql_query("SELECT * FROM users WHERE user LIKE '".$_POST['user']."' AND pass LIKE '".$_POST['pass']."'");
$r = mysql_fetch_assoc($q);
if (mysql_num_rows($q) >= 1){
//If the user / password are found -> redirect
header('Location:'.$r['url']);
}else{
//else return the login error
echo "Login failed";
}
?>
<form action="" method="post">
User : <input type="text" name="user" /><br>
Password : <input type="password" name="pass"/><br>
<input type="submit" name="submitLogin" value="Login"/>
</form>
私はこれがトリックを行うべきだと思います:D
クエリを送信して結果を解析する方法は、データベースへのアクセスに mysqli、PDO、またはその他を使用しているかどうかによって異なります。mysqli を使用しているとしましょう。
データベース接続が $dbc で参照され、$user と $pass でユーザー名とパスワードを取得し、それらを検証し、クエリで使用するためにサニタイズしたと仮定すると、次のようなことができます。
$query = "SELECT url FROM table_name WHERE user = $user AND pass = $pass";
$result = @mysqli_query ($dbc, $query);
if ($row = mysqli_fetch_assoc($result)){
header ('Location: ' . $row['url']);
exit;
}
else{
// Handle invalid username/password
}
非常に基本的なものであり、SHA1 またはクエリにパスワードを格納するために使用している暗号化を使用します。