Voilà je suis sur un script d'inscription. Et là en ce moment je butte
sur un code qui est crée par une image dynamique ( en php donc ). Je
vous mets les scripts où interviennent ces fameux codes ( ah ui y en a
deux parce qu'à un moment faux bien que j compare le vrai code avec
celui entré par le visiteur :) )
,
Inscription
,
<form
action="index.php?page=inscription_verif" enctype="multipart/form-data"
method="post">
<fieldset>
Les champs marqués d'un * sont
obligatoires.,
----
Nom de Guerrier: *,
"
/>,
----
Adresse e-mail: *,
"
/>,
----
Mot de passe: *
,
"
/>,
----
Confirmez le mot de passe: *
,
"/>,
----
/********************************************************************
* La partie du formulaire contenant l'image et le champs pour entrer le code *
********************************************************************/
Tapez ce qu'affiche l'image :
,
/***************************
* Fin de la zone concernée *
***************************/,
----
<td class=\"cat\" colspan=\"2\" align=\"center\">
</fieldset>
<fieldset>
<label for=\"confirm\">J'ai lu et j'accepte les conditions générales du
site.</label>
<center>
&nbsp;&nbsp;
</td>
</center>
</fieldset>
</form>
</td>
inscription_verif.php :
PHP Code
<?
include('config.inc.php');
mysql_connect($hebergeur, $utilisateur, $mdp);
mysql_select_db($bdd);
$select = mysql_query("SELECT * FROM `membres` WHERE
pseudo='".$_POST['pseudo']."'") or die('Erreur verif_inscription:
'.mysql_error());
$membres = mysql_fetch_array($select);
//Simplification
$pseudo = htmlentities ($_POST['pseudo']);
$pass = htmlentities ($_POST['pass']);
$pass2 = md5($pass); // le fameux cryptage
<!--emo&:o--><!--endemo-->))
$confirm_pass = htmlentities ($_POST['confirm_pass']);
$email = $_POST['email'];
//les variables $_SESSION
$_SESSION['pseudo'] = $pseudo;
$_SESSION['pass'] = $pass; // non crypté
$_SESSION['pass2'] = $pass2; // crypté
$_SESSION['confirm_pass'] = $confirm_pass;
$_SESSION['email'] = $email;
$code = $_SESSION['code']; // Les 2 variables pour vérifier l'exactitude du code
$code1 = $_POST['code'];
if (isset($membres['pseudo'])) //si le pseudo est déja utilisé
{
echo '<meta
http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>Désolé mais ce pseudo est déjà utilisé. Veuillez en
choisir un autre.
L\'équipe de
Fantasia.</center>';
}
elseif (isset($membres['email']))
{
echo '<meta
http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>Désolé mais cet email est déjà utilisé. Veuillez en
enctrer un autre.
L\'équipe de
Fantasia.</center>';
}
//Ici la comparaison
elseif($code != $code1)
{
echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>Le code de l\'image que vous avez tapez est
erroné.</center>';
}
else
{
if ($pseudo AND $pass AND $confirm_pass AND $email !NULL AND $code $code1) //si tout est remplit
{
if ($pass != $confirm_pass) //si la confirmation du pass n'est pas correct
{
echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>La confirmation de votre mot de passe est
erronée.
Veuillez réitérer l\'opération.</center>';
}
}
elseif ($pseudo OR $pass OR $confirm_pass OR $email == NULL) //si il y a un ou plusieurs champ(s) non remplit(s)
{
echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>Il vous est recommandé de bien vouloir remplir tout
les champs obligatoires (*) pour que l\'inscription se fasse
correctement.</center>';
}
if (empty($_POST['conditions'])) //si le client n'a pas accepté les conditions d'utilisations
{
echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;pseudo='.$pseudo.'&amp;email='.$email.'&amp;pass='.$pass.'"
/><center>Vous n\'avez pas accepté les conditions
d\'utilisations</center>';
}
if (!isset($membres['pseudo'])) //si le pseudo n'est pas déja utilisé
{
if (!isset($membres['email'])) //si l'email n'est pas déja utilisé
{
if ($pseudo AND $pass AND $confirm_pass AND $email != NULL) //si tout est remplit
{
if ($pass == $confirm_pass) //si la confirmation du pass est correcte
{
if (!empty($_POST['conditions'])) //si le client a accepté les conditions d'utilisations
{
echo '<center>Votre pseudo : '.$pseudo.'Votre
mot de passe : '.$pass.'Votre email :
'.$email.'</center>';
}
}
?>
<center><form action="index.php?page=inscription_fin" method="post">
</center>
</form>
<center><form
action="index.php?page=inscription&amp;pseudo=<?php echo
$pseudo; ?>&amp;email=<?php echo $email;
?>&amp;pass=<?php echo $pass; ?>"
method="post">
</center>
<?
}
}
}
}
?>
Voilà je crois pas avoir oublié quelque chose. Vous pouvez regarder la
totalité du code si vous voulez parce que ça doit pas être joli.
Uhuh !! Oui je suis vraiment désolé ! Bon j'ai trouvé la solution à mon
soucis mais je vais l'exposer et donner ma soluce pour ceux qui aurait
le même problème.
Donc voilà dans le formulaire d'inscription j'affiche image.php qui
génère un code aléatoire ( système utilisé pour éviter que des bots
s'inscrivent ) & mon problème était que le code que j'enregistrai
dans $_SESSION['code'] ne donnait rien sur la page
inscription_verif.php . Pourtant je démarrais bien une session ( avec
session_start() dans ma page index ( ah oui j'oubliais mon site est
structuré que par des includes ) )
J'ai finalement trouvé d'où venait le problème !
Quand j'affiche image.php je l'affiche avec une balise ( qui ne vaut pas un include et n'est pas une balise php :) )
Il faut donc démarré une session ( toujours avec session_start() ) AUSSI dans image.php.
Voilà :)
Merci Malik & désolé
Pour ceux qui trouvent idiot que je détail autant c'est pour le cas où des débutants liraient ce message ;)