gpt4 book ai didi

php - 如何解决: session_start(): Cannot send session cache limiter - headers already sent

转载 作者:行者123 更新时间:2023-11-29 07:48:32 24 4
gpt4 key购买 nike

如何解决此错误(session_start():无法发送 session 缓存限制器 - header 已发送(输出从/opt/lampp/htdocs/hrms/header.php:140 开始))?这是登录页面。

日志:

PHP Warning:  session_start(): Cannot send session cache limiter - headers already sent (output started at /opt/lampp/htdocs/hrms/header.php:140) in /opt/lampp/htdocs/hrms/index.php on line 74

PHP Warning: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/hrms/header.php:140) in /opt/lampp/htdocs/hrms/index.php on line 82

第 74 行:

session_start();

第 82 行:

header('location:home.php');

页面:

<?php include('dbcon.php');include('header.php');?>
<body>
<?php include('nav-top1.php'); ?>
<div class="wrapper">

</br>
</br>
</br>
</br>
</br>
</br>
</br>
<div id="element" class="hero-body-index">
<div class="alert alert-info">
<p><font color=""><h2>Login</h2></font></p>
Enter the details to login your account
</div>

<hr>
<form method="POST" >
<table>
<tr><td><font color="">UserName:</font>&nbsp;&nbsp;</td><td><input type="text" name="UserName" class="UserName_hover"></td></tr>
<tr><td>...<td></tr>
<tr><td><font color="">Password:</font>&nbsp;&nbsp;</td><td><input type="Password" name="Password" class="Password_hover"></td></tr>
<tr><td>...<td></tr>
<tr><td></td><td> <button class="btn btn-primary btn-large" name="Login"><i class="icon-ok-sign icon-large"></i>&nbsp;Login</button></td></tr>
<tr><td>
</td><tr>
</form>
</table>

</br>
<div class="error">
<?php

if (isset($_POST['Login'])){

$UserName=$_POST['UserName'];
$Password=$_POST['Password'];

$login_query=mysql_query("select * from user where UserName='$UserName' and Password='$Password' and User_Type='Admin'");
$count=mysql_num_rows($login_query);

$login_query1=mysql_query("select * from user where UserName='$UserName' and Password='$Password' and User_Type='User'");
$count1=mysql_num_rows($login_query1);



$row1=mysql_fetch_array($login_query1);
$f=$row1['FirstName'];
$l=$row1['LastName'];

$row=mysql_fetch_array($login_query);
$f=$row['FirstName'];
$l=$row['LastName'];





if ($count1 == 1){
session_start();
$_SESSION['id']=$row1['User_id'];
$_SESSION['User_Type']=$row1['User_Type'];
$type=$row1['User_Type'];

mysql_query("INSERT INTO history (data,action,date,user)VALUES('$f $l', 'Login', NOW(),'$type')")or die(mysql_error());


header('location:home_user.php');
}

if ($count > 0){
session_start();
$_SESSION['id']=$row['User_id'];
$_SESSION['User_Type']=$row['User_Type'];
$type=$row['User_Type'];

mysql_query("INSERT INTO history (data,action,date,user)VALUES('$f $l', 'Login', NOW(),'$type')")or die(mysql_error());


header('location:home.php');
}else{
?>
<div class="alert alert-error">
<button class="close" data-dismiss="alert">Ч</button>
Please check your UserName and Password
</div>
<?php }

}

?>
</div>
</div>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
<?php include('footer.php');?>


</div>
</body>
</html>

最佳答案

在您调用 session_start() 时,您的脚本已经发送了 HTTP header ,因此您再修改它们就为时已晚。在向浏览器进行任何输出之前,应调用 session_start()header() 也是如此。要解决这个问题,只需将函数调用放在输出任何 HTML 之前,即放在文件的顶部。

进一步阅读:https://stackoverflow.com/a/8028987/4261029

关于php - 如何解决: session_start(): Cannot send session cache limiter - headers already sent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27070727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com