0

当填写 php 表单而不是执行 Print="Sorry an error occurred" 时发生错误时,我正在尝试向自己发送电子邮件

$error = "ERROR HAPPENED".$order."\r\n";
$error_email = mail($to, $subject, $error, $headers2);
$mail = @mail($email, $subject, $confirmation, $headers2);

if ($mail) {
    header("Location: http://www.test.com" );
} else ($error_email);
4

2 回答 2

0

你没有在 else 之后使用括号。

if($mail)
{
    header("Location: http://www.test.com");
}
else
{
    mail($to, $subject, $error, $headers2);
    echo $error;
}

而且您从未使用 echo $error ,因此无法打印错误。

于 2013-05-02T21:17:17.147 回答
0

您的代码有点不清楚-如果您提出问题会有所帮助...

但是,我建议为此使用日志框架,例如log4php;这包括一个电子邮件选项,因此可以将错误邮寄给您,或者您可以将它们写入磁盘或操作系统日志文件。

请注意,电子邮件是完全不安全的——很容易拦截它们,而且它们没有加密。我希望您不会在 $order 变量中发送敏感数据。

最后,您的代码可能没有按照您的意愿行事。

$error = "ERROR HAPPENED".$order."\r\n";

构建错误字符串(假设 $order 可以很好地打印)。

$error_email = mail($to, $subject, $error, $headers2);

向 $to 发送电子邮件。$error_email 现在是一个布尔值。

$mail = @mail($email, $subject, $confirmation, $headers2);

向 $email 发送电子邮件。抑制错误。$mail 是一个布尔值。

if ($mail) {
    header("Location: http://www.test.com" );

如果邮件成功发送(到 $email),重定向用户。

} else ($error_email);

如果邮件未成功发送,则不确定您要做什么...

将您的应用程序逻辑与随机的“我是否设法发送电子邮件”成功联系起来并不是一个好主意。

于 2013-05-02T21:18:18.430 回答