pedrolgon_05 0 Denunciar mensagem Publicado 31 de Maio de 2015 (editado) bom dia, desde ja o meu muito obrigado pela adicao a este grupo. Recentemente tenho vindo a desenvolver uma aplicacao de newslwtter em php onde eu utilizo para o registo de correio electronico um formulario com captcha. o meu problema é aquando da insercao do codigo captcha por parte do utilizador a aplicacao nao consegue efetuar o registo na bd. ja tentei de tudo e nao consigo resolver.tentei colocar um ciclo if ($_session[‘código’] == $_post[‘código’]) antes de todas as outras condições so que ele não executa nada e quando ponho o ciclo else depois de todas as condições, com a condição echo” código invalido ” ele executa somente essa condicao. Na minha opinião no ciclo if ($_session[‘código’] == $_post[‘código’]) ele não consegue estabelecer se o código inserido é igual ao código gerado.agradecia a ajuda de alguem. um bom dia pedro o script que elaborei <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <link rel="stylesheet" type="text/css" href="estilo_malinglist.css"> </head> <body> <table width="800 px" border="0" align="center" class="tabela_geral" cellspacing="0"> <form id="form_registo" name="form_registo" action="registar_mail.php" method="POST"> <tr class="tabela_geral"> <td>Introduza o seu endereço de correio electronico para se registar na nossa <i>mailing list</i>! </td> </tr> <tr> <td class="tabela_geral"> Endereço de correio electronico:<input type="text" size="40" name="email"> </td> </tr> <tr> <td><img height="80" width="150" src="captcha.php"/> <input type="text" name='codigo'></td> </tr> <td> <input type="submit" name="registar" class="btn btn-red" value="Registar"> <input type="reset" name="apagar" class="btn btn-red" value="Apagar"> </td> </form> </table> <?php //inicia-se com a ligacao à base de dados, verificando se o botao de submissao foi clicado, se o endereÇo esta correcto e ainda se o campo de endereÇo do formulario foi preenchido //se estiver tudo correto insere um novo registo na base de dados, caso contrario, informa o utilizador do que deve ser alterado include ("ligacaobd.php"); //verifica se o endereço foi inserido if (!empty($_POST) AND (empty($_POST['email']) )){ // echo "<tr>Endereco correio electronico vazio<a href='registar_mail.php'>Clique para tentar de novo!</a></tr>"; echo"<script> alert('Endereco de correio electronico vazio!! Tentar de novo...'); window.location.href='registar_mail.php';</script> "; } else{ //verifica se foi clicado o botao de registar $codigo1= $_SESSION['codigo'] ; $codigo2= $_POST['codigo']; if($codigo1 == $codigo2 ){ //echo "Ok - Codigo Correto"; if (isset($_REQUEST['registar'])){ //verifica se o endereço ja existe na base de dados $email= $_POST['email']; $sql_mail="SELECT * FROM emails WHERE email='$email' "; $consulta_mail = mysql_query($sql_mail); if (mysql_num_rows($consulta_mail) ==1){ //echo "<tr>Endereco de correio electronico ja registado!<a href='registar_mail.php'>Clique para tentar de novo!</a></tr>"; echo"<script> alert('Endereco de correio electronico ja registado!! Tentar de novo...'); window.location.href='registar_mail.php';</script> "; } else { //verifica se o endereço de correio electronico esta correcto $email= $_POST['email']; if (filter_var($email, FILTER_VALIDATE_EMAIL)){ //registar o endereço de correio electronico $sql= "INSERT INTO emails (email, data_registo) VALUES ('$email', NOW() )"; $consulta= mysql_query($sql); //confirmar o sucesso do registo do endereço de correio electronico echo "<table>"; // echo "<tr>Obrigado por se registar!</tr>"; // echo "<tr><a href='registar_mail.php'>Clique para voltar à pagina principal</a></tr>"; echo"<script> alert('Obrigado por se registar'); window.location.href='registar_mail.php';</script> "; } else{ //caso nao seje possivel registar, informa o utilizador //echo "<tr>O endereco de correio electronico nao e valido!</tr>"; // echo "<tr><a href='registar_mail.php'>Clique para tentar de novo!</a></tr>"; echo"<script> alert('O endereco de correio electronico nao e valido!! Tentar de novo...'); window.location.href='registar_mail.php';</script> "; } } } } else{ // echo "Erro - Codigo digitado errado"; echo"<script> alert('Codigo digitado errado!! Tentar de novo...'); window.location.href='registar_mail.php';</script> "; } } ?> </body> </html> Editado 31 de Maio de 2015 por Rui Carlos GeSHi Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 31 de Maio de 2015 http://php.net/manual/en/function.session-start.php lê bem a documentação IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
pedrolgon_05 0 Denunciar mensagem Publicado 31 de Maio de 2015 ou seja fica a faltar um session_start(); no inicio do script certo? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites