【问题标题】:Send Contact Form not Working发送联系表不起作用
【发布时间】:2013-03-03 05:36:50
【问题描述】:

我已按照发送联系表单的简单教程进行操作,但它似乎无法正常工作。请有人帮忙。

如下表格:

<table width="400" border="0" cellspacing="1" cellpadding="0" align="center">
    <tbody>
        <tr>
            <td>
                <form action="send.php" method="post" name="form1">
                    <table width="100%" border="0" cellspacing="1" cellpadding="3">
                        <tbody>
                            <tr>
                                <td width="16%">Name</td>
                                <td width="2%">:</td>
                                <td width="82%"><input id="Name" type="text" name="Name" size="50" /></td>
                            </tr>
                            <tr>
                                <td>Email</td>
                                <td>:</td>
                                <td><input id="customer_mail" type="text" name="customer_mail" size="50" /></td>
                            </tr>
                            <tr>
                                <td>Subject</td>
                                <td>:</td>
                                <td><input id="Subject" type="text" name="Subject" size="50" /></td>
                            </tr>
                            <tr>
                                <td>Detail</td>
                                <td>:</td>
                                <td><textarea id="detail" cols="50" name="detail" rows="4"></textarea></td>
                            </tr>
                            <tr>
                                <td></td>
                                <td></td>
                                <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
                            </tr>
                        </tbody>
                    </table>
                </form>
            </td>
        </tr>
    </tbody>
</table>

这是我的 PHP:

<?php
    $to ='kirsty.harris1985@gmail.com';

    $header="from: $name <$mail_from>";

    $mail_from="$customer_mail";
    $Subject="$Subject";
    $detail="$detail";

    $send_contact=mail($to,$header,$Subject,$detail);

    if($send_contact){
        echo "We've recived your contact information";
    } else {
        echo "ERROR";
    }
?>

这是错误:

服务器错误 该网站在检索 http://nqmedia.co.uk/send_contact.php 时遇到错误。它可能因维护而停机或配置不正确。 以下是一些建议: 稍后重新载入此网页。 HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到了意外情况。

而且网站是 www.nqmedia.co.uk 供人们查看。

【问题讨论】:

  • 什么不起作用?没有电子邮件?错误信息?让您的“错误”文本显示给您?
  • 您的 php 代码中缺少 $_POST。另外,请务必检查您在 gmail 中的垃圾邮件文件夹。
  • 我收到配置错误的错误。联系页面上的网站是 nqmedia.co.uk
  • @AustinAllover 对不起,我把这个放在哪里?它在教程中没有:S
  • 你postitive post.php在同一个文件夹里吗?

标签: php


【解决方案1】:

鉴于您的输入已相应命名 试试这个:

$name = $_POST['Name'];
$mail_from = $_POST['customer_mail'];
$header = "from: $name <$mail_from>";
$Subject = $_POST['Subject'];
$detail = $_POST['detail'];

【讨论】:

    【解决方案2】:

    您永远不会真正获取所有帖子值。

    将此作为 send.php 的代码:

    <?php 
    $name = $_POST['Name'];
    $mail_from = $_POST['customer_mail'];
    $subject = $_POST['Name'];
    $body = $_POST['detail'];
    
    $to ='kirsty.harris1985@gmail.com';
    
    $header="from: $name <$mail_from>";
    
    $send_contact=mail($to,$Subject,$body,$header);
    
    if($send_contact){
    echo "We've received your contact information";
    }
    else {
    echo "ERROR";
    }
    ?>
    

    另外,你在 echo 上拼错了“received”,所以我修正了拼写错误。

    【讨论】:

    • 您好,我用这个更新了我的代码,但它仍然无法正常工作:S
    • 我不明白你的意思:s
    • 如果您转到 ftp 的根文件夹,您应该会看到一个名为“.htaccess”的文件。发布内容。
    • 0_o... 那有什么作用呢?对不起,我对此没有信心,
    • 我假设您的 .htaccess 的重写规则与您的帖子冲突。
    【解决方案3】:

    将您的 PHP 更改为以下内容:

    <?php
        $to ='kirsty.harris1985@gmail.com';
        $name = $_POST['name'];
        $customer_mail = $_POST['customer_mail'];
        $Subject = $_POST['Subject'];
        $detail = $_POST['detail'];
    
        $header="From: $name <$customer_mail>";
    
        $send_contact=mail($to,$Subject,$detail,$header);
    
        if($send_contact){
            echo "We've recived your contact information";
        } else {
            echo "ERROR";
        }
    
    ?>
    
    1. 没有正确定义变量,您需要使用$_POST 从表单中检索值。

    2. $mail_from(现为$customer_mail)在定义之前就被使用了。

    3. mail() 函数中使用的参数顺序错误。看http://php.net/manual/en/function.mail.php

    4. 检查表单上的action 属性。它说“send.php”,但错误显示“send_contact.php”

    【讨论】:

    • 嗨@nine7ySix,然后我交换这些?很抱歉,教程不是很好:S
    • 哦,你错过了$_POSTs。看看 ElefantPhace 的回答
    • @KirstyHarris,可以将行 echo print_r($_POST) 添加到您的 PHP 代码并更新您的问题以显示显示的内容吗?编辑:$name 未定义... =.= 尝试在某处添加$name = $_POST['name']
    • 嗨,我用帖子操作将代码更改为上面的人,但它仍然无法正常工作:S
    • @KirstyHarris,我已经更新了我的答案,你能试试看它现在是否有效吗?我很肯定它现在应该可以工作了
    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 2013-12-17
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多