gpt4 book ai didi

php - 如何在PHP程序中调试 "Warning: session_regenerate_id(): Cannot regenerate session id"?

转载 作者:行者123 更新时间:2023-11-29 11:08:13 25 4
gpt4 key购买 nike

我正在制作一个消息系统,其中消息ID是session_id并且它位于session_regenerate id上。

它工作正常,但是当我更改模板时,它不断出现如下错误:

" Warning: session_regenerate_id(): Cannot regenerate session id - headers already sent in C:\xampp\htdocs\READS Website MAIN\Admin\admin-page\admin\message.php on line 24"

下面是我的代码:

<?php
include('header.php');
include('config.php');


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

$to = $_POST['to'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$id = session_id();
$sender = $_SESSION['id'];

date_default_timezone_set("ASIA/MANILA");
$date = date('m-d-Y h:i a');




$sql = "INSERT INTO `messages`(`session_id`, `sender`, `recipient`,
`subject`, `content`, `date`, `stat`)
VALUES ('$id','$sender','$to','$subject','$message','$date','unread')";
mysql_query($sql) or die(mysql_error());
session_regenerate_id();
if($sql){

echo "<script>alert('Message Sent')</script>";

}else {
echo "<script>alert('error')</script>";
}

}

?>
<div>
<ul class="breadcrumb">
<li>
<a href="#">Home</a>
</li>
<li>
<a href="#">User</a>
</li>
</ul>
</div>

<div class="box-content">


<form action='' method='POST'>

To: <select name='to' class="form-control" id="inputEmail3">

<?php $sql = "SELECT * FROM users ";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result)){
echo "<option value='".$row['id']."'>".$row['Fname']."
".$row['Lname']." (".$row['user_type'].")</option>";

}

?>
</select>


<div class='col-md-2 col-sm-2 col-xs-5' style='margin-left:150px;
margin-top:-10px; width:500px;'>

<br>
Subject: <input type='textfield' name='subject' class="form-control"
id="inputEmail3"><br><br>
Message: <textarea name='message' class="form-control" id="inputEmail3"
cols='30' rows='8'></textarea>
<div style = 'margin-left:420px; margin-top: 10px;'>
<input type='submit' name='submit' value='Send'></div>
</td>




</body>
</html>
<?php include('footer.php');
?>

最佳答案

请确保在发送任何内容之前设置 session 或 cookie。 session 和 cookie 在响应的 header 中设置,并且由于在发送内容(正文)后无法更改 header ,因此您将面临此警告。

在更彻底地阅读您的代码之后,我必须提醒您,该代码不应放入现实世界中,因为您无法逃避任何查询。另外,您确实应该切换到 MySQLi 或 PDO,因为自一些 PHP 版本以来 mysql_* 函数已被弃用。

关于php - 如何在PHP程序中调试 "Warning: session_regenerate_id(): Cannot regenerate session id"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41039441/

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