我正在尝试将一个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
文件。我做错了吗?
答案 0 :(得分:1)
你真的得到一个找不到文件的错误吗?
在send.php
的顶部添加一行代码类似的东西:
echo'处理表格......';
这样您就可以看到页面正确加载。
然后尝试手动加载
例如。
如果你的表格是
http://www.mydomain.com/form.html
然后尝试输入
来加载send.phphttp://www.mydomain.com/send.php
确保加载正常。
您也可以将所有$ _POST更改为$ _REQUEST然后您可以使用查询字符串对其进行测试
例如
http://www.mydomain.com/send.php?nume=bob
应该让你朝着找到问题的方向前进......如果没有回复,让我们知道上面发生了什么。
答案 1 :(得分:0)
我立即注意到有关你的代码的两件事。
首先,如果您的浏览器未找到send.php
,则强烈表示您有路径错误。您要么在HTML操作路径中缺少子文件夹,要么文件位于您预期的位置以外的位置。
其次,即使您确实找到了表单,也可能会出错。如果这些字段中的任何一个为空,则在尝试将$ _POST键分配给局部变量时会出现错误unidentified index call
。接下来,当您检查变量是否已设置时,当然它们毕竟只是设置它们。但是,如果表单的任何字段留空,则它们的值将为undefined。
//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...