Plus tu pédales moins fort et moins tu vas plus vite !

Membre
|
Bonjour à tous,
J'ai vu certains tuto, très bien faitys d'ailleurs, bravo aux développeurs, mais j'ai un petit problème concernant le formulaire avec le captcha.
En effet, sur ce site, c'est parfait, donc, je l'ai téléchargé.
J'ai essayé en local et il n'y avait pas d'image Captcha.
Je me suis dit qu'en le mettant en ligne, ça va aller mieux... et bien, c'est pareil, toujours pas d'images Captcha !
Y aurait-il quelque chose de spécial à faire par hasard ?
Merci de votre aide.
Cordialement.
Azerty
Cordialement
Azerty

|
Plus tu pédales moins fort et moins tu vas plus vite !

Membre
|
En local, pas de problème, il n'y a qu'en ligne où ca bloque à session_star()
Voilà l'url : Pas de captchat
Cordialement
Azerty

|
Plus tu pédales moins fort et moins tu vas plus vite !

Membre
|
formulaire.php
<html>
<head>
<title></title>
</head>
<body>
<?php
session_start();
//On verifie si le formulaire a ete valide
if(isset($_POST['nom'], $_POST['captcha'], $_SESSION['captcha']))
{
//On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
{
unset($_SESSION['captcha']);
echo '<strong style="color:#00bb00;">Le code que vous avez entré est le bon.</strong>';
$form = false;
//Ici, vous pouvez envoyer les donnes du formulaire
}
else
{
echo '<strong style="color:#bb0000;">Le code que vous avez entré est mauvais, veuillez réessayer.</strong>';
$form = true;
}
}
else
{
$form = true;
}
//Si $form vaut true, le formulaire sera affiche
if($form)
{
?>
<form action="formulaire.php" method="post">
Votre nom:<input type="text" name="nom" value="<?php if(isset($_POST['nom'])){echo htmlentities($_POST['nom']);} ?>" /><br />
Veuillez recopier le code cidessous:<input type="text" name="captcha" /><br />
<img src="captcha.php" alt="CAPTCHA" /><br />
<input type="submit" value="Envoyer" />
</form>
<?php
}
?>
</body>
</html>
captcha.php
<html>
<head>
<title></title>
</head>
<body>
<?php
//Le nombre de caracteres
$ncarac = 5;
//Le nombre de lignes
$nlignes = 7;
//Les caractres qui seront utilises
$carac = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$nca = count($carac);//On determine le nombre de lettres possible: 26
//Police de caractere a utiliser
$font = 'liberation_sans.ttf';
//On determine les tailles de limage
$x = $ncarac*30+10;
$y = 40;
//On cree limage
$img = imagecreatetruecolor($x,$y);
//On remplit l'image avec du blanc
imagefill($img,0,0,imagecolorallocate($img, 255,255,255));
//On ajoute les caracteres
$chaine = "";
for($i=1;$i<=$ncarac;$i++)//On ajoute $ncarac caracteres
{
$c = $carac[rand(0,($nca-1))];//Le nouveau caractere sera choisi aleatoirement
imagettftext($img, 25, rand(-10,10), (($i-1)*30)+5, 30, imagecolorallocate($img, rand(0,100), rand(0,100), rand(0,100)),$font, $c);//On ajoute le caractere sur limage
$chaine .= $c;//On ajoute le nouveau caractere a la chaine
}
//On ajoute les lignes
for($i=1;$i<=$nlignes;$i++)//On ajoute "$nlignes" lignes
{
imagesetthickness($img,rand(1,2));//On specifie lepaisseur de la ligne
imageline($img,rand(0,$x),rand(0,$y),rand(0,$x),rand(0,$y), imagecolorallocate($img, rand(0,100), rand(0,100), rand(0,100)));//On ajoute la ligne
}
//On stoque la chaine de caractere dans les sessions
session_start();
$_SESSION['captcha'] = $chaine;
//On affiche l'image finale
header('Content-type: image/png');
imagepng($img);
?>
</body>
</html>
Cordialement
Azerty

|
Plus tu pédales moins fort et moins tu vas plus vite !

Membre
|
OK, c'était bien ça, j'ai pas fait gaffe ! Plus de prb avec session_star(), par contre, toujours pas d'images Captcha !
Cordialement
Azerty

|

Membre
|
L'image retourne : Could not find/open font
Donc la police n'est pas bien placée
Elle doit etre a cette adresse : http://qi98.free.fr/temp/liberation_sans.ttf
|
Plus tu pédales moins fort et moins tu vas plus vite !

Membre
|
C'est ok maintenant ! Effectivement, c'était la police !
J'avais pas fait le rapprochement.
Tu as de très bons yeux.
Merci beaucoup de ton aide.
A+
Cordialement
Azerty

|