1

任何人都可以向我展示或指向一个方向,显示根据用户名和密码为用户分配特定 URL 吗?

埃里克

4

2 回答 2

3

为什么不将该 URL 放入与该用户相关联的数据库中。如果对用户和密码的查询为 TRUE,则重定向到与该用户关联的 URL。

这是一个示例,假设您在数据库中有 1 个名为“users”的用户,其中包含以下字段:

  • id(具有自动增量的 ID 并设置为主键)
  • 用户(用户名)
  • 通行证(密码)
  • url(重定向的 url)

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

于 2011-07-24T04:53:16.977 回答
-1

您发送查询和解析结果的方式取决于您是使用 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 或任何您用来在查询中存储密码的加密。

于 2011-07-24T05:34:04.090 回答