使表单邮件与PHP 5.4兼容

时间:2014-05-15 11:23:01

标签: php

我服务器上的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中使用它 非常感谢。

3 个答案:

答案 0 :(得分:1)

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

  

警告此功能自PHP 5.3.0起已 DEPRECATED REMOVED   PHP 5.4.0。

相反,您应该使用$_POST

所以,替换

import_request_variables("gP");

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

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

答案 1 :(得分:1)

您的问题是使用在5.4中删除的import_request_variables(),但无论如何都不安全,所以您不应该使用它。请改用$_POST[]$_GET[]

所以而不是:

import_request_variables("gP');

写:

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

答案 2 :(得分:0)

更改

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

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

此外,您在哪里定义$mheaderc$name$email