我正在尝试创建一个登录表单,我创建了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()放在代码的顶部,但仍然没有工作
答案 0 :(得分:1)
警告:session_start():无法发送会话cookie
首先,始终将start_session()
置于顶部。是的,在其上方添加ob_start()
可能会修复它并在底部添加ob_flush()
但是看起来它没有这样:
如果您需要相同的文件或其他文件,请确保您要求的文件中没有session_start()
功能。确保您在相同代码中的任何其他位置都没有重复session_start()
。
另外,一个很大的原因实际上可能是因为您在header()
中缺少语法并且程序没有完成/结束,只需要。
将其更改为:
header('Location: home.php');
exit;
来源进一步帮助您: