这可能是
重复的,但是在运行以下代码时,我在登录时遇到了这个问题
<?php
include('includes/functions.php');
if(isset($_POST['login'])) {
if(isset($_POST['username'])) {
if(isset($_POST['password'])) {
$username = $_POST['username'];
$query = mysql_query("SELECT * FROM users WHERE Username = '$username'") or die(mysql_error());
$user = mysql_fetch_array($query);
if(md5($_POST['password']) == $user['password']); {
echo 'Login successful';
$_SESSION['user'] = $user['FullName'];
header("Location:index.php");
}
} else {
echo "Please check your password!";
include('login.php');
}
} else {
echo "Please check your Username!";
include('login.php');
}
} else {
echo "Please check you filled out the login form!";
include('login.php');
}
?>
因此,当输入用户名和密码时,我在浏览器中得到此输出
登录成功
警告:无法修改标头信息 - 标头已由/home/site/public_html/admin/dologin.php:12 在第 14 行的/home/site/public_html/admin/dologin.php 中发送
所有帮助将不胜感激
if(md5($_POST['password']) == $user['password']); {
^
echo 'Login successful';
$_SESSION['user'] = $user['FullName'];
header("Location:index.php");
}
有2个问题。if语句中的;
不应该存在,然后回声也应该像其他答案已经提到的那样。删除echo
应该可以修复该错误,但是由于;
而导致标头不起作用,您的if被搞砸了。
旁注:如何防止 PHP 中的 SQL 注入?
header(<..>)
之前应该没有输出,所以你应该删除它(删除带有 echo
的行)。
USe :-
<script>location.href - "index.php"; </script>
而不是
header("Location:index.php");
在文件的开头添加ob_start();并删除 PHP 标签前后的空格。