和我在一起,我对PHP真的很糟糕,不是我的领域。对不起,我可能会说任何愚蠢的事情
编辑:我尝试按照你们所说的方式回显变量,结果我无法从中获得任何价值。
编辑2:那些"必需的类"适用于我的jquery验证脚本。你们认为我也应该发布它吗?
好吧,我面临一个php联系表单问题。我对php也不太了解,所以这让事情变得更加困难。
好吧,我已经尝试了邮件测试.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
我在这里做错了什么?提前谢谢。
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']
没有正确发送。
问题尚不清楚。"它不起作用"是一个非常广泛的解释:)因此,为了获得适当的帮助,请描述以下内容:
- 你采取什么行动?
- 你会得到什么结果?
- 预期结果如何?
另外:尝试将过程切成碎片:
- 邮件工作正常吗?
- 只是重定向吗?
- 两者兼而有之吗?
- 等。。。
不是解决方案,而是调试提示:
尝试:
print_r($_POST);
看看结果是什么。它可能会告诉你更多。
测试时,您还应该将以下内容添加到 php 文件的顶部以查看错误:
error_reporting(E_ALL);
ini_set('display_errors','On');
并在所有输入中添加:
value=""
默认情况下发送一个空字符串。要查看即将发布的内容,只需添加到您的send_form_email.php
var_dump($_POST)
因为你不需要写if(isset($_POST['nome'])&& isset($_POST['mail'])等。 有时提交输入名称由 PHP 更改,因此您可以使用 var_dump 找到正确的名称。