Ir para conteúdo
Fórum Script Brasil
  • 0

Anti-spam em PHP


lelekinho

Pergunta

Bom dia a todos do fórum.

Estou começando em PHP, e queria a ajuda de vocês para criar um "projeto" que teste meu conhecimento, e que no futuro irei usar para anti-spam em meus sites.

Ele funciona assim, seta o $num1 como random de 1 à 5, e $num2 random de 1 à 5.

O $num3 é $num1 + $num2.

Depois, você colocará a soma de $num1 + $num2 numa caixinha, e se estiver certa a conta, valida, se não, retorna.

Queria pesquisar pelo fórum mas não sabia ao certo O QUE pesquisar.

O que acontece: São 2 páginas, uma valida se o cálculo está certo, outra é para colocar a soma.

Mas, a página que valida o cálculo sempre diz que ele está errado. Acho que é porque setei o $num3 na página de somar e não de validar.

Então, o que faço?

Os 2 scripts:

Conta.php

<?php

$num1 = rand(1, 5);

$num2 = rand(1, 5);

$num3 = $num1 + $num2;

?>

<html>

<head>

<title>Conta</title>

</head>

<body>

<form method="post" action="cadastraconta.php">

<center><h1>Quanto é <?=$num1?> + <?=$num2?>?</h1><hr>

<br><Br>

<input type="text" value="Resultado" name="resultado">

<button type="submit" name="submit">Submit</button></center>

</body>

</form>

</html>

Cadastraconta.php

<?php

$resultado=$_POST['resultado'];

$resultado=trim($resultado);

$erro=0;

if($resultado=="Resultado"){

echo '<center><font color="#FF0000">Campo resultado em branco! <a href="conta.php">VOLTAR</a></font>';

$erro++; }

if(empty($resultado)){

echo '<center><font color="#FF0000">Campo resultado em branco! <a href="conta.php">VOLTAR</a></font>';

$erro++; }

if($resultado!=$num3){

echo '<center><font color="#FF0000">Cálculo errado! <a href="conta.php">VOLTAR</a></font>';

$erro++; }

if($erro==0){

echo '<center><b>Conta certa!</b>'; }

?>

<html><head><title>Conta</title></head>

<body></body></html>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Na página cadastraconta.php você verifica:

$resultado!=$num3

Mas onde está vindo a variável $num3?

Neste caso você vai ter que na página Conta.php salvar o resultado da soma em uma sessão e utilizar isto para comparar ali no if, caso contrário nunca vai funcionar, porque a variável $num3 não existe.

Link para o comentário
Compartilhar em outros sites

  • 0
Na página cadastraconta.php você verifica:

$resultado!=$num3

Mas onde está vindo a variável $num3?

Neste caso você vai ter que na página Conta.php salvar o resultado da soma em uma sessão e utilizar isto para comparar ali no if, caso contrário nunca vai funcionar, porque a variável $num3 não existe.

Mas como que salvarei o $num3 numa sessão? Ainda estou aprendendo.

Link para o comentário
Compartilhar em outros sites

  • 0

<?php
session_start();
$num1 = rand(1, 5);
$num2 = rand(1, 5);
$num3 = $num1 + $num2;
$_SESSION['controle'] = $num3;
?>
<html>
<head>
<title>Conta</title>
</head>
<body>
<form method="post" action="cadastraconta.php">
<center><h1>Quanto é <?=$num1?> + <?=$num2?>?</h1><hr>
<br><Br>
<input type="text" value="Resultado" name="resultado">
<button type="submit" name="submit">Submit</button></center>
</body>
</form>
</html>
<?php
session_start();
$resultado=$_POST['resultado'];
$resultado=trim($resultado);
$erro=0;
if($resultado=="Resultado"){
echo '<center><font color="#FF0000">Campo resultado em branco! <a href="conta.php">VOLTAR</a></font>';
$erro++; }
if(empty($resultado)){
echo '<center><font color="#FF0000">Campo resultado em branco! <a href="conta.php">VOLTAR</a></font>';
$erro++; }
if($resultado!=$_SESSION['controle']){
echo '<center><font color="#FF0000">Cálculo errado! <a href="conta.php">VOLTAR</a></font>';
$erro++; }
if($erro==0){
echo '<center><b>Conta certa!</b>'; }
?>
<html><head><title>Conta</title></head>
<body></body></html>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...