与我在一起,我真的很糟糕PHP,而不是我的领域。对不起我可能会说的任何愚蠢的东西
编辑:我试图像你们所说的那样回应变量,然后出来我无法从中得到任何价值。EDIT2:那些“需要的类”适用于我的jquery验证脚本。你们认为我也应该发布它?
好吧,我面临一个php联系表单问题。我也不太了解PHP,所以这会让事情变得更难。
好吧,我已经尝试过mailtest.php来检查它是否是我的主机,但它运行正常。所以这是代码:
<form class="validate" method="post" action="send_form_email.php">
<span class="fill">Todos os campos são obrigatórios.</span>
<span><label>Nome:</label><input name="nome" type="text" class="required" /></span><br />
<span><label>E-mail:</label><input name="mail" type="text" class="required email" /></span><br />
<span><label>Empresa:</label><input name="empresa" type="text" class="required" /></span><br />
<span><label>Telefone:</label><input style="width: 150px;" name="phone" type="text" class="required" /></span><br />
<span><label>Mensagem:</label><textarea name="mensagem" cols="38" rows="8" class="required"></textarea></span><br />
<span><input class="btn" type="submit" name="submit" value="Enviar" /></span>
</form>
这是我的PHP编码:
<?php
if(isset($_POST['submit'])) {
$to = "fernando_fleury@hotmail.com";
$subject = "Contato Website - Nicotec";
$name = $_POST['nome'];
$email = $_POST['mail'];
$empresa = $_POST['empresa'];
$phone = $_POST['phone'];
$message = $_POST['mensagem'];
$body = "De: $name_field\n E-Mail: $email\n Empresa: $empresa\n Telefone: $phone\n Mensagem:\n $message";
mail($to, $subject, $body);
}
header('Location: contato.html');
?>
也可以现场查看:http://www.fernandofleury.com.br/preview/nicotec/contato.html
我在这里做错了什么?提前谢谢。
答案 0 :(得分:1)
而不是if(isset($_POST['submit']))
检查以确保所有必填字段都设置为if(isset($_POST['nome']) && isset($_POST['mail']) && isset($_POST['phone']) ....
如果失败,请回显$to
,$subject
和$body
。在测试时注释掉header
以查看结果。
另外,试试这个:
if(isset($_POST['submit']))
{
$to = "fernando_fleury@hotmail.com";
$subject = "Contato Website - Nicotec";
$name = $_POST['nome'];
$email = $_POST['mail'];
$empresa = $_POST['empresa'];
$phone = $_POST['phone'];
$message = $_POST['mensagem'];
$body = "De: $name_field\n E-Mail: $email\n Empresa: $empresa\n Telefone: $phone\n Mensagem:\n $message";
mail($to, $subject, $body);
header('Location: contato.html');
}
else
{
echo "Ruh ohes! Something wasn't set!";
}
编辑:向屏幕使用回显一个var(在$to
示例中这段代码:
echo $to;
编辑2:
我看了一下你的页面,你使用javascript来确保填写所有字段。因此,问题几乎肯定在于这一行:
if(isset($_POST['submit']))
可以将其更改为:
if(!empty($_POST['nome']) && !empty($_POST['mail']) && !empty($_POST['empresa']) && !empty($_POST['phone']) && !empty($_POST['mensagem']))
请帮我吗?也许$_POST['Submit']
未正确发送。
答案 1 :(得分:1)
问题尚不清楚。 “它不起作用”是一个非常广泛的解释:)所以为了获得适当的帮助,请描述以下内容:
另外:尝试将过程分成几块:
不是解决方案,而是调试提示:
尝试:
print_r($_POST);
看看结果如何。它可能会告诉你更多。
答案 2 :(得分:1)
在进行测试以查看错误时,还应将以下内容添加到php文件的顶部:
error_reporting(E_ALL);
ini_set('display_errors','On');
并在所有输入中添加内容:
value=""
默认发送空字符串。 要查看即将发布的内容,请添加到您的send_form_email.php
var_dump($_POST)
因为你不需要写if(isset($ _ POST ['nome'])&amp;&amp; isset($ _ POST ['mail'])等。有时提交输入名称会被PHP更改,所以你可以使用var_dump找到正确的名字。