php - 重定向不起作用

时间:2014-04-27 22:12:13

标签: php mysql sql

我创建了一个登录和注册的网站。它正在工作,但是当我完成它时出现了一些问题,我无法登录该网站。

我可以注册一个新用户,并在mysql数据库中添加,但是当我尝试登录重定向时不起作用,它不会转到页面index.php。

任何人都可以查看此来源,看看你是否能找到任何错误。

<?php


session_start();

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

if ($username&&$password)
{

$connect = mysql_connect("localhost","root","") or DIE ("Could not connect");
mysql_select_db("case") or die ("could not find db");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrows = mysql_num_rows($query);

if($numrows !=0)

{

while ($row = mysql_fetch_assoc($query))    

{

$dbusername = $row['username'];
$dbpassword = $row['password'];

}

if ($username==$dbusername&&$password==$dbpassword)
{

header('location: index.php'); 


/*echo "Login successful. <a href='membersarea.php'>click her to enter members erea<a/>"; */
/*$_SESSION['username']=$dbusername; */

}
else
    echo "Incorrect password";
}
else echo ("That username dows not exist");
}
else
    die ("Please enter a username and password");



?>

3 个答案:

答案 0 :(得分:4)

在php打开标记?>之前摆脱php结束标记<?php和空格,html,空白行。还要检查之前是否没有输出:

header("Location:");

printvar_dumpecho等相似。另请检查if条件,也许您只是跳过它。

答案 1 :(得分:0)

警告!您有SQL注入错误。试试:

$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

现在,简化你的生活:

$query = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");

是不是?

if( mysql_num_rows($query) > 0 ) {
 header('location: index.php');
}

答案 2 :(得分:0)

乍一看,我注意到了这一点:

while ($row = mysql_fetch_assoc($query)) {
    $dbusername = $row['username'];
    $dbpassword = $row['password'];
}

if ($username == $dbusername && $password == $dbpassword) {

if在循环之外。它只会用在最后一行。

如果您只有一个用户,那么它应该正常工作。