表格不起作用,但我很确定代码是否正确?

时间:2013-02-06 11:08:20

标签: php forms

我被要求检查为什么这个表格不起作用。即使我对PHP一无所知,我确实有一个工作表单,我在这个特定的网站上测试过并且没有用。

这是当前的代码。它看起来很糟糕,但有人写了它,而不是我

<script language="javascript">

function validaContato(){
    v_erro='';
    if ( document.formulario_contato.nome.value == '' ) { v_erro = v_erro+'- Nome\n'; }
    if ( document.formulario_contato.email.value == '' ) { v_erro = v_erro+'- E-mail\n'; }
    if ( document.formulario_contato.mensagem.value == '' ) { v_erro = v_erro+'- Mensagem\n'; }
    if ( v_erro != '' ) {
    alert('Por favor preencha os campos obrigatórios:\n\n'+v_erro);

return(false);
    } else {
return(true);
    }
}
</script>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-XXXXXXX-1");
pageTracker._trackPageview();
} catch(err) {}
</script>

<?
    if ($acao == "Enviar") {
    $erro_campos = "";

    if(trim($nome) == ""){
    $erros_campos .= "\n» Nome";
    }

    if(trim($email) == ""){
    $erros_campos .= "\n» E-mail";
    }

    if(trim($mensagem) == ""){
    $erros_campos .= "\n» Mensagem";
    }

    if($erros_campos != ""){
    $msg = trim("Por favor preencha corretamente os seguintes campos:".$erros_campos);

    }else{

    $tmp_mensagem = "Mensagem enviada pelo formulário de contato<br>


<br>

    Nome: ".$nome."<br>
    E-mail: ".$email."<br>

<br>

    ".$mensagem."";
    $assunto = "SetecNet - Contato pelo site";

    $headers  = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
    $headers .= "From: SetecNet <xxxx@xxxxx.xx>\n";
    $headers .= "X-Mailer: EnvioCerto\n";
    if ( @!mail('xxxx@xxxxx.xx', $assunto, $tmp_mensagem, $headers) ) {
    $msg="Sua mensagem não pode ser enviada.\nTente novamente em alguns instantes.";

        } else {


    $msg="Sua mensagem foi enviada com sucesso.";

            $nome     = "";
            $email    = "";
            $ddd      = "";
            $telefone = "";
            $empresa  = "";
            $mensagem = "";
        }
    }
    ?>

<script language="JavaScript">
alert('<?=$msg?>');
</script>

<?
}
?>

  <td width="433"><input name="nome" type="text" class="caixatexto" id="nome" size="54" /></td>



                </tr>



                <tr>



                  <td class="textos">E-mail:</td>



                  <td><input name="email" type="text" class="caixatexto" id="email" size="54" /></td>



                </tr>



                <tr>



                  <td class="textos">Mensagem:</td>



                  <td><textarea name="mensagem" cols="56" rows="5" class="caixatexto" id="mensagem"></textarea></td>



                </tr>



                <tr>



                  <td height="25">&nbsp;</td>



                  <td><input name="acao" type="submit" class="botao" id="acao" value="Enviar" /></td>



                </tr>



              </form>

正如我之前所说,我有一份工作表格,我在这个网站上测试过。它没有用。它应该将信息提交给我的邮件,但它没有做任何事情

<script language=javascript>
function valida ()
{


if (document.example.name.value=="")
{
alert ('NAME field is empty!');
return false;
}


else if (document.example.email.value=="")
{
    alert ('EMAIL field is empty!');
    return false;
 }

else
{
return true;
}
}

</script>

<form name="example" id="example" action="submit-example.php" method="post" onsubmit="return valida();">    
<fieldset>



<label for="name">Name:</label>
<input type="text" name="name" id="name"/>

<br />


<label for="email">Email:</label>
<input type="text" name="email" id="email"/>    

<br />

<input type="submit" value="submit" />
</fieldset>
</form> 


<?php

$recebename = $_POST['name'];
$recebeemail = $_POST['email'];

$headers = "From: xxxx@xxxxx.xx\r\n";
$headers .= "Content-type:text/html; charset=utf-8";

$para = "xxxx@xxxxx.xx";


$mensagem   = "<h4>Name:</h4> ";
$mensagem  .= $recebename;

$mensagem  .= "<h4>Email:</h4> ";
$mensagem  .= $recebeemail;


$envia =  mail($para,"E-mail do Site",$mensagem,$headers);






// Envia um e-mail para o remetente, agradecendo a visita no site, e dizendo que em breve o e-mail será respondido.

$mensagem2  = "<p>Olá <strong>" . $recebename . "</strong>. Recebemos sua solicitação. Entraremos em contato em breve.</p>";

$mensagem2 .= "<p>Observação - Não é necessário responder esta mensagem.</p>";


$envia =  mail($recebeemail,"Sua mensagem foi recebida!",$mensagem2,$headers);


echo "Mensagens Recebidas com Sucesso!";
echo "<meta http-equiv='refresh' content='2;URL=http://www.google.com.br'>";
?>

我不知道该怎么做了。有任何想法吗?我的意思是,代码是正确的,对吧?

3 个答案:

答案 0 :(得分:0)

您使用javascript函数valida()。但似乎这是不可用的。因为你的代码非常糟糕,所以不确定。

<form name="example" id="example" action="submit-example.php" method="post" onsubmit="return valida();"> 

这就是为什么这个函数在onsubmit上返回false并且表单没有提交。

答案 1 :(得分:0)

您设置了onsubmit="return valida();"功能但我无法在您的脚本中看到valida();功能。我可以在你的脚本中看到validaContato()函数。我认为你错误地返回函数onsubmit

答案 2 :(得分:0)

onsubmit =“return valida();”等于“返回false”,因为未定义valida,因此不提交表单,更改为

onsubmit="return validaContato();"