0

我正在尝试将 html 表单提交到发送邮件的 php 文件。我在使用 ajax 之前尝试过,它表现得很奇怪,当我改为纯 html 和 php 时,它也表现得很奇怪。所以我有这个表格:

<form id="comandaform" action="send.php" method="post">
        <div class="ordercol">
            <label for="nume">Nume companie</label>
            <input type="text" id="nume" name="nume" />
            <label for="email">Email</label>
            <input type="text" id="email" name="email" />
            <label for="tel">Telefon (te sunam noi!)</label>
            <input type="text" id="tel" name="tel" />
        </div>
        <div class="ordercol">
            <label for="detalii">Detalii despre domeniul tau de activitate</label>
            <textarea name="detalii" id="detalii"></textarea>
            <input type="submit" id="submit" value="trimite"/>
        </div>
</form>

处理此问题的 PHP 脚本是:

<?php

$nume = $_POST["nume"];
$mail = $_POST["email"];
$tel = $_POST["tel"];
$det = $_POST["detalii"];
$mess = "";

if(isset($nume)&&isset($mail)&&isset($tel)&&isset($det))
{
$to      = 'mail@gmail.com';
$subject = 'Comanda Site100';
$message = 'Nume companie:  '.$nume.'\n'.
    'Telefon: '. $tel.'\n'.
    'E-mail: '. $mail.'\n'.

'Detalii:\n'.
$det;

if(mail($to, $subject, $message))
{
    echo "succes";
}else{
    echo "fail";
}
}else{
    echo "fail";
}
?>

当我尝试提交时,浏览器将找不到该send.php文件。难道我做错了什么?

4

2 回答 2

1

你真的得到一个找不到文件的错误吗?

在 send.php 的顶部添加一行 write

就像是:

echo '处理表格...';

这样您就可以看到页面正在正确加载。

然后尝试手动加载它

例如。

如果您的表格位于

http://www.mydomain.com/form.html

然后尝试通过键入加载 send.php

http://www.mydomain.com/send.php

确保它加载正常。

您还可以将所有 $_POST 更改为 $_REQUEST 然后您可以使用查询字符串对其进行测试

例如。

http://www.mydomain.com/send.php?nume=bob

这应该使您朝着找到问题的正确方向前进……如果不回发,请告诉我们上述情况发生了什么。

于 2012-04-26T13:26:49.233 回答
0

我立即注意到关于您的代码的两件事。

首先,如果您的浏览器没有找到send.php,这强烈表明您有路径错误。您要么在 HTML 操作路径中缺少子文件夹,要么文件位于与您预期不同的位置。

其次,即使您确实找到了表单,它也可能会出现错误。如果这些字段中的任何一个为空白,则unidentified index call在尝试将 $_POST 键分配给局部变量时会出现错误。接下来,当您检查变量是否已设置时,它们当然是,毕竟您只是设置了它们。但是,如果表单的任何字段留空,它们将具有未定义的值。

//Use an inline check when assigning the form field values
$nume = isset($_POST["nume"]) ? $_POST["nume"] : '';

然后,在检查完整性时...

//Check for empty values
if (!empty($nume) && !empty($mail) && !empty($tel) && !empty($det)){
// Etc...
于 2012-04-26T13:29:04.280 回答