minha duvida é na validação do session com o valor do input
Vou colocar o codigo que estou usando dai eu explico melhor o que esta acontecendo
contato.php
<form name="form" id="formID" action="comentarioEnvia.php" method="post">
// campo nome
<label style="font-weight:bolder;">Nome: </label>
<input id="nome" name="nome" type="text" size="43" maxlength="42" class="validate[required] custom[onlyLetterSp] text-input"/></br>
// tirei outros campos aqui como assunto comentario etc etc não tem o porque coloca-los aqui
// aqui gera a img do captcha
<img id="palavra" src="Plugin/Captcha/captcha.php?l=150&a=50&tf=20&ql=5">
// aqui é o campo input para comparar com as letras do session
<input id="palavras" type="text" name="palavras" size="12" class="validate[required]" />
<div id="botao" align="center">
// aqui é o botao para enviar ao comentarioEnvia.php caso tudo esteja validado
<input type="submit" name="submit" value="Enviar Comentario"/>
</div>
</form>
<?php
// aqui tento validar o captcha com o valor do input
session_start();
echo $_SESSION["palavra"];
echo $_POST["palavras"];
if ($_POST["palavras"] == $_SESSION["palavra"]){
echo "<h1>Voce Acertou</h1>";
}else{
echo "<h1>Voce não acertou!</h1>";
}
?>
captcha.php << aqui gero o captcha ---- $_SESSION["palavra"]
<?php
session_start(); // inicial a sessao
header("Content-type: image/jpeg"); // define o tipo do arquivo
function captcha($largura,$altura,$tamanho_fonte,$quantidade_letras){
$imagem = imagecreate($largura,$altura); // define a largura e a altura da imagem
$fonte = "arial.ttf"; //voce deve ter essa ou outra fonte de sua preferencia em sua pasta
$preto = imagecolorallocate($imagem,0,0,0); // define a cor preta
$branco = imagecolorallocate($imagem,255,255,255); // define a cor branca
// define a palavra conforme a quantidade de letras definidas no parametro $quantidade_letras
$palavra = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz23456789"),0,($quantidade_letras));
$_SESSION["palavra"] = $palavra; // atribui para a sessao a palavra gerada
for($i = 1; $i <= $quantidade_letras; $i++){
imagettftext($imagem,$tamanho_fonte,rand(-25,25),($tamanho_fonte*$i),($tamanho_fonte + 10),$branco,$fonte,substr($palavra,($i-1),1)); // atribui as letras a imagem
}
imagejpeg($imagem); // gera a imagem
imagedestroy($imagem); // limpa a imagem da memoria
}
$largura = $_GET["l"]; // recebe a largura
$altura = $_GET["a"]; // recebe a altura
$tamanho_fonte = $_GET["tf"]; // recebe o tamanho da fonte
$quantidade_letras = $_GET["ql"]; // recebe a quantidade de letras que o captcha terá
captcha($largura,$altura,$tamanho_fonte,$quantidade_letras); // executa a funcao captcha passando os parametros recebidos
?>
Vamos la.. a imagem do captcha aparece normal.. sem nenhum problema com isso
Na parte do codigo (contato.php)
<?php
// aqui tento validar o captcha
session_start();
echo $_SESSION["palavra"];
echo $_POST["palavras"];
if ($_POST["palavras"] == $_SESSION["palavra"]){
echo "<h1>Voce Acertou</h1>";
}else{
echo "<h1>Voce não acertou!</h1>";
}
?>
O resultado de echo $_SESSION["palavra"] é um valor diferente da imagem gerada no captcha sendo assim como eu consigo pegar o mesmo valor gerada da imagem ?
O echo $_POST["palavras"] não esta buscando o valor digitado no campo input "palavras" do formulario =/
Estou estudando toda a parte da session e validação já li varios artigos e tutoriais porem não encontrei algo que me ajudasse quanto a isso.. documentei todo o codigo que fiz para facilitar na leitura deles..
Antes de mais nada obrigado pela ajuda que vocês estão dando..
E desculpa toda minha ignorancia.. :blush:
Se tiverem algum artigo sobre este assunto também ficaria muito grato.
Question
rodrigo.rrch
Bom dia galera
minha duvida é na validação do session com o valor do input
Vou colocar o codigo que estou usando dai eu explico melhor o que esta acontecendo
contato.php
captcha.php << aqui gero o captcha ---- $_SESSION["palavra"] Vamos la.. a imagem do captcha aparece normal.. sem nenhum problema com isso Na parte do codigo (contato.php)O resultado de echo $_SESSION["palavra"] é um valor diferente da imagem gerada no captcha sendo assim como eu consigo pegar o mesmo valor gerada da imagem ?
O echo $_POST["palavras"] não esta buscando o valor digitado no campo input "palavras" do formulario =/
Estou estudando toda a parte da session e validação já li varios artigos e tutoriais porem não encontrei algo que me ajudasse quanto a isso.. documentei todo o codigo que fiz para facilitar na leitura deles..
Antes de mais nada obrigado pela ajuda que vocês estão dando..
E desculpa toda minha ignorancia.. :blush:
Se tiverem algum artigo sobre este assunto também ficaria muito grato.
Vlw
-----------------EDITADO-----------------------
Para ajudar mais um pouco...
http://imageshack.us/photo/my-images/64/66748314.png" border="0" class="linked-image" />
http://imageshack.us/photo/my-images/64/66748314.png
o erro de UNDEFINED INDEX significa variavel não definida nhe ?! que é o caso do $_POST["palavras] não encontrar o valor do input palavras..
e o "vbQy2" é o que esta trazendo da session $_SESSION["palavra"]; diferente da imagem..
Edited by rodrigo.rrchLink to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.