-1

我想知道我是否可以在附加到登录名的数据库中使用 URL,当用户登录脚本时,该 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 字段,以便在他们登录时使用。

在您的 PHP 脚本中,一旦您通过从数据库中获取结果行验证用户实际存在并且他/她的密码正确(当然,更复杂的登录会做更多),您可以使用以下内容:

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 回答