如何在PHP中执行几个操作,并且仅将标头发送回客户端一次?

时间:2018-09-18 00:42:09

标签: php http-headers smtp phpmailer setcookie

我的网站上有一个表单,该表单使用POST提交给PHP。除其他外,PHP然后使用带有SMTP的PHPMailer发送邮件。使用$success = $mail->send();确定邮件是否成功。然后根据该结果,我想将某些详细信息保存在Cookie中。

当我使用setcookie($cName, $cVal, time()+(60*60*24*365), "/", "", 0);设置cookie时,出现错误告诉我Cannot modify header information - headers already sent by...

PHPMailer可以正常工作-已发送电子邮件。当我注释掉PHPMailer行时,setcookie()可以正常工作-设置了cookie。我猜想PHPMailer和setcookie()都会自动将标头发送回客户端。

PHPMailer中是否有一个选项可以发送邮件而无需将标头写回客户端?我以为$mail->SMTPDebug = 2;可能会导致发送标头,但我将其更改为0,仍然是同样的问题。

我可以让setcookie()仅更新标头信息而不实际发送标头吗?

基本上,我希望PHP在将任何标头发送回客户端之前执行其所有操作。我可以控制何时发送标头吗? ...而我们正在查看时,实际发送回的信息是什么?

0 个答案:

没有答案