Afficher une variable dans une image php

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 : Afficher une variable dans une image php

Re: Afficher une variable dans une image php

par xTG » 08 mars 2012, 14:32

Bah si justement c'est une question de "comment remplir l'array" ton souci...
Tu ne comprends absolument pas ce qu'est une variable et comment la manipuler.
Tu as vraiment besoin de prendre du recul car là tu remue la semoule. :?

Ta variable $fichier qui est un array a tout à fait la structure voulue pour la variable de session, donc il suffit de copier son contenu en session...

Re: Afficher une variable dans une image php

par Switi » 08 mars 2012, 12:41

Oui, je l'ai lue.
Ce n'est pas une question d'arrays ici. du coté des arrays, c'est bon, mais maintenant, c'est du coté de la variable, qui doit changer de nom pour chaque fichier et afficher ces noms là tous ensemble sur la même page.

Mais je crois que je vais procéder autrement. Au lieu de faire ça, je vais faire un tableau HTML avec le nom des fichiers comme dans un FTP. Ce sera mieux pour l'oeil.

Merci quand même. C'est un niveau trop haut pour moi, celui là. Je n'ai pas encore suffisamment d'expérience dans le PHP pour me lancer dans un truc aussi compliqué.
Je te remercie pour ta patience, pour ton aide, et pour le temps que tu as consacré à m'aider. :)

Re: Afficher une variable dans une image php

par xTG » 08 mars 2012, 11:13

Donc tu ne sais pas manipuler un array comme je te l'ai fait remarqué quelques messages plus haut...
As-tu eu au moins l'idée d'aller voir le lien de la documentation et de la lire ?

Re: Afficher une variable dans une image php

par Switi » 08 mars 2012, 00:34

Je comprends tout...

Mais ce n'est pas automatique dans ce que tu m'as donné.. Je dois rentrer le nom des fichiers manuellement.
Je sais pas comment je pourrais être plus clair :/

Les fichiers uploadés doivent directement avoir leur nom sur l'image sans que j'y touche.

Re: Afficher une variable dans une image php

par xTG » 07 mars 2012, 23:49

C'est bien la peine que je te donne un code complet...
C'est quoi que tu ne comprends pas dans ce que je t'ai donné ?

Re: Afficher une variable dans une image php

par Switi » 07 mars 2012, 21:09

Simplement parce que je ne sais pas comment faire D:

Re: Afficher une variable dans une image php

par xTG » 07 mars 2012, 20:39

Alors là je dois bien avouer que c'est la première fois que je vois quelqu'un tout enrubanner comme ça...
Tu te rends compte que tu créés une usine à gaz ?
Pourquoi tu ne pars pas sur ce que je t'ai montré ? C'est simple, optimisé et facile.
Mais alors surtout pourquoi cet implode qui casse toute la magie des array ! :shock:

Et pour le coup du count et compagnie... C'est l'art de recréer la magie du foreach. ;)

Re: Afficher une variable dans une image php

par Switi » 07 mars 2012, 20:04

Tu pourrais m'aider pour réorganiser mon code ?

j'ai : foreach($fichien as $lien) {
je voudrais le transformer en for($i = 1; $i <= $nbfichier; $i++) {
Avec : $nbfichier = count(glob("upload/" . "*"));

J'ai donc fait un : $lien = implode(",", $fichier);
pour récupérer la valeur de l'array contenue dans $fichier.

Mais maintenant, je n'arrive pas à faire varier la variable $lien, ducoup, pour chaque upload, il y a bien "numéro 1" "numéro 2" "numéro 3" mais dans le lien de chaque image il y a tous les fichiers contenus dans /upload..

Re: Afficher une variable dans une image php

par xTG » 07 mars 2012, 12:24

Donc le tableau de session est tout indiqué.
Cela aurait été une BDD tu aurais pu passer par la transmission de la clé primaire à la place de ce système.

Sinon ton problème semble être la manipulation des array, je ne peux que te conseiller la lecture de la doc : http://fr.php.net/manual/fr/language.types.array.php

Re: Afficher une variable dans une image php

par Switi » 07 mars 2012, 12:21

<?php
$dir_nom = 'upload/';
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas');
$fichier= array();
$dossier= array();

while($element = readdir($dir)) {
	if($element != '.' && $element != '..') {
		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
		else {$dossier[] = $element;}
	}
}

closedir($dir);
if(!empty($fichier)){
	sort($fichier);
	echo "<ul>\n";
		foreach($fichier as $lien) {
				$_SESSION['lien'] = $lien;
				$last = $lien[strlen($lien)-1];
				if($last == "p") 
				{
					echo "<a href=\"$dir_nom/$lien \"><img src=image.php></a>";
				}
				else
					echo "<a href=\"$dir_nom/$lien \"><img src=\"images/itunes.png\"><br>$lien<br></a>";
		}
	echo "</ul>";
 }
?>

Re: Afficher une variable dans une image php

par xTG » 07 mars 2012, 10:28

Ces noms de fichier ils viennent d'où ? D'une base de données ou d'un parcours de dossier ?

Re: Afficher une variable dans une image php

par Switi » 07 mars 2012, 01:32

T'aime bien oublier les i de SESSION toi ;)
et les g de img x)

Mais sinon, c'est fonctionnel. Le seul soucis c'est que là, je dois intéragir manuellement avec le nom des fichiers.
Alors que normalement, quand tu upload un fichier, il doit se retrouver directement à l'accueil avec son icone et son nom dessus.

Parce que ducoup ça revient à faire :
$_SESSION['monTableau'] = array(
 0 => $lien,
 1 => $lien,
 2 => $lien

Re: Afficher une variable dans une image php

par xTG » 06 mars 2012, 23:48

Exemple :
<?php
session_start();
$_SESSION['monTableau'] = array(
 0 => 'numéro 0',
 1 => 'numéro 1',
 2 => 'numéro 2'
);
echo '<im src="image.php?index=0" />';
echo '<im src="image.php?index=1" />';
echo '<im src="image.php?index=2" />';
?>
<?php
session_start();
header('Content-type: image/png');
$img = imagecreatefrompng('images/FL.png');
$noir = imagecolorallocate($img, 0, 0, 0);
$texte= (isSet($_SESSION['monTableau']) && isSet($_GET['index']) ? $_SESSON['monTableau'][$_GET['index']] : '';
imagettftext($img, 20, 0, 15, 30, $noir, 'chopin_script.ttf', $texte);
imagepng($img);
?>

Re: Afficher une variable dans une image php

par Switi » 06 mars 2012, 22:58

Je n'y arrive pas..

le $lien indique le nom du fichier et non pas l'adresse URL de ma page. Je sais pas si tu avais compris. Car mon truc si tu veux, c'est un système d'upload.

En gros, on peut uploader deux sortes de fichiers :
- FLP
- MP3 / WAV

Si c'est un FLP, il y a une image (FL.png) avec le nom ($lien) du fichier qui est sensé être marqué dessus.

Donc mon code :
foreach($fichier as $lien) {
				$last = $lien[strlen($lien)-1];
				if($last == "p") {
					$_SESSION['lien'] = $lien;
					echo "<a href=\"$dir_nom/$lien \"><img src=image.php></a>";
				}
				else
					echo "<a href=\"$dir_nom/$lien \"><img src=\"images/itunes.png\"><br>$lien<br></a>"; //Ici je ne me suis pas encore occupé de l'autre type de fichier, mais une fois que j'aurais réglé le premier, je passerai à celui la.
		}
Veut dire que pour chaque fichier uploadé (il peut y en avoir 2 comme 20..) il va afficher l'image avec le nom du fichier dessus.

J'espère que j'ai été précis dans ma demande..

Ce que tu me demandes de faire avec un tableau $_GET me semble impossible.

Re: Afficher une variable dans une image php

par xTG » 06 mars 2012, 20:40

Non ça ne fonctionnera pas ainsi...
Il faut savoir que le PHP s'exécute côté serveur et le HTML côté client.
Donc lorsque le HTML s'affiche le PHP a déjà fini.
Mais une balise IMG fait une requête pour chaque image au serveur.

Donc si tu as deux images avec ce script on pourra dérouler le fonctionnement ainsi :
Exécution PHP
Affichage résultat HTML
Requête IMG 1 => Exécution PHP
Requête IMG 2 => Exécution PHP

En gros c'est comme si tu naviguais vers deux liens différents l'affichage des deux images.

Donc pour résoudre ce problème il faut utiliser un tableau de lien en session (comme je te l'avais proposé au début) et utiliser un paramètre dans l'appel du script image (GET) avec l'index du tableau contenant l'url.
Ainsi les liens sont toujours côté serveur et l'utilisateur ne peut pas les modifier.
Le pire qu'il puisse faire c'est de mettre un autre index mais il sera limité aux valeurs du tableau et ne pourra donc pas afficher n'importe quelle url.