0

与我在一起,我对 PHP 真的很不好,而不是我的领域。对不起,我可能会说任何愚蠢的话

编辑:我尝试像你们所说的那样回应 vars,结果我无法从中获得任何价值。

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

我在这里做错了什么?提前致谢。

4

3 回答 3

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']没有正确发送。

于 2012-08-09T13:43:16.413 回答
1

问题尚不清楚。“它不起作用”是一个非常广泛的解释 :) 因此,为了获得适当的帮助,请描述以下内容:

  • 你采取什么行动?
  • 你得到什么结果?
  • 预期的结果是什么?

另外:尝试将过程切成碎片:

  • 邮件正常吗?
  • 它只是重定向吗?
  • 两者兼而有之?
  • ETC...

不是解决方案,而是调试提示:
尝试:

 print_r($_POST);

看看结果如何。它可能会告诉你更多。

于 2012-08-09T13:45:47.077 回答
1

您还应该在测试时将以下内容添加到 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。

于 2012-08-09T14:46:14.047 回答