我创建了一个登录和注册的网站。它正在工作,但是当我完成它时出现了一些问题,我无法登录该网站。
我可以注册一个新用户,并在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");
?>
答案 0 :(得分:4)
在php打开标记?>
之前摆脱php结束标记<?php
和空格,html,空白行。还要检查之前是否没有输出:
header("Location:");
与print
,var_dump
,echo
等相似。另请检查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
在循环之外。它只会用在最后一行。
如果您只有一个用户,那么它应该正常工作。