Votre question

Textbox qui definit une variable PHP

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
28 Février 2008 15:34:24

Salut a tous!

Je debute dans le PHP, et j'ai un tout petit probleme:
je ne sais pas comment faire pour que la valeur d'une Textbox peut faire un "set" d'une variable.

Si quelqun s'y connait pas mal en PHP,
merci de bien vouloir m'aider. [:alysse31:30]

Kouki1000

Autres pages sur : textbox definit variable php

28 Février 2008 16:07:00

Aidez-moi svp... Merci d'avance pour les reponses
28 Février 2008 22:02:37

salut, faut d'abord comprendre ce que tu demande :) 
il n'y a pas de textbox sous php...
mais je crois que ca t'aidera de faire un tour par:
http://phpdebutant.org/
Contenus similaires
28 Février 2008 22:25:09

j'débute aussi...
Tu veux definir une variable par un champ de texte ?

Merci coca pour le site, j'marque page !
29 Février 2008 14:46:55

Merci coca!
29 Février 2008 14:48:23

Tu veux definir une variable par un champ de texte ?
29 Février 2008 15:34:04

Oui.
C'est pour charger un fichier image avec imagecreatefromjpeg('banniere'$num'.jpg');.

Je crois que cela ne marche pas car il y a cette erreur:

Parse error: syntax error, unexpected T_VARIABLE in /mnt/112/sdb/1/3/monsite/image/generation_banniere2.php on line 4

Voici le code PHP de toute la page:

<?php
$num = $_POST['num'];
// Nouvelle image 200*100
$im = imagecreatefromjpeg('banniere'$num'.jpg');
$textcolor = imagecolorallocate($im, 0, 0, 0);
$tex = $_GET['text'];
// write the string at the top left
imagestring($im, 7, 20, 20, $tex, $textcolor);

// Affichage de l'image
header("Content-type: image/png");
imagepng($im);
?>

Et le $_POST['num']; c'est depuis une page HTML ou on choisit le numero a partir d'un champ de texte.

Voici le code de la page HTML:

\\Exposé des differentes bannieres
<img src="banniere1.jpg" width="468" height="60">Banniere no 1
<img src="banniere2.jpg" width="468" height="60">Banniere no 2
<img src="banniere3.jpg" width="468" height="60">Banniere no 3
<form name="form1" action="generation_banniere2.php">
<input type="text" name="num">
<br>
<input type="submit" name="Submit" value="Valider">
</form>
Spoiler
Si j'en demande trop, ARRETEZ MOI TOUT DE SUITE! [:alysse31:30]
29 Février 2008 15:41:29

  1. $im = imagecreatefromjpeg('banniere' . $num . '.jpg');

ou
  1. $im = imagecreatefromjpeg("banniere${num}.jpg");

29 Février 2008 15:43:28

correction de la page html :
  1. <form method="post" name="form1" action="generation_banniere2.php">
29 Février 2008 15:54:26

Merci.

Ca a l'air de mieux marcher mais...
Spoiler
Encore un probleme:

Warning: imagecreatefromjpeg(banniere.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /mnt/112/sdb/1/3/monsite/image/generation_banniere2.php on line 4.

Il ne met pas le "1" dans imagecreatefromjpeg(banniere.jpg);
Juste apres le "erre" de banniere.
PS: j'ai essayé que le $im = imagecreatefromjpeg('banniere' . $num . '.jpg'); de coca.
29 Février 2008 15:58:33

La syntaxe de coca est bonne.

fait un
  1. echo "-$num-";
pour voir le contenue de ta variable $num. Si elle est vide c'est que rien n'a été reçut par post. Tu a bien mis le
  1. method="post"
?
29 Février 2008 16:11:46

Spoiler
Merde

Ps: ne pas lire le spoiler

J'ai pas mis le
method="post"
29 Février 2008 16:19:32

Bin faut le mettre.
et le echo $num il t'affiche quoi ? faut le mettre après le $num = $_POST[];
29 Février 2008 16:33:18

Echo affiche: --
Alors que dans le champ, j'ai mis: "a2"
29 Février 2008 16:40:26

donc ça veut bien dire que tu reçoit rien par post.
refile ton code complet pour voir (les deux fichiers)
29 Février 2008 17:00:38

Code aa.php (lis bien le post pour comprendre le "aa.php")

<?php
$num = $_POST['num'];
echo "-$num-";
?>

Et formulaire.htm:

<img src="banniere1.jpg" width="468" height="60">Banniere no 1
<img src="banniere2.jpg" width="468" height="60">Banniere no 2
<img src="banniere3.jpg" width="468" height="60">Banniere no 3
<form action="aa.php" method="post" name="form1">
<input type="text" name="num">
<br>
<input type="submit" name="Submit" value="Valider">
</form>

J'ai remplace le "creation_banniere2.php" par "aa.php" (nouveau fichier, nom bidon) pour pas bouziller le fichier creation_banniere2.php
29 Février 2008 17:14:06

et bien ça marche ça ! (je viens de tester)
par contre ce serait bien de corriger les erreurs :

  1. <img src="banniere1.jpg" width="468" height="60" alt="b1">Banniere no 1
  2. <img src="banniere2.jpg" width="468" height="60" alt="b2">Banniere no 2
  3. <img src="banniere3.jpg" width="468" height="60" alt="b3">Banniere no 3


Sinon essai par method=get (donc faut aussi mettre GET dans le php)
29 Février 2008 17:31:37

Avec GET, ca marche.
Mais j'ai essayé que avec echo.
29 Février 2008 17:32:31

euuu ... c'est quoi ton serveur/hebergeur ?
29 Février 2008 17:34:15

Hebergeur: Free
Server qui suporte PHP 1,2,3 et 4
29 Février 2008 17:41:07

Mon probleme est resolu!
J'arrive a faire le truc avec GET.
Merci!

Euh...
Mais j'ai encore besoin d'un peu d'aide.
Savez-vous comment on peut changer la police d'écriture de
imagestring(); ?
Car c'est pour un générateur de bannieres ( et la police de base... pas cool!)
Merci d'avance!
29 Février 2008 18:02:14

un site à connaitre pour ça :
http://fr2.php.net/manual/fr/index.php

la solution pour ton probleme :

  1. $font = imageloadfont("times.ttf");
  2. imagestring($im, $font, 20, 20, $tex, $textcolor);

ou tu peux carrément essayer ça (pareil en une ligne, mais je sais pas si ça marche) :
  1. imagestring($im, imageloadfont("times.ttf"), 20, 20, $tex, $textcolor);



N'empeche c'est pas normal que GET marche et POST ne marche pas.
29 Février 2008 18:40:57

MERCI BEAUCOUP!!

Un dernier petit truc: peut-on animer une image avec du PHP (générer plusieurs images avec du texte et les annimer)?

Si c'est pas possible, c'est pas grave![:alysse31:30] [:alysse31:30]
29 Février 2008 18:55:25

en php non, en javascript oui (mais évite !), mais c'est plus conseillé de faire soit un gif, soit un flash : c'est fait pour.
29 Février 2008 19:19:00

Oui, mais c pour un créateur de bannieres en ligne!

Euh...
Pour la police d'écriture:


Warning: imageloadfont(times.ttf) [function.imageloadfont]: failed to open stream: No such file or directory in /mnt/112/sdb/1/3/monsite/image/generation_banniere2.php on line 8

J'ai mis les polices sur le serveur.
29 Février 2008 22:19:33

il faut peut etre des " ou ' et il est sans doute sensible à la case (majuscules ou non)
exemple :
  1. imageloadfont("times.ttf")
  2. ou
  3. imageloadfont('times.ttf')


Les " ou ' te permettrons de choisir des polices avec des espaces dans le nom par exemple.
2 Mars 2008 15:52:10

Meme probleme.
2 Mars 2008 18:48:32

tu as toujours le me problème ? ou c'est résolut ?
(envoie ton code si ça marche pas ...)
2 Mars 2008 19:55:33

le fichier times.ttf doit exister dans le répertoire de ton script, ou alors, il te faut mettre le chemin complet vers le site.
11 Mars 2008 17:07:39

Pourtant, times.ttf existe dans le dossier.
11 Mars 2008 21:00:20

le nom n'est peut etre pas tout en minuscules
12 Mars 2008 13:55:28

Code php: minuscules
Nom fichier: minuscules
12 Mars 2008 14:29:50

bin essai de mettre le chemin complet.
15 Mars 2008 18:12:26

...

Warning: imageloadfont() [function.imageloadfont]: Error reading font in /mnt/112/sdb/1/3/nww/monsite/generation-banniere.php on line 8


Code PHP:

<?php
$num = $_GET['num'];
// Nouvelle image
$im = imagecreatefromjpeg('banniere' . $num . '.jpg');
$textcolor = imagecolorallocate($im, 0, 0, 0);
$tex = $_GET['text']; // charger le texte a ecrire
$pl = $_GET['pl']; // nom de la police dans la variable
$font = imageloadfont('http://monsite.fr/trebucbd.ttf'); // ecrire le texte
imagestring($im, $font, 20, 20, $tex, $textcolor);
switch( $frm ) // pour le format de sortie (jpg ou png)
{
case 1:
header("Content-type: image/jpeg");
imagejpeg($im);
break;

case 2:
header("Content-type: image/png");
imagepng($im);
break;

default: // dans tous les autres cas
echo '<b>Erreur lors de la creation:</b><br>Le format de fichier n\'est pas spécifié';
}
?>


Désolé de vous demander tout ça. :s
18 Mars 2008 17:45:40

Juste pour le truc pour animer une image en php:

J'AI TROUVé!
18 Mars 2008 21:01:13

Alors tu en es où ?
20 Mars 2008 19:06:38

Warning: Wrong parameter count for imagettftext() in /mnt/112/sdb/1/3/monsite/image/generation_banniere2.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at mnt/112/sdb/1/3/nww/monsite/generation_banniere2.php:8) in /mnt/112/sdb/1/3/monsite/generation_banniere2.php on line 19

Code PHP:

<?php
$num = $_GET['num'];
// Nouvelle image
$im = imagecreatefromjpeg('banniere' . $num . '.jpg');
$textcolor = imagecolorallocate($im, 0, 0, 0);
$tex = $_GET['text']; // charger le texte a ecrire
$pl = $_GET['pl']; // nom de la police dans la variable
$font = imagettftext('http://monsite.fr/trebucbd.ttf'); // ecrire le texte
imagestring($im, $font, 20, 20, $tex, $textcolor);
switch( $frm ) // pour le format de sortie (jpg ou png)
{
case 1:
header("Content-type: image/jpeg");
imagejpeg($im);
break;

case 2:
header("Content-type: image/png");
imagepng($im);
break;

default: // dans tous les autres cas
echo '<b>Erreur lors de la creation:</b><br>Le format de fichier n\'est pas spécifié';
}
?>
20 Mars 2008 19:34:42

imagettftext ne s'utilise pas comme ça (cf la doc que j'ai cité plus haut).
essais ça :

  1. $txt = "texte sur image";
  2. $img = imagecreatetruecolor($largeur_img, $hauteur_img);
  3. $largeur_img = 468;
  4. $hauteur_img = 60;
  5. $pos_x = 0;
  6. $pos_t = 0;
  7. $color_txt = imagecolorallocate($img, 255, 255, 255);
  8.  
  9. imagettftext($img, 12, 0, $pos_x, $pos_y, $color_txt, "police.ttf", $text)


va voir l'exemple, il est très bien fait.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS