【问题标题】:PHPMailer 500 Error on Session Variables会话变量上的 PHPMailer 500 错误
【发布时间】:2014-12-25 05:08:43
【问题描述】:

我在我正在处理的项目中使用 PHPMailer,在我的本地主机上它就像一个魅力!但我正在使用朋友的服务器来测试不同设备的站点。当我在等待更多内容插入时,我正在对网站的功能做一些工作。

我编写了一个脚本来配合 PHPMailer 完成我需要它做的所有事情,但是在页面顶部,在我的 doctype 之前,我设置了几个会话变量。经过数小时的修补,我开始意识到这是导致我的 500 错误的原因。我已经尝试将它们移到头部部分,但是(某种)在服务器上起作用的唯一一件事就是将它们完全注释掉。但是,当我尝试提交邮件时,它会转到 PHP 文件,并且不会像预期的那样重定向到主页。

关于如何解决这个问题的任何想法?如果有帮助,这是我的代码中搞砸的部分:

$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : []; $fields = isset($_SESSION['fields']) ? $_SESSION['fields'] : [];

更新:这是 phpinfo 的图片...

【问题讨论】:

    标签: php session-variables


    【解决方案1】:

    在使用 SESSION_[] 超级全局变量之前,您是否调用过session_start()

    session_start() 根据通过 GET 或 POST 请求或通过 cookie 传递的会话标识符创建会话或恢复当前会话。

    【讨论】:

    • 是的。我有 session_start();在最顶部和最底部的两个变量都未设置(在
    【解决方案2】:

    我遇到了与此类似的问题,在将信息从表单发布到单独文件中的 PHPMailer 时,我花了几个小时才解决了 500 个错误。我的脚本在我的 localhost 上运行良好,但在网络服务器上运行良好。

    事实证明这是一个路径问题。本地主机正在检查 phpmailer 文件的目录,但路径在服务器上不起作用。

    我的解决方案是停止使用 composer 并手动设置路径:

    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    include 'phpmailer/src/PHPMailer.php';
    include 'phpmailer/src/SMTP.php';
    include 'phpmailer/src/Exception.php';
    

    phpmailer 目录与包含 phpmailer 设置的文件处于同一级别。让我失去了一些睡眠试图解决:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2017-06-01
      相关资源
      最近更新 更多