Texte dans une image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Texte dans une image

par gesualda » 11 févr. 2006, 13:53

Désolé Cyrano, :oops: :oops: j'avais oublié d'enregistrer le fichier, donc non reconnu et il gardait la valeur d'avant.
Ca fonctionne maintenant.

Merci beaucoup de ton aide

@ bientot 8)

par gesualda » 11 févr. 2006, 13:50

En fait l'image est créé avec la couleur de fond sans problème, la variable de session s'affiche bien en dessous, mais absoument pas dans l'image proprement dite.
c'est bizarre ce truc !

par Cyrano » 11 févr. 2006, 13:34

:shock: Le code que j'ai proposé fonctionne pourtant chez moi et j'ai d'une part la série de chiffres dans l'image et d'autre part la même série inscrite en dessous...

par gesualda » 11 févr. 2006, 13:29

Salut Cyrano,

merci d'avoir répondu aussi vite, mais en appliquant cela, en fait la valeur de
$_SESSION['chiffre']
n'apparait plus dans le l'image et moi j'aimerai que les chiffres soit également dans l'image en plus d'etre à l'extérieur :oops:

par Cyrano » 11 févr. 2006, 13:03

Parce que le fichier en question génère une image, pas une page html. Il faut donc procéder différemment. Tu as besoins de deux fichiers:
- Une page php qui va créer la page HTML : affiche_captcha.php;
- le fichier qui va générer l'image captcha.php;
Ça donne ceci:

affiche_captcha.php
<?php
session_start();
$chiffre = rand(120000,600000); // Chiffre aléatoire
$_SESSION['chiffre'] = $chiffre; // Mise en session du chiffre
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Affichage d'une image générée</title>
<meta http-equiv="Content-type" content="image/png" />
</head>
<body>
<img src="./captcha.php" alt="" />
<?php
echo("<p>". $_SESSION['chiffre'] ."</p>");
?>
</body>
</html>
captcha.php
<?php
session_start();
$im = imagecreate (70, 20);   
$background_color = imagecolorallocate ($im, 150, 100, 120);
$text_color = imagecolorallocate ($im, 255, 255, 255);
imagestring ($im, 4, 10, 2,  $_SESSION['chiffre'], $text_color);
imagepng ($im);
?>

Texte dans une image

par gesualda » 11 févr. 2006, 12:28

Bonjour,

voici mon problème:
<?php
session_start();
$chiffre = rand(120000,600000); // Chiffre aléatoire
$_SESSION['chiffre'] = $chiffre; // Mise en session du chiffre

header ("Content-type: image/png");
$im = imagecreate (70, 20);   
$background_color = imagecolorallocate ($im, 150, 100, 120);
$text_color = imagecolorallocate ($im, 255, 255, 255);
imagestring ($im, 4, 10, 2,  $_SESSION['chiffre'], $text_color);
imagepng ($im);
?>
Cela à pour but de m'afficher un numéro aléatoire dans une image, et cela fonctionne. Mais si je rajoute
<?php echo $_SESSION['chiffre'] ?>
en dessous il devrait m'afficher également les numéros en dehors de l'image, mais ce n'est pas le cas.

De quoi cela peut-il provenir ?

Merci

:lol: