Afficher une variable dans une image php

Eléphanteau du PHP | 17 Messages

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.

ViPHP
xTG
ViPHP | 7331 Messages

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);
?>

Eléphanteau du PHP | 17 Messages

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

ViPHP
xTG
ViPHP | 7331 Messages

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 ?

Eléphanteau du PHP | 17 Messages

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>";
 }
?>

ViPHP
xTG
ViPHP | 7331 Messages

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

Eléphanteau du PHP | 17 Messages

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..

ViPHP
xTG
ViPHP | 7331 Messages

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. ;)

Eléphanteau du PHP | 17 Messages

07 mars 2012, 21:09

Simplement parce que je ne sais pas comment faire D:

ViPHP
xTG
ViPHP | 7331 Messages

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é ?

Eléphanteau du PHP | 17 Messages

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.

ViPHP
xTG
ViPHP | 7331 Messages

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 ?

Eléphanteau du PHP | 17 Messages

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. :)

ViPHP
xTG
ViPHP | 7331 Messages

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...