[Dubbio] Verificare codice Captcha inserito nel form

Salve,

seguendo questa guida: http://www.white-hat-web-design.co.uk/articles/php-captcha.php

sto inserendo un controllo visivo all'interno di una pagina web.

Ho svolto la prima parte di lavoro, il codice è visualizzato correttamente.

Mi sorge un enorme dubbio in merito alla parte di lavoro inerente alla verifica di ciò che l'utente ha digitato.

La guida dice:

"Place the following in the code where the form is submitted to. This code will check what the user has typed matches the code in the image."

Nonostante io abbia capito cosa vuole dire, non ho capito DOVE va piazzato il codice di controllo.

Qualcuno mi da una mano?

inviato 9 anni fa
stevross
X 0 X

perché non leggi invece la nostra guida CAPCHA?

http://www.phpnews.it/articoli/php/combattere-lo-spam-con-tecniche-capcha/

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ottimo do uno sguardo ;D

risposto 9 anni fa
stevross
X 0 X

Ho letto la vostra guida ma sono praticamente alla fine col sistema che avevo implementato io.

La mia difficolta è inserire all'interno della pagina che verifica i campi del form (ovvero la seguente):

<?php

if(!isset($cusername)){

session_start();

require_once("../config.php");

}

if (isset($_POST["username"]) && ($_POST["username"] == $username) && ($_POST["password"] == $password) )

{

   if(isset($_POST['remember'])){

      setcookie("adminname",$username, time()+60*60*24*100, "/");

      setcookie("adminpass", $password, time()+60*60*24*100, "/");

   }

   $_SESSION["admin"] = "true";

      session_write_close();

   header("Location:../admin.php");

   exit;

}

if (isset($cusername) &&($cusername==$username) && ($cpassword==$password))

{

   $_SESSION["admin"] = "true";

    session_write_close();

   header("Location:../admin.php");

   exit;

}else

 {

   $_SESSION["error"] = "<font color=red>Wrong username or password. Try again.</font>";

   header("Location:../admin.php?wrong=true");

}

?>

Il codice che verifica il form dello script captcha (questo qiu di seguito):

<?php 

session_start();

if( isset($_POST['submit'])) {

   if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {

      // Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 

      echo 'Thank you. Your message said "'.$_POST['message'].'"';

      unset($_SESSION['security_code']);

   } else {

      // Insert your code for showing an error message here

      echo 'Sorry, you have provided an invalid security code';

   }

} else {

?>

Non sono pratico di codice, chi mi da una mano?

Non conosco la sintassi e faccio errori.

risposto 9 anni fa
stevross
X 0 X

prova così:

<?php
if(!isset($cusername)){
session_start();
require_once("../config.php");
}

 if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
      // Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 
      echo 'Thank you. Your message said "'.$_POST['message'].'"';
      unset($_SESSION['security_code']);
   } else {
      // Insert your code for showing an error message here
      echo 'Sorry, you have provided an invalid security code';
   }

if (isset($_POST["username"]) && ($_POST["username"] == $username) && ($_POST["password"] == $password) )
{
   if(isset($_POST['remember'])){
      setcookie("adminname",$username, time()+60*60*24*100, "/");
      setcookie("adminpass", $password, time()+60*60*24*100, "/");
   }

   $_SESSION["admin"] = "true";
      session_write_close();
   header("Location:../admin.php");
   exit;
}
if (isset($cusername) &&($cusername==$username) && ($cpassword==$password))
{
   $_SESSION["admin"] = "true";
    session_write_close();
   header("Location:../admin.php");
   exit;
}else
 {
   $_SESSION["error"] = "<font color=red>Wrong username or password. Try again.</font>";
   header("Location:../admin.php?wrong=true");
}

?>
risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Se completo i campi correttamente si apre una pagina con su scritto mi dice:

Notice: Undefined index: message in [percorso]\www\admin\checkpass.php on line 9

Thank you. Your message said ""

Warning: Cannot modify header information - headers already sent by (output started at [percorso]\www\admin\checkpass.php:9) in [percorso]\www\admin\checkpass.php on line 25

Se invece inserisco dati errati viene fuori una pagina con:

Sorry, you have provided an invalid security code

Warning: Cannot modify header information - headers already sent by (output started at [percorso]\www\admin\checkpass.php:13) in [percorso]\www\admin\checkpass.php on line 25

risposto 9 anni fa
stevross
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda