使表单邮件兼容PHP 5.4


Making form mailer compatible with PHP 5.4

我的服务器上的php已经升级到5.4 &我的联系方式也没用了。请看下面的代码:

这是我的HTML

<form id="contact" action="contact.php"  method="post" name="contact">
    <fieldset id="personal">
        <label for="name">Name :</label>
        <input name="a_name" type="text" />
        <br />                  
        <label for="email">Email : </label>
        <input name="a_email" type="text" />
    </fieldset>
</form>
PHP

<?php
     import_request_variables("gP");
     $msgc .= "Name:'t$name'n";
     $msgc .= "Email:'t$email'n";
    mail('abc@gmail.com','Message from Website',$msgc,$mheaderc);
?>

请让我知道如何在PHP5.4中获得此工作

PHP函数import_request_variables()在PHP 5.4中被删除,您可以在文档中阅读:

警告此函数已在PHP 5.3.0中弃用已被删除PHP 5.4.0。

您应该使用$_POST

所以,取代

import_request_variables("gP");

$name = $_POST['name'];
$email = $_POST['email'];

我还建议检查用户输入是否有效(例如,提供的电子邮件地址实际上是一个有效的电子邮件地址),并且不包含恶意代码。

你的问题是使用import_request_variables(),在5.4中删除,但这是不安全的,所以你不应该使用它。使用$_POST[]$_GET[]代替。

所以不是:

import_request_variables("gP');

写:

$name = $_POST['name'];
$email = $_POST['email'];

变化

 $msgc .= "Name:'t$name'n";
 $msgc .= "Email:'t$email'n";

 $msgc = "Name:'t$name'n";
 $msgc .= "Email:'t$email'n";

还有,你在哪里定义了$mheaderc$name$email呢?