-3

我目前无法解决的问题是用户登录时。他们到达站点(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\">";

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

再次感谢

富有的

4

3 回答 3

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*/为对函数的调用或实际检查凭据并返回布尔值的任何内容。

于 2012-04-05T11:34:21.423 回答
-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;}
于 2012-04-05T11:38:01.420 回答
-2

在变量中获取用户名和密码。

$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 ";
}

这将起作用。

于 2012-04-05T11:46:10.783 回答