1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Anti spam num Guestbook

Discussão em 'Web Development' iniciada por Maurito, 28 de Setembro de 2007. (Respostas: 12; Visualizações: 1319)

  1. Bom dia. Dado ter sido escolhido para manter um site regularmente actualizado vi-me obrigado a aprender linhagens gerais de html e php, sendo um iniciante nestas andanças Mas estou a debater-me com um problema. O referido site possui um guestbook que e constantemente invadido por spam. A minha dúvida é como é que eu me hei-de livrar das inundações de spam? há algum anti-spam que eu possa lá colocar, ou algum scrip que ajude?
    Preciso urgentemente de ajuda...
    Obrigado
     
  2. QuickFire

    QuickFire What is folding?

    A maneira mais fácil é colocares lá um Captcha, ou uma operação matemática simples que mude.
     
  3. Obrigado pela rapidez da resposta.
    Operação matemática? por exemplo?
     
  4. Por po exemplo 1+2 para ver e é humano ou n?e isso que quer dizer?
     
  5. Sim, é isso. (Como está no formulário de registo aqui da techzone)
     
  6. slack_guy

    slack_guy Power Member

    A Techzone (vBulletin) usa Captcha.
    Nunca vi essa da operação aritmética. Não é suposto os computadores fazerem operações dessas fácil e rapidamente?
    A ideia é criar um problema que os computadores, com a tecnologia actual, não consigam resolver. Ora, operações dessas são elementares.

    As Captcha, consoante a implementação, são um dos meios mais fiáveis para garantir que não tens bots a enviarem spam para formulários.

    Se perguntas o resultado de 2 + 2 (e essa pergunta é formulada em texto algures na página ou num script externo, e não numa imagem), até a minha calculadora te envia spam :-)
     
  7. HecKel

    HecKel The WORM

    Vai ao teu perfil e tenta alterar alguma coisa na zona das opções, julgo que é aí que aparece isso.

    E sim, os computadores devem conseguir fazer essas contas simples, mas interpretar o texto não é assim tão linear, apesar de ser relativamente simples de fazer isso. (nem sei porque a techzone tem isso na zona do perfil, quem se regista já deve ter passado o teste do Captcha).
     
  8. slack_guy

    slack_guy Power Member

    Right!! não tinha reparado nisso. A minha perplexidade é igual à tua: para que é que serve isso se já estou autenticado no sistema? Além do mais, em cinco tentativas, a pergunta é sempre a mesma.
     
  9. Ok, mas por qual é que opto?
    É que eu sou mesmo uma iniciante nisto, a sério lol
    Se me pudessem indicar um pequeno código que fizesse isso, eu agradecia bastante...
    Obrigado
     
  10. Ajuda rápido: guestbook

    Eu já perguntei aqui isto uma vez, e ajudaram-me, mas como eu sou um iniciante nisto, preciso realmente de ajuda. Eu queria meter uma pequena operação matemática do tipo "a soma de três+dois" no meu guestbook para combater o spam. É na mesma base daquilo que se encontra no formulário de registo aqui do techzone..JUnto envio um trecho do código do meu guestbokk, do formulário onde esta a parte do nome, do email e essa cenas.. Espero que me ajudem
    Obrigado

    <TD colspan='2' align='left' bgcolor='".$table_bgcolor2."'>
    <font size='".$font_size."' face='".$font_face."' color='".$font_color."'>");
    echo("<FORM name='newentry' action='guestbook.php?opt=enter' method='POST' target='_self'>&nbsp;\n
    Nome:<BR>\n<INPUT TYPE='TEXT' name='name' size='40' maxlength='50'>\n<BR>&nbsp;\n");
    if ($email_setting == 1){ echo("Email:<BR>\n<INPUT TYPE='TEXT' name='email' size='40' maxlength='50'>&nbsp;\n<BR>\n");}
    echo("Localidade:<BR>\n<INPUT TYPE='TEXT' name='location' size='40' maxlength='50'>&nbsp;\n<BR>\n
    Título do Website:<BR>\n<INPUT TYPE='TEXT' name='url_title' size='40' maxlength='50'>&nbsp;\n<BR>\n
    Link do Website:<BR>\n<INPUT TYPE='TEXT' name='url' size='60' maxlength='100' value='http://'>&nbsp;\n<BR>\n
    Mensagem:<BR>\n<TEXTAREA name='message' rows='5' cols='50'></TEXTAREA>\n<BR>&nbsp;\n");
     
  11. K0mA

    K0mA Power Member

    Em primeiro lugar mete sempre o código dentro das tags de PHP (vais ao editor avançado que tens lá essa opção).

    O ficheiro onde está o formulário fica assim:
    PHP:
    <?php
    session_start
    (); 
    $aleat1 rand(5);
    $aleat2 rand(5);
    $num1 $aleat1;
    $num2 $aleat2;
    $_SESSION['teste'] =  $num1 $num2;
     
    echo(
    "<FORM name='newentry' action='guestbook.php?opt=enter' method='POST' target='_self'>&nbsp;\n
    Nome:<BR>\n<INPUT TYPE='TEXT' name='name' size='40' maxlength='50'>\n<BR>&nbsp;\n"
    );
    if (
    $email_setting == 1){ echo("Email:<BR>\n<INPUT TYPE='TEXT' name='email' size='40' maxlength='50'>&nbsp;\n<BR>\n");}
    echo(
    "Localidade:<BR>\n<INPUT TYPE='TEXT' name='location' size='40' maxlength='50'>&nbsp;\n<BR>\n
    Título do Website:<BR>\n<INPUT TYPE='TEXT' name='url_title' size='40' maxlength='50'>&nbsp;\n<BR>\n
    Link do Website:<BR>\n<INPUT TYPE='TEXT' name='url' size='60' maxlength='100' value='http://'>&nbsp;\n<BR>\n
    Mensagem:<BR>\n<TEXTAREA name='message' rows='5' cols='50'></TEXTAREA>\n<BR>&nbsp;\n"
    );
     
    echo 
    "Qual o resultado de $num1 + $num2 ?";
    echo
    "<br/><INPUT TYPE='TEXT' name='teste' size='5'>";
    ?>
     
     
    No ficheiro 'guestbook.php' deves adicionar:

    PHP:
    if ($_POST['teste'] != $_SESSION['teste'] && isset($_POST['teste'])) {
    //não fazer nada ou escrever mensagem
    echo "<p>tente de novo</p>";
    echo 
    "<a href='página_do_form.php'>Voltar ao formulário</a>";
    }
    else {
    //o código que já tinhas metes aqui:
    //adicionar a entrada ao livro de visitas

     
     
    Última edição: 2 de Outubro de 2007
  12. majo-san

    majo-san Power Member

    Eu já usei o reCAPTCHA no wordpress, mas não deve ser muito difícil implementá-lo noutros sítios.

    http://recaptcha.net/resources.html


    Edit:
    O reCaptcha usa 2 palavras reais em inglês, uma conhecida e outra que os computadores não conseguiram reconhecer. A conhecida é para efeitos de validação. A outra é para ajudar o sistema (The Machine :p) a reconhecer as palavras e ajudar a digitalizar textos e livros antigos.
     
    Última edição: 3 de Outubro de 2007
  13. QuickFire

    QuickFire What is folding?

    Eu pessoalmente como detesto escrever letras e números totalmente aleatórios que roçam o ridículo, prefiro conjugar os dois...
    Uma operação matemática simples numa imagem, gerada dinamicamente, tal e qual como um captcha.
     

Partilhar esta Página