Image générant un code [Soucis of course :D]

cs_Mizuka Messages postés 66 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 16 décembre 2009 - 4 août 2005 à 23:35
cs_Mizuka Messages postés 66 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 16 décembre 2009 - 5 août 2005 à 20:04
Bonsoir confrère codeurs :D



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 :) )



image.php :



PHP Code
<?php



$image = imagecreate(100,25);

$gris = imagecolorallocate($image,230,230,230);

$noir = imagecolorallocate($image,0,0,0);

imagefill($image,0,0,$gris);

$nbr = rand(235684,999999);

$md5 = md5($nbr);

$code = substr($md5,0,8);

$_SESSION['code'] = $code;

imagestring($image,5,15,5,$code,$noir);

imageline($image,0,0,100,25,$gris);

imagepng($image);



?>


inscription.php :



PHP Code

,

Inscription

,


        <form
action="index.php?page=inscription_verif" enctype="multipart/form-data"
method="post">

<fieldset>

Les champs marqu&#233;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&#233;e     *

***************************/,

----

<td class=\"cat\" colspan=\"2\" align=\"center\">


</fieldset>



<fieldset>


<label for=\"confirm\">J'ai lu et j'accepte les conditions g&#233;n&#233;rales du
site.</label>

<center>

&amp;nbsp;&amp;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&amp;:o--><!--endemo-->))

$confirm_pass = htmlentities ($_POST['confirm_pass']);

$email = $_POST['email'];



//les variables $_SESSION

$_SESSION['pseudo'] = $pseudo;

$_SESSION['pass'] = $pass; // non crypt&#233;

$_SESSION['pass2'] = $pass2; // crypt&#233;

$_SESSION['confirm_pass'] = $confirm_pass;

$_SESSION['email'] = $email;

$code = $_SESSION['code']; // Les 2 variables pour v&#233;rifier l'exactitude du code

$code1 = $_POST['code'];



if (isset($membres['pseudo'])) //si le pseudo est d&#233;ja utilis&#233;

{

          echo '<meta
http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>D&#233;sol&#233; mais ce pseudo est d&#233;j&#224; utilis&#233;. Veuillez en
choisir un autre.

L\'&#233;quipe de
Fantasia.</center>';

}

elseif (isset($membres['email']))

{

          echo '<meta
http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>D&#233;sol&#233; mais cet email est d&#233;j&#224; utilis&#233;. Veuillez en
enctrer un autre.

L\'&#233;quipe de
Fantasia.</center>';

}



//Ici la comparaison

elseif($code != $code1)

{

  echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>Le code de l\'image que vous avez tapez est
erron&#233;.</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;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>La confirmation de votre mot de passe est
erron&#233;e.
Veuillez r&#233;it&#233;rer l\'op&#233;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;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>Il vous est recommand&#233; 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&#233; les conditions d'utilisations

{

echo '<meta http-equiv="refresh" content="3 ;
index.php?page=inscription&amp;amp;pseudo='.$pseudo.'&amp;amp;email='.$email.'&amp;amp;pass='.$pass.'"
/><center>Vous n\'avez pas accept&#233; les conditions
d\'utilisations</center>';

}



if (!isset($membres['pseudo'])) //si le pseudo n'est pas d&#233;ja utilis&#233;

{

if (!isset($membres['email'])) //si l'email n'est pas d&#233;ja utilis&#233;

{

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&#233; 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;amp;pseudo=<?php echo
$pseudo; ?>&amp;amp;email=<?php echo $email;
?>&amp;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.



Merci à l'avance.



@ tchao bonne nuit

2 réponses

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
5 août 2005 à 08:25
euh, si tu as oublie qqchose: nous dire quel est ton probleme!
0
cs_Mizuka Messages postés 66 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 16 décembre 2009
5 août 2005 à 20:04
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 ;)



@ tchao bonne soirée :P



Mizuka
0
Rejoignez-nous