【问题标题】:PHP Email ErrorPHP 电子邮件错误
【发布时间】:2012-02-05 14:09:56
【问题描述】:

即使脚本运行成功,我也会收到错误消息。它正在做我想要它做的事情,但我遇到了一个严重的错误。

我的代码如下:

<

?php

$title = $_REQUEST['title'];
$name = $_REQUEST['name'];
$surname = $_REQUEST['surname'];
$email = $_REQUEST['email'];
$username = $_REQUEST['username'];
$password = md5($_REQUEST['password']);

$con = mysql_connect("*******","**","***");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db('****', $con);

$sql="INSERT INTO Users (title, firstname, surname, email, username, password, role) VALUES ('$title','$name', '$surname','$email','$username','$password', 'normaluser')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

$username = $_REQUEST["username"];
$password = $_REQUEST["password"];
$confirmpass = 'password:';


ini_set ("sendmail_from","Conference@greenwich.com");

$messege = "Hi $name $surname, \n\r\n\r Thanks For Registering.\n\r\n\r Your Username: $username \n\r\n\r Your Password: $password \n\r\n\rRemember To Start Booking Your Desired Meetings!!!";
$to= "$email";
$from = 'welcome@meetings.com';
$subject="Registration Success";
mail($to,$message,$subject,$from);

echo "Thanks $surname, You Have Successfully Registered! </br>  </br>  Please Check Your Email!";



mysql_close($con)
?>

错误是:Fatal error: Maximum execution time of 30 seconds exceeded in E:\webareas\hj942\CW\meetings\conference\Register\register_success.php on line 67

第 67 行是后面的行:

echo "感谢$surname,您已成功注册!请检查您的邮箱!";

这是一个空行!上面什么都没有。

有什么帮助吗?

【问题讨论】:

  • $messege$message 的不同类型只是这里的错误还是生产代码中的错误?
  • -1。不好的问题。您实际上并没有阅读错误消息,只是告诉我们它“令人讨厌”。
  • @fkerber,很好发现。谢谢
  • @user1114080 但这不是问题的原因,不是吗?

标签: php mysql email


【解决方案1】:

我怀疑它实际上会在mail(...) 行上超时。最简单的测试方法 - 在它之前弹出一个新行,在它之后弹出一个新行......

$subject="Registration Success";
//Hello
mail($to,$message,$subject,$from);
//World    

echo "Than...";

然后看看它说它在哪一行超时。如果它增加了一个,那就是mail() 行,如果它增加了两个,那我就错了!

我想在您的服务器的 php 配置中没有正确设置 mail() 函数。我们也可以很容易地测试它——创建一个新的 php 文件:

<?php
   mail('youremail@yourdomain.com','Test email','Test email');
?>

运行它。如果失败了,那么我们肯定知道您遇到了mail() 问题。如果成功了,我们试试B计划。

【讨论】:

    【解决方案2】:

    将此添加到代码的开头:

    ini_set('max_execution_time', 600);
    

    【讨论】:

    • 这真的是个好主意吗?我看不出这段代码应该持续超过 30 秒的明显原因。因此,我认为,一定有错误,仅仅增加执行时间并不能解决最初的问题。
    • 我怀疑它失败是有原因的 - 脚本运行时间不应超过一秒钟,所以这可能不是真正的修复。
    • 这真的只是取决于服务器。
    • 如果 30 秒对于本地网络邮件服务器(可以将邮件发送到其真实目的地)来说还不够,那么“解决方案”不应该是将脚本运行时间增加到 10 分钟。
    • 可能邮件服务器没有设置好?脚本中没有任何内容会捕获 mail() 错误。
    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 2015-06-02
    • 2016-08-31
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多