Bonjour,
Je suis en train de travailler sur un système de captcha, et j'ai un soucis avec la variable $_SESSION contenant le code généré par le script dédié à la génération du captcha, la variable est vide après avoir envoyé la requête au script s'occupant de vérifier si le code saisie est bien le même que celui affiché par l'image du captcha.
Je vais pas copier tout mon code car ça ferait long, mais je vais vous le schématiser.
index.html=> POST => page.php => POST => verif.php
| affiche
> captcha.php (génère le code et affiche une image)
page.php contient
session_start() ;
{code vérifiant les $_POST}
{variables hmtl contenant entre autre
<img src="captcha.php" alt="image de protection" />
}
{code définissant $_SESSION[message] entre autre}
captcha.php contient
session_start();
{code générant le captcha dans $code}
$_SESSION[code_captcha] = $code; {code générant l'image du captcha}
verif.php contient
session_start();
{code vérifiant si le captcha est bon}
$code_verif = strtoupper($_POST[verif]) ;
if ($code_verif != $_SESSION[code_captcha]) {
$error = 1 ;
}
{code d'affichage}
|
Les variables $_SESSION définit par la page page.php comme $_SESSION[message] sont disponibles et peuvent être affichées dans verif.php, mais $_SESSION[code_captcha] généré par captcha.php est vide, le fait de confirmer le captcha avec un champs vide le valide donc.
Je ne sais pas si cela vient du faire que captcha.php est affiché dans la page comme étant une image, et qu'il faut peut-être utiliser autre chose que session_start () dans le script captcha.php ?
Merci d'avance si vous pouvez m'aider, car j'ai un peu de mal à comprendre pourquoi cette variable n'est pas sauvée avec les autres variables $_SESSION.