【问题标题】:PHP Contact Form returns errorsPHP 联系表单返回错误
【发布时间】:2020-04-16 18:43:26
【问题描述】:

我正在尝试在我的网站上实现 PHP 联系表单,但遇到了一些错误。您可以毫无问题地填写表格,并且电子邮件实际上会通过,但它不会显示感谢页面,而是显示一些 PHP 错误。

Deprecated: Function eregi() is deprecated in /home/travisbass/travismoore.co.uk/include/fgcontactform.php on line 548

Deprecated: Function split() is deprecated in /home/travisbass/travismoore.co.uk/include/class.phpmailer.php on line 470

Warning: Cannot modify header information - headers already sent by (output started at /home/travisbass/travismoore.co.uk/include/fgcontactform.php:548) in /home/travisbass/travismoore.co.uk/include/fgcontactform.php on line 143

I am using the code from this website

Here is the page of my website

Code for class.phpmailer.php

Code for fgcontactform.php

如果您需要更多信息,请告诉我。

感谢任何帮助, 谢谢

【问题讨论】:

    标签: php forms captcha contact


    【解决方案1】:

    这些消息是不言自明的,这里是您如何修复它们:

    eregi() -> 删除此函数,因为它已弃用,并替换为 preg_match()

    split() -> 去掉这个函数,用explode()替换它或者使用preg_split()

    标头已发送 -> 在您发送任何标头之前确保没有 HTML。更多详情请参考:How to fix "Headers already sent" error in PHP

    在这里您可以阅读 PHP 5.3.x 中更多不推荐使用的函数 -> http://php.net/manual/en/migration53.deprecated.php

    【讨论】:

    • 谢谢,我已经按照你说的做了,它返回了以下错误。警告:preg_match() [function.preg-match]: No end delimiter '^' found in /home/travisbass/travismoore.co.uk/include/fgcontactform.php on line 548 现在也说我的电子邮件地址已提交的表单无效。
    【解决方案2】:

    试试:

    return (1 === preg_match('/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i', $email));
    

    【讨论】:

    • 请解释您发布代码的意图/原因。简单地将原始的、无注释的代码转储到答案中很少有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2015-09-13
    • 2014-12-23
    相关资源
    最近更新 更多