Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal
Tenho um código (peguei pronto) de um form com o Captcha em php.
Ele funciona corretamente, porém ao clicar no botão enviar ele aparece a mensagem que está correto os caracteres, caso digitado errado ele exibe a mensagem de erro, eu gostaria que ao invés de dizer que os caracteres estão corretos ele fizesse essa verificação e enviasse para uma página php (enviar.php) onde eu recupero os dados do formulário e envio para meu e-mail.
Na ação do formulario ele está chamando isso:
<form name="frmImgValida" action="contato.php?validar=form" method="post">
o código na página do formulário começa assim:
<?php
// Inicio a sessão, pois estamos trabalhando com sessões.
session_start();
// Aqui é a ação do formulário, se clicar em enviar ele chama isto.
if( $_GET["validar"] == "form" ){
// Texto digitado no campo imagem, e transformando tudo em mínúsculo, caso queria que haja distinção de maiúsculas e minúsculas, só retire o strtoupper().
$txtImagem = strtoupper($_POST["txtImagem"]);
// Caracteres que estão na imagem, também deixando tudo em minúsulo.
$valorImagem = strtoupper($_SESSION["autenticaIMG"]);
// Verificando se o texto digitado, for igual aos caracteres que estão na imagem
if( $txtImagem == $valorImagem ){
echo "<script type=\"text/javascript\">alert('Caracteres corretos');</script>";
} else {
echo "<script type=\"text/javascript\">alert('Erro! Digite corretamente os caracteres');</script>";
}
}
// Incluindo o imgSet.php que seta os valores da sessão.
require_once ("imgSet.php");
?>Tentei desta forma, mas não deu certo...
ele não passou os dados para o arquivo enviar.php que envia os dados para meu email...
ficou assim:
<?php
// Inicio a sessão, pois estamos trabalhando com sessões.
session_start();
// Aqui é a ação do formulário, se clicar em enviar ele chama isto.
if( $_GET["validar"] == "form" ){
// Texto digitado no campo imagem, e transformando tudo em mínúsculo, caso queria que haja distinção de maiúsculas e minúsculas, só retire o strtoupper().
$txtImagem = strtoupper($_POST["txtImagem"]);
// Caracteres que estão na imagem, também deixando tudo em minúsulo.
$valorImagem = strtoupper($_SESSION["autenticaIMG"]);
// Verificando se o texto digitado, for igual aos caracteres que estão na imagem
if( $txtImagem == $valorImagem ){
echo "<script type=\"text/javascript\">window.location.assign(\"enviar.php\");</script> ";
} else {
echo "<script type=\"text/javascript\">alert('Erro! Digite corretamente os caracteres');</script>";
}
}
// Incluindo o imgSet.php que seta os valores da sessão.
require_once ("imgSet.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Site</title>
<link href="site.css" type=text/css rel=stylesheet>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<link rel="SHORTCUT ICON" href="favicon.ico" />
</head>
<body>
<div class="geral">
<div id="conteudo">
<?php
//include 'conteudo-esq.php';
?>
<div id="centro-contato">
<div id="centro-titulo" class="txt-titulo">Entre em contato</div>
<div id="quem-somos" class="txt-11-bl">
<form name="frmImgValida" action="contato.php?validar=form" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="31%">Nome:</td>
<td width="69%"><label>
<input type="text" name="nome" id="nome" size="32" />
</label></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type="text" name="email" id="email" size="32" /></td>
</tr>
<tr>
<td>Cidade/UF:</td>
<td><input type="text" name="cidade" id="cidade" size="22" />
<input type="text" name="estado" id="estado" size="3" /></td>
</tr>
<tr>
<td>DDD/Telefone:</td>
<td><input type="text" name="ddd" id="ddd" size="3" />
<input type="text" name="telefone" id="telefone" size="22" /></td>
</tr>
<tr>
<td>Empresa:</td>
<td><input type="text" name="empresa" id="empresa" size="32" /></td>
</tr>
<tr>
<td>Assunto:</td>
<td><input type="text" name="assunto" id="assunto" size="32" /></td>
</tr>
<tr>
<td>Mensagem:</td>
<td><label></label></td>
</tr>
<tr>
<td colspan="2"><textarea name="mensagem" id="mensagem" cols="38" rows="5"></textarea>
<br />
<br />
<img src="imgGera.php"> <input type="text" name="txtImagem" size="20"></td>
</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="btnEnviar" value="Enviar">
</label></td>
</tr>
</table>
</form>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/contatos.gif" width="330" height="90" /></td>
</tr>
</table>
</div>
</div>
<?php
include 'conteudo-dir.php';
?>
<div id="rodape-div"></div>
<?php
include 'rodape.php';
?>
</div>
</div>
</body>
</html>
arquivo enviar.php:
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$ddd = $_POST['ddd'];
$telefone = $_POST['telefone'];
$empresa = $_POST['empresa'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$msg = "<font face=’Verdana’ size=’3><b>Nome:</b> \t$nome</font><br>";
$msg2 = "<font face=’Verdana’ size=’3><b>E-mail:</b> \t$email</font><br>";
$msg3 = "<font face=’Verdana’ size=’3><b>Cidade:</b> \t$cidade<br><b>Estado:</b> \t$estado </font><br>";
$msg4 = "<font face=’Verdana’ size=’3><b>DDD:</b> \t$ddd <br><b>Telefone:</b> \t$telefone</font><br>";
$msg5 = "<font face=’Verdana’ size=’3><b>Empresa:</b> \t$empresa</font><br>";
$msg6 = "<font face=’Verdana’ size=’3><b>Assunto:</b> \t$assunto</font><br>";
$msg7 = "<font face=’Verdana’ size=’3><b>Mensagem:</b> \t$mensagem</font>";
$mensagem = "$msg" . "$msg2" . "$msg3" . "$msg4" . "$msg5" . "$msg6" . "$msg7";
$remetente = "$email";
$destinatario = "meuemail@gmail.com";
$assunto = "Contato - Site ";
$headers = "From: ".$remetente."\nContent-type: text/html";
if(!mail($destinatario,$assunto,$mensagem,$headers)){
print "falha no envio da mensagem";
} else {
echo "<meta http-equiv=refresh content=1;URL=obrigado.html>";
}
?>Amigo você tem que colocar as variáveis a serem enviadas no meio do script.
REQUERIDAS
$nome = $_POST['nome'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$ddd = $_POST['ddd'];
$telefone = $_POST['telefone'];
$empresa = $_POST['empresa'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
Para os dados serem enviados via POST. eles devem ser submetidos através de um FORM.
> <form name="frmImgValida" action="contato.php?validar=form" method="post">
você deve modificar este FORM.
Para enviar os dados via JavaScript que seria o seu caso. você precisa usar DOM html.
EX. das duas primeiras requisições.
echo "<script type=\"text/javascript\">window.location.assign('enviar.php?nome='+document.getElementById('ID_CAMPO_DO_NOME').value+'&email='+document.getElementById('ID_CAMPO_DO_EMAIL').value);</script> ";
O que é document.getElementById('ID_CAMPO_DO_EMAIL').value ??
Isto é uma função JavaScript para pegar qualquer item de um campo do HTML neste caso eu usei o getElementByID para passar o ID do elemento. e assim pegar o Valor dele ( .value );
Veja.
http://www.w3schools.com/js/tryit.asp?file...ocument_getbyid
Troque
POR:
echo "<script type=\"text/javascript\">window.location.assign(\"http://www.google.com\"); ";EDITEOnde tem www.google.com
http://www.exforsys.com/tutorials/javascri...ion-object.html