所以在提交页面上发送了 $headers,但是带有 $_POST 函数的电子邮件不起作用。 这是 submit.php 上的会话信息
<?php
session_start();
if(!isset($_SESSION['set']))
{
$_SESSION['set'] = 1
$content = str_replace(array_keys($replace), array_values($replace), $content);
// settings
$to = $_POST['txt_email'];
$subject = 'Your request';
$txt = '<html><body>';
$headers = "From: [email protected]\r\n";
$headers .= "Bcc: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
// send mail
if(!empty($to)){
mail($to,$subject,$content,$headers);
}
}
else {
echo "Session is still active";
}
?>
在提交表格后的感谢页面中,会话部分会发生这种情况:
<?php
/* Template name: Thank you */
get_header();
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
if (isset($_SESSION['set'])) {
unset($_SESSION['set']);
}
?>
会话有问题吗?事情,这多年来一直很好,最近没有任何改变,因此突然 $to = $_POST['txt_email'];不再工作了。
有人有什么建议吗?
尝试了不同的会话解决方案,但没有任何效果。
您在评论中提到的错误告诉您在调用
session_start()
之前某些代码正在向浏览器发送输出。这是一个错误,因为在输出任何内容之前必须调用 session_start().
错误说输出来自
wp-includes/formatting.php
。当您的框架在脚本运行之前发出错误时,通常会发生这种情况。需要记住的一件事是,session_start()
只需要在请求生命周期中调用一次,最好尽可能靠近入口点。您很可能会在调用堆栈的更高位置进行此调用,以完全避免此问题。
然而,要调试这个特定实例,请查看返回的网页,看看页面顶部是否有 PHP 错误或警告。此错误可能是您的特定问题的原因。我相信这个错误 should 也出现在你的错误日志中,除非你有奇怪的配置。