include et passage de paramètres ; propriétés d'images ...

Eléphanteau du PHP | 14 Messages

21 févr. 2007, 15:58

Bonjour à tous, j'ai deux questions à vous poser.

La première est : comment faire pour passer des paramètres à travers un include.
Parce que avec : include("monfichierphp?var=valeur"); et bien ça ne fonctionne pas, donc comment faire ?

La seconde est : comment cacher la source d'une photo ?
Parce que quand on fait clic droit sur une photo/image et bien on voit tout le chemin qui mène à la photo. Comment cacher ce chemin ?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 févr. 2007, 16:10

Lorsque tu fais appel à la fonction include, tu vas simplement intégrer le code de la page appellée à l'emplacement spécifiér et l'exécuter comme s'il s'agissait d'un seul et même script. Il suffit donc que ta variable soit définie pour pouvoir l'utiliser :
$var = "valeur";
include("monfichierphp"); 
Pour le chemin de l'image, tu ne peux pas le masquer ou empêcher le navigateur de l'indiquer. Au mieux tu dois pouvoir faire un script php qui génèrera une image à partir de l'originale à partir d'un paramètre spécifique (et peut être un tableau de correspondance) lui permettant de savoir quelle image ouvrir.
Mais je ne vois vraiment pas l'intérêt.. Pourquoi veux tu cacher cette adresse ? il y a peut être de meilleures solution, voire des solutions de contournement, ca serait bête d'y passer du temps pour rien.. :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

21 févr. 2007, 16:11

  1. L'include va coller le code du fichier inclus directement dans ta page.
    Les variables y seront donc traitées directement, comme dans ta page principale.
    Aucun besoin de préciser des paramètres.
  2. Impossible.
    À partir du moment où une image s'affiche sur un navigateur,
    cela signifie qu'elle a été téléchargée sur le poste du client
    (dans les fichiers temporaires, cache du navigateur).
    Peu importe donc que le chemin de l'image soit indiqué ou non,
    l'image ne peut être protégée efficacement contre la sauvegarde.
    Toutes les solutions à base d'interdiction de clic droit
    ne sont dissuasives que pour les béotiens.

Eléphanteau du PHP | 14 Messages

21 févr. 2007, 16:21

Ok, pour le include mais j'ai tenté de traiter directement les même variables que dans le fichier appelant mais ça n'avait pas fonctionné ... donc j'ai fait autrement. Mais faudra que je revois ça, j'avais dû faire une autre erreur.


Sinon, pour les images, j'explique mon cas :
- Dans mon site il y a une partie pour se connecter
- Si l'utilisateur n'est pas connecté alors il peut voir les images qu'en miniature ...
- Si l'utilisateur est connecté alors il peut vois ces images en grand ...

Le problème c'est que en faisant un clic droit (puis propriété), l'utilisateur non connecté peut voir l'adresse de la photo puis la taper directement dans la barre d'adresse pour ouvrir la photo .... c'est pour ça que je voudrais "cacher" cette adresse.

Et je voulais savoir si l'image enregistrée chez le client était en taille réelle même si elle est affichée en miniature.
Petite précision (qui ne change peut-être rien) : l'image est redimentionnée en php

Eléphant du PHP | 164 Messages

21 févr. 2007, 16:40

dans ce cas, il faut redimensionner avec la librairie php tes images, ainsi même si l'utilisateur tape l'adresse dans la barre d'adresse il verra l'image toujours de la même taille.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 févr. 2007, 16:41

Modifier la taille d'une image en spécifiant un attribut width ou height dans le code html n'impacte en aucune façon le fichier. C'est juste une question d'affichage. Je suppose que c'est de cela qu'il s'agit quand tu dis que l'image est redimensionnée par php ? Si en revanche tu ouvres l'image que tu la redimensionne et que tu génères un flux de la miniature à la taille désirée, alors c'est effectivement l'image miniature qui sera stockée en cache et non l'originale.

Sinon, pour tes images, tu peux faire deux dossiers, l'un de miniatures, l'autre d'images normales et protéger ce dernier avec un htaccess pour que seuls les utilisateurs authentifiés y aient accès...

Ou sans htaccess avec un nom farfelu pour les originaux (imageKL34JLMKJZER2342342LMJZER.jpg) et une table de correspondance, ou une fonction de décryptage permettant de le retrouver à partir de la miniature...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 164 Messages

21 févr. 2007, 16:56

oui tout à fait,

je parlais de la librairie GD, il s'agit donc bien de générer l'image avec Php avec la taille que l'on souhaite.