Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 26-07-2006 09:49:45

dorjax
Membre
Date d'inscription: 26-07-2006
Messages: 9

A deux doigts d'un popup image en PHP

Bonjour, j'ai presque trouvé comment ouvrir une image en popup avec php (et JS bien sûr).
J'appelle l'image avec ça dans un flichier HTML :

Code:

<a href="popup.php" target="pop" onClick="OuvrePourVoir(this.href,800,600);return false;"><img src="http://monsite/images/petiteimage.jpg" width="150" height="112" border="0" alt="Cliquez pour agrandir"></a>

dans le script popu.php j'ai mis :

Code:

<?php
$image = "http://monsite/images/grandeimage.jpg";
readfile($image);
?>

Et vous savez quoi ? ça marche d'enfer !-))) C'est un bon plan, il me semble, car ainsi l'URL de mes grandes images est bien cachée des internautes.

Mon problème est que j'ai des centaines d'images et que je vais pas faire un php par image. Aussi je voudrais "passer" en paramètre le nom de l'image et c'est là que tout se complique. J'ai essayé les codes suivants :

Code:

<a href="popup.php?img=grandeimage.jpg" target="pop" onClick="OuvrePourVoir(this.href,800,600);
return false;"><img src="http://monsite/images/petiteimage.jpg" width="150" height="112" border="0"
alt="Cliquez pour agrandir"></a>

et dans le php :

Code:

<?php
$image = "http://monsite/images/" & $img;
readfile($image);
?>

Bien entendu, ça ne marche pas, la fenêtre popup s'affiche, mais vide, à la place de l'image il y a une croix sur fond rouge, donc comme s'il n'y avait pas d'image à l'adresse.

Ma question porte donc sur la syntaxe exacte, d'une part, du lien :

Code:

href="popup.php?img=grandeimage.jpg"

- est-ce que l'extension précédée du point . ne pose pas problème ?

D'autre part, la syntaxe exacte dans le fichier PHP :

- faut-il un GET quelque chose pour donner une valeur à $img ?

- comment concaténer chaîne et variable dans :

Code:

$image = "http://monsite/images/" & $img;

Remarque : dans le lien de la page HTML on pourrait se passer de l'extension du fichier image (.jpg), ce qui résoud le premier problème (mes images sont nommées du style "image-001", ce qui ne doit pas poser de problème pour passer cette chaîne dans la variable img). Mais alors, comment concaténer ".jpg" dans le fichier php ? (j'ai essayé avec + au lieu de &, avec des ' des ", mais ça marche pas mieux...).

Merci pour celui(ceux) qui aura(ont) la réponse à mes questions.

Hors ligne

 

#2 26-07-2006 10:42:07

Ajoloca
Membre
Date d'inscription: 07-10-2005
Messages: 276

Re: A deux doigts d'un popup image en PHP

Une solution simple,
Tu créés dans ta première page un champ caché qui contiendra le nom de ton image (avec l'extension)

Code:

<input type="hidden" id="chpImgName" id="chpImgName" value="" />

Tu as besoin des deux attributs id (pour JS) et name (pou PHP)
Dans ton onclick, avant d'envoyer l'image tu places le nom de ton image dans le champ

Code:

onClick="JavaScript:document.getElementById('chpImgName').value = 'nom_image'; OuvrePourVoir(this.href,800,600);return false;"

et dans ton php tu récupères le nom de l'image par

Code:

if(isset($_POST['chpImgName']) && !empty($_POST['chpImgName'])){
  $image = "http://monsite/images/" . $_POST['chpImgName'];
  readfile($image);
}
else{
  // Tu gères l'erreur
}

Dernière modification par Ajoloca (26-07-2006 10:43:12)

Hors ligne

 

#3 26-07-2006 18:05:39

dorjax
Membre
Date d'inscription: 26-07-2006
Messages: 9

Re: A deux doigts d'un popup image en PHP

D'abord merci Ajoloca pour ton aide. Malheureusement, ça ne marche pas, ça affiche carré blanc et croix rouge au milieu. J'ai bien vérifié le chemin.

Concernant le champ caché, y'aurait pas un id en trop ? Ou bien le second id doit-il être remplacé par name ? C'est correct ça 2 conteneurs dans un champ input type ? Est-ce que je dois mettre une balise form ? Et préciser la method post ? Tu vois je ne manque pas de questions, mais si tu me réponds que je dois mettre juste ce que tu proposes c'est OK, je veux être certain que tu me fais pas des sous-entendus de code, car je ne suis pas un grand expert.

Donc au final, moi j'ai un code comme ça pour le HTML :

Code:

<input type="hidden" id="chpImgName" value="grandeimage-001.jpg" />
<a href="popup.php" target="pop" onClick="JavaScript:document.getElementById('chpImgName').value = 'grandeimage-001.jpg'; OuvrePourVoir(this.href,800,600);return false;"><img src="../images/thumbnails/petiteimage-001.jpg" width="150" height="112" border="0" alt="Cliquez pour agrandir"></a>

Et comme ça pour le php :

Code:

<?php
if(isset($_POST['chpImgName']) && !empty($_POST['chpImgName'])){
  $image = "http://monsite/images/" . $_POST['chpImgName'];
  readfile($image);
}
else{
  // Tu gères l'erreur
}
?>

Voilà, comme ça marche pas, si tu peux voir ce qui va pas dans ces codes. Le PHP ne peut vraiment pas passer le nom d'un fichier en arguments d'une façon plus simple ? M'enfin... Encore merci.

Hors ligne

 

#4 26-07-2006 18:30:25

Ajoloca
Membre
Date d'inscription: 07-10-2005
Messages: 276

Re: A deux doigts d'un popup image en PHP

Effectivement ça ne marchera pas. La solution que je t'ai donnée fonctionnerait si tu transmetais une FORM, ce qui n'est pas le cas

Je crois que avec ta première approche ça devrait marcher en modifiant la façon de récupérer les infos dans ton PHP, essaye donc ce-ci

Ton code

Code:

<a href="popup.php?img=grandeimage.jpg" target="pop" onClick="OuvrePourVoir(this.href,800,600);
return false;"><img src="http://monsite/images/petiteimage.jpg" width="150" height="112" border="0"
alt="Cliquez pour agrandir"></a>

la page de récupéartion PHP

Code:

<?php
if(isset($_GET['img']) && !empty($_GET['img'])){
  $image = "http://monsite/images/" . $_GET['img'];
  readfile($image);
}
else{
  // Tu gères l'erreur
}
?>

Hors ligne

 

#5 27-07-2006 00:38:27

dorjax
Membre
Date d'inscription: 26-07-2006
Messages: 9

Re: A deux doigts d'un popup image en PHP

He bien Ajoloca, encore un grand merci, cette fois ça marche impec !-)))

Hors ligne