任何人都可以向我展示或指向一个方向,显示根据用户名和密码为用户分配特定 URL 吗?
埃里克
为什么不将该 URL 放入与该用户相关联的数据库中。如果对用户和密码的查询为 TRUE,则重定向到与该用户关联的 URL。
这是一个示例,假设您在数据库中有 1 个名为“users”的用户,其中包含以下字段:
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 或任何您用来在查询中存储密码的加密。