Salam ;on s'inspirant du code d'un site sur le captcha et des tutoriels PHP j'ai une erreur d'affichage du code.
page verif_code_gen.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
<?php
// On crée la session avant tout
session_start();
 
// On définit la configuration :
$nbr_chiffres = 6; // Nombre de chiffres qui formeront le nombre
 
// Là, on définit le header de la page pour la transformer en image
header ("Content-type: image/png");
// Là, on crée notre image
$_img = imagecreatefrompng('./mod/fond_verif_img.png');
 
// On définit maintenant les couleurs
// Couleur de fond :
$arriere_plan = imagecolorallocate($_img, 0, 0, 0); // Au cas où on n'utiliserait pas d'image de fond, on utilise cette couleur-là.
// Autres couleurs :
$avant_plan = imagecolorallocate($_img, 255, 255, 255); // Couleur des chiffres
 
##### Ici on crée la variable qui contiendra le nombre aléatoire #####
$i = 0;
while($i < $nbr_chiffres) {
        $chiffre = mt_rand(0, 9); // On génère le nombre aléatoire
        $chiffres[$i] = $chiffre;
        $i++;
}
$nombre = null;
// On explore le tableau $chiffres afin d'y afficher toutes les entrées qui s'y trouvent
foreach ($chiffres as $caractere) {
        $nombre .= $caractere;
}
##### On a fini de créer le nombre aléatoire, on le rentre maintenant dans une variable de session #####
$_SESSION['aleat_nbr'] = $nombre;
// On détruit les variables inutiles :
unset($chiffre);
unset($i);
unset($caractere);
unset($chiffres);
 
imagestring($_img, 5, 18, 8, $nombre, $avant_plan);
 
imagepng($_img);
 
?>
vérification du code page valid.inc.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
<?php
 
include('./mod/verif_code_gen.php');
$_SESSION['aleat_nbr'] = $nombre;
 
header('Content-type: text/html; charset=UTF-8');
include('./mod/cbd.inc.php');
// Traitements/vérifications
$erreurs_msg = array();
 
 
 // on verifi que l'utilisateur a cliquer sur le bouton connexion
if (isset($_POST['sident'])) 
	{
		// On vérifie que les élément sont valides
		if (empty($_POST['ident'] )) 
			{
				$erreurs_msg['ident'] = 'Veuillez saisir votre Identifiant SVP.';
			}
 
		elseif (empty($_POST['pass'])) 
			{
				$erreurs_msg['pass'] = 'Veuillez saisir votre mot de passe SVP.';
			} 	
		elseif (Empty($_POST['verif_code']))
			{
 
			$erreurs_msg['verif_code'] = 'Veuillez saisir le texte de l\'image SVP.';
 
			}
		//on verifie  si aucun champs n'est vide donc <>"" (différent de vide)
		elseif(($_POST['ident'] <> "") AND ($_POST['pass'] <> "") and ($_POST['verif_code']==$_SESSION['aleat_nbr']))
		{
					try 
							{
							// on affecte les variables aprés leurs traitement
							$ident = trim(htmlspecialchars(stripslashes($_POST['ident'])));
							$pass =  trim(htmlspecialchars(stripslashes($_POST['pass'])));
 
							// connexion a la bdd et verrification de la validité de l'identifiant et le mot de passe
							$verifident=$cbd->prepare('SELECT acces ,mpaccess FROM etab WHERE acces =:ident and mpaccess=:pass');
							$verifident->bindParam(':ident', $_POST['ident'], PDO::PARAM_STR);
							$verifident->bindParam(':pass',  $_POST['pass'],  PDO::PARAM_STR);
							$verifident->execute();
							$data=$verifident->fetch();
							print_r ($data); // pour verifier les valeurs du tableau
 
							if (($data['acces'] == $_POST['ident']) and ($data['mpaccess'] == $_POST['pass']))
							//if ($data > 1)
								{ 
									// création de session 
 
									$_SESSION['ident'] = $data['acces'];
									$_SESSION['pass']  = $data['pass'];
									$_SESSION['id']    = $data['cdet'];
 
									$verifident->closeCursor();
									$verifident = NULL;
									header ('location: ./interfaces/tab.php'); 
									// exit;
								}
								else
								   {
								 // header ('location: ./interfaces/tab.php'); 
								  //header ('location: index.php'); 
								   }
							}
 
						catch( Exception $e )
							{
							  echo 'Erreur de requète : ', $e->getMessage();
							}
 
 
	} // fin elseif
 
} // fin isset
page index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 
<?php
include('./codephp/valid.inc.php'); 
?>	
<!DOCTYPE html>
<HTML>
<head>
	<!--Pour forcer le navigateur à afficher en mode IE9, sans quoi il peut passer en mode quirks.-->
	<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
	<meta charset="utf-8" />
	<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <!-- application dynamique  -->
	<link rel="shortcut icon" href="image/favs3g.ico" />
	<link rel="stylesheet" media="screen" type="text/css" href="css/style_div.css"> 
	<title> Identification</title>
	<script type="text/javascript"> // fonction pour empeché le retour arrière boutton du navigateur
	function noBack(){window.history.forward()}
	noBack();
	window.onload=noBack;
	window.onpageshow=function(evt){if(evt.persisted)noBack()}
	window.onunload=function(){void(0)}
	</script> 
</head>
<body>
 
	<div class="entete">
			<div class="date">
				        <?php
						$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
						$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
						$heure_courante = date ("H:i");
						$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y")."     ".$heure_courante;
						echo "Date:   ". $dateDuJour;
 
						?> 
 
			</div>
			<div class="h1">
				<h1> S-3-G: Identification </h1>
		</div>
	</div>
		<div class="contenu"> 
 
		<form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"  autocomplete='off'>
 
			<p class="labelident"><label for="ident">Identifiant:</label> 
					<input type="text" name="ident" value="<?php if (isset($_POST['ident']))echo stripslashes(htmlentities(trim($_POST['ident']))); ?>" size="28" maxlength="23" id="ident" autofocus/>
					<?php
					 	if (!empty($erreurs_msg['ident'])) 
						{
						include('./codephp/fonctions.inc.php');
						affichage_texte ("3", "red",$erreurs_msg['ident']); // fonction js pour afficher le msg en rouge
 
						} 
					?>
			</p>
			<p class="labelpass"><label for="pass">Mot de passe:</label> 
					<input type="password"  name="pass" value="<?php if (isset($_POST['pass']))echo stripslashes(htmlentities(trim($_POST['pass']))); ?>" " size="28" maxlength="23" id="pass"/>
					<?php
					 	if (!empty($erreurs_msg['pass'])) 
						{
						include('./codephp/fonctions.inc.php'); 
						affichage_texte ("3", "red",$erreurs_msg['pass']); // fonction pour afficher le msg en rouge
 
						} 
					?>
 
			</p>
			<p>
				<label>Texte de l'image</label> : <input type="text" name="code" size="6" />
 
			</p>
 
			<p>
			<img src="./mod/verif_code_gen.php" alt="Texte de l'image" />
			</p>
			<?php
					 	if (!empty($erreurs_msg['verif_code'])) 
						{
						include('./codephp/fonctions.inc.php'); 
						affichage_texte ("3", "red",$erreurs_msg['verif_code']); // fonction pour afficher le msg en rouge erreur captcha
 
						} 
			?>
			<p class="buttons">
				<button type="submit" name="sident" value="envoyer" >Connexion</button>
			</p>
 
 
		</form>
	</div> 
<footer class="pied">
	<p> Copyright © s3g - Conception kacinet <p>
</footer>
 
</body>
 
</html>
erreur : affichage
�PNG  IHDRZ s��iIDATh��ے� �ɾ�/�G/�2��&qg�Y���(՟&��;8������g��*��ʡ8B�)~yV#؞���ʡ�r(��[�����c��n\I��z{2 Ox�u�FDD4׽wi7���J�y��
j'arrive pas a cerner l'origine de l'erreur ( c mon premier captcha)