php - 如何在 PHP 中执行多个操作并且只将标头发送回客户端一次?
问题描述
我的网站上有一个表单,它使用POST
. 除其他外,PHP 然后使用带有 SMTP 的 PHPMailer 发送邮件。使用 确定邮件是否成功$success = $mail->send();
。然后基于该结果,我想将某些详细信息保存在 cookie 中。
当我来设置 cookie 时setcookie($cName, $cVal, time()+(60*60*24*365), "/", "", 0);
,我收到错误消息告诉我Cannot modify header information - headers already sent by...
PHPMailer 按预期工作 - 发送了一封电子邮件。当我注释掉 PHPMailer 行时, setcookie() 按预期工作 - 设置了一个 cookie。我猜 PHPMailer 和 setcookie() 都会自动将标头发送回客户端。
PHPMailer 中是否有一个选项可以在不将标头写回客户端的情况下发送邮件?我认为可能$mail->SMTPDebug = 2;
会导致发送标头,但我将其更改为 0 仍然是同样的问题。
我可以让 setcookie() 只更新标头信息而不实际发送标头吗?
基本上,我希望 PHP 在将任何标头发送回客户端之前执行其所有操作。我可以控制何时发回标头吗?...当我们在处理它时,发回的实际信息?
解决方案
推荐阅读
- r - 将 maxgap 更改为结转值的次数
- maven - Maven 在部署(Jenkins)之前是否会取消部署?
- vbscript - 尝试在注册表的 HKLM 路径中读取/写入键时,注册表键错误消息中的根无效
- css - 尽管正确配置了 css 文件,但出现静态 404 错误
- php - 我想使用 codeigniter 将我的网站语言更改为阿拉伯语
- c++ - 将 cv::Mat 转换为 std::vector
并发症 - php - 为什么 php 中不允许使用 \empty 和 \isset
- javascript - Maphilight() 在放大/缩小图像地图后停止正常工作
- php - 将数据从 CSV 插入数据库 codeigniter
- javascript - 用javascript打印页面时显示文本框