PHP - 联系表格不起作用

时间:2014-08-08 16:54:00

标签: php html html5 contact-form

你能告诉我为什么这段代码不起作用吗?这是一个基本的PHP - HTML联系表单......

<?php 
    $errors = array();

    if (isset($_POST['name'], $_POST['email'])) {

        $name  = htmlentities(mysql_real_escape_string($_POST['name']));
        $email = htmlentities(mysql_real_escape_string($_POST['email']));
        $ip    = $_SERVER['REMOTE_ADDR'];

        if (empty($name) || empty($email)) {
          $errors[] = '<div id="error">All fields are required.</div>';
        } 

        if (strlen($name)>25 || strlen($email)>1024) {
          $errors[] = '<div id="error">One or more fields exceeded the character limit.</div><br />';
        } 

        if (empty($errors)) {
            function email($to, $subject, $body) {
                mail($to, $subject, $body, 'From: support@astrominds.in');
            }
            email("abc@xyz.com", "Contact Message"," Your Subject: $subject\n" . "Ip: $ip\n" . " Your Name: $name\n" . " Your Email: $email\n");
        } 
    }
?>

这是html表单......

<form method="post" action="index.php">
    <label class="label">Name</label>
    <input type="text" name="name" id="name" class="detail"  autocapitalize="words" autocorrect="off">

    <label class="label">Email</label>
    <input type="text" id="f1" class="detail" name="email" autocapitalize="words" autocorrect="off" />

    <input type="submit" value="Continue" class="csssubmit" >

1 个答案:

答案 0 :(得分:2)

您的代码包含多个错误。我刚刚删除了所有这些。

试试这个:

- &gt;输入字段没有名称字段。我把它设置成形式。您也可以在代码中将其作为字符串传递。

- &gt;您尚未设置$ subject字段,但您尝试从此处访问值,这将导致邮件发送fiel(在mail()内部出错)。

- &gt;不需要检查每个值的帖子值,只需设置表单提交类型名称。

- &GT;请尝试使用表单标签来处理输入表单字段

<?php 
    $errors = array();

    if (isset($_POST['submit'])) {

    $name       =   htmlentities(mysql_real_escape_string($_POST['name']));
    $email      =   htmlentities(mysql_real_escape_string($_POST['email']));
    $ip         =   $_SERVER['REMOTE_ADDR'];

    if (empty($name) || empty($email)) 
        {
          $errors[] = '<div id="error">All fields are required.</div>';
        } 

    if ( strlen($email)>1024)
        {
          $errors[] = '<div id="error">One or more fields exceeded the character limit.</div><br />';
        } 

    if (empty($errors)) {
    function email($to, $subject, $body) 
    {
      mail($to, $subject, $body, 'support@astrominds.in');
    }
    email("abc@xyz.com","Contact Message", "Your Subject: Type subject\n" , "Ip: $ip\n"."Your Name: $name\n"."Your Email: $email\n");
    echo "Form Works Success";
    } 
    }
    ?>
    <form method="post" action="formnot.php">
    <label class="label">Email</label>
                    <input type="text" id="f1" class="detail" name="email" autocapitalize="words" autocorrect="off" />
    <label class="label">Name</label>
                    <input type="text"  name="name"  />


        <input type="submit" value="Continue" class="csssubmit" name="submit" >
        </form>