登录并重定向到用户主页

时间:2012-04-05 09:50:24

标签: php javascript html

我目前无法解决的问题是当用户登录时。他们到达网站(index.php)并输入用户名和密码,通过Post表单提交回index.php - 如果有的话错误的细节,然后他们收到错误信息。但如果成功,那么我希望他们被带到他们的用户主页 - 但我不能这样做!我向他们展示了主页的链接,这不仅仅是一点点笨重。

似乎必须有一个明显的解决方案 - 在此之前从未见过的网站没有重定向!不确定答案是PHp,HTML还是Javascript。

编辑:

很抱歉,如果问题还没有解决 - 仍然在这里学习。试图将重定向放在if语句中,但仍然无法正常工作。我认为理想情况下重定向将是代码的顶部,但无法看到如何做到这一点并保留登录过程?代码如下:

if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);

$salt = "randomsalt";
$md5pass = md5($salt . $pass);

if ($user == "" || $pass == "")
{
    $error = "Not all fields were entered<br />";
}
else
{
    $query = "SELECT username,password FROM users
              WHERE username='$user' AND password='$md5pass'";


    if (mysql_num_rows(queryMysql($query)) == 0)
    {
        $error = "Username/Password invalid<br />";
    }
    else
    {
        $_SESSION['user'] = $user;
        $_SESSION['pass'] = $pass;

        header("Location: http://localhost:8888/profile.php?view=$user");

        exit;

    }
}

}

由于

编辑2:

感谢您的帮助 - 仍然无法解决,然后需要在页面顶部重新定位,但同样必须让我的登录脚本到位。最终解决了它:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=profile.php?view=$user\">";

代替上面的标题和退出行。

再次感谢

3 个答案:

答案 0 :(得分:4)

您可能重定向错误。首先,将它置于index.php的最顶端:

<?php
/* Redirect browser */
header("Location: http://newPath/newPage.php/");

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

这是一个带有exit语句的简单重定向,可以在之后停止所有处理,因此您只需测试以查看重定向是否正常工作。如果有效,则向重定向添加条件,如

<?php
if (/*login credentials are valid*/){
    /* Redirect browser */
    header("Location: http://newPath/newPage.php/");

    /* Make sure that code below does not get executed when we redirect. */
    exit;
}
?>

但是,当然要用函数调用替换/*login credentials are valid*/或者实际检查凭据并返回布尔值的任何内容。

答案 1 :(得分:-1)

这个解决方案适用于php,希望这对你有帮助。

$user_name = $_POST['username']; // posting value through form
$pass_word = $_POST['password']; // posting value through form

$sql = mysql_query("select 1 from admin_users where username='".$user_name."' and password='".$pass_word."'"); // checking username and password in database

if ($sql)    

{echo "Invalid User Name/Password";}

else

{header("Location: homepage.php"); exit;}

答案 2 :(得分:-1)

在变量中输入用户名和密码。

$username = $_POST['username'];
$pwd = $_POST['password'];

将此与您的表格进行比较,如下所示:

$sql = mysql_query("select * from tbl_users where username='".$username."' and password='".$pwd."'");
if(mysql_num_rows($sql)>0){
header("Location:homepage.php");
}else{
echo "Invalid username or password ";
}

这样可行。