我正在尝试创建一个登录表单,我创建了html表单并编写了这段PHP代码,但我一直收到关于session_start();
和头已经发送的错误
错误:
警告:session_start():无法发送会话cookie-已经发送了标头
<?php
session_start();
if($_POST['submit'])
{
include_once('my_connection.php');
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$sql = "SELECT id,username,password FROM users WHERE username = '$username' AND password = '$password'";
$query = mysqli_query($connect,$sql);
if($query) {
$row = mysqli_fetch_row($query);
$id = $row[0];
$dbusername = $row[1];
$dbpassword = $row[2];
if($username == $dbusername && $password == $dbpassword)
{
$_SESSION['username'] = $username;
$_SESSION['id'] =$id;
header('Location:home.php');
}else {
echo "Incorrect username or password.";
} } }?>
我把session_start()放在代码的顶部,但仍然无法使用
警告:session_start():无法发送会话cookie
首先,始终将您的start_session()
放在顶部。是的,在上面添加ob_start()
可能会修复它,在底部添加ob_flush()
可能会修复,但看起来并没有
如果您需要同一个文件或另一个文件,请确保您需要的文件中没有session_start()
函数。请确保在相同代码中的其他任何位置都没有session_start()
的副本。
此外,一个很大的原因实际上可能是因为header()
中缺少语法,并且程序没有完成/结束,只需要。
更改为:
header('Location: home.php');
exit;
进一步帮助您的来源:
来源1
来源2