IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Galerie photos] - liens brisés [PHP 4]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [Galerie photos] - liens brisés
    Bonjour, et joyeux Noël,
    J'ai mis au point des routines d'affichage de photos que j'ai mis en ligne provisoirement à cette adresse: http://berlo.web.free.fr/CO/Diaporama.php.
    Alors que ça marche parfaitement en local, j'ai une partie des diapos qui s'affiche en "liens brisés" dans la version en ligne.
    Je suis sûr de la validité de mes liens puisque:
    1) ils ont générés automatiquement par lecture du contenu du dossier,
    2) c'est le même lien et la même routine qui affiche la photo en grand quand on clique sur la diapos,
    3) si je rafraichis la planche contact, ce ne sont jamais les mêmes diapos qui déconnent.
    J'ai essayé différents paramétrages du cache sans succès;
    Quelqu'un aurait-il une idée?
    Merci d'avance

    Pour ceux que cela interesse, voici le code d'affichage utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php 
    $FontRep="../Commun/"; 
    $file=urldecode($_GET["Fichier"]);
    list($WMax,$HMax)=explode("x",$_GET["Dim"]);
    list($width, $height) = getimagesize($file);
    $percent=max($width/$WMax,$height/$HMax); 
     
    // Content type
    header('Content-type: image/jpeg');
    // Calcul des nouvelles dimensions
    if ($percent>1) {
    		$newwidth = (int)$width / $percent;
    		$newheight = (int)$height / $percent;
    		// chargement
    		$thumb = imagecreatetruecolor($newwidth, $newheight);
    		imageinterlace($thumb, true);
    		$source = imagecreatefromjpeg($file);
    		// Redimensionnement
    		imagecopyresampled ($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    		}
    	else {
    		$thumb = imagecreatefromjpeg($file);
    		imageinterlace($thumb, true);
    		};
    if (!$thumb) {
       $thumb  = imagecreatruecolor($WMax,$HMax); 
       $bgc = imagecolorallocate($thumb, 255, 255, 255);
       $tc  = imagecolorallocate($thumb, 0, 0, 0);
       imagefilledrectangle($thumb, 0, 0, 150, 30, $bgc);
       // afficher un message d'erreur 
       imagestring($thumb, 1, 5, 5, "erreur dans $file", $tc);
       };	
     
    if (isset($_GET["Surcharge"])) {
    	$Texte=$_GET["Surcharge"];
    	$noir = imagecolorallocate($thumb,0,0,0);
    	$blanc = imagecolorallocate($thumb,255,255,255);
    	$font = $FontRep.'arial.ttf';
    	imagettftext($thumb,10,0,5,13,$noir,$font,$Texte);
    	imagettftext($thumb,10,0,4,12,$blanc,$font,$Texte);
    	};
    // Affichage
    imagejpeg($thumb);
    imagedestroy($thumb);
     
    ?>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut partiellement résolu
    Bonjour,
    Je me réponds à moi-même car personne ne veux le faire
    J'ai réussi à améliorer les choses en simplifiant le code au maximum pour la partie "planche de diapos", et surtout en utilisant imagecopyresized au lieu de imagecopyresampled.
    La qualité des diapos en souffre, mais j'arrive maintenant à faire afficher PRESQUE toutes les diapos.
    Si quelqu'un veux me proposer une piste de recherche pour résoudre définitivement mon problème, je suis preneur.
    Merci d'avance.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut eviter les croix grouges
    Bonjour,
    Plusieurs pistes pour éviter les liens brisés :
    - obligatoire : mettre en place un cache! plutot que de resizer les images a chaque fois (ca bouffe du CPU), fais une copie (par ex ds un repertoire thumb120x120) et change ton code ImageRisize.php pour aller lire cette vignette existe et que si sa date est > a celle de l'original sinon genere la comme tu fais maintenant (du coupe tu peux remettre Resampled qui est bien + joli....)
    - optionnel : ne pas afficher toutes les images en meme temps, avec un ptit javascript tu peux temporiser l'affichage des 16 vignettes et eviter qu'il y ait trop de requetes simultanees sur le serveur.
    - sinon rien a voir mais tu peux eviter de mettre le chemin complet dans le parametre que tu passes a ImageResize.php en mettant un bout du chemin en dur dans ton script, ca evite que les gens puissent aller taper directemement l'adresse des photos (par ex si je tape http://berlo.web.free.fr/Medias/Photos/Raid2009/Bea/ j'ai acces a tout...)
    Sinon bravo pour ton script

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Merci pour ta réponse
    Merci de t'être penché sur mon pb.
    Je n'ai pas encore testé tes propositions, mais je te réponds qand même:
    1er point: je pense que la solution passe effectivement par là, mais je voulais l'éviter, étant donné que je gère des milliers de photos et que mon script donne la possibilité d'afficher chaque vignette dans 4 ou 5 tailles différentes (option "Affichage...").
    2eme point: j'y avais pensé, mais je préfère garder la routine en pure PHP pour ceux qui désactivent le JS. Ce serait assez compliqué de gérer les 2 cas (avec ou sans JS); je verrai plus tard.
    3eme point: là tu as entièrement raison, je vais modifier ça rapidement.

    en tout cas, MERCI encore pour ton analyse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de script de galerie photo
    Par leroidje dans le forum Langage
    Réponses: 14
    Dernier message: 19/06/2006, 17h34
  2. Réponses: 7
    Dernier message: 11/04/2006, 17h29
  3. [GD] Erreur dans galerie photo : Call to undefined function: imagecreatefromjpeg()
    Par philippedeletree dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/02/2006, 22h51
  4. Galerie photo en ASP
    Par cyrill.gremaud dans le forum ASP
    Réponses: 11
    Dernier message: 16/01/2006, 10h44
  5. Galerie Photo
    Par bolo dans le forum ASP
    Réponses: 22
    Dernier message: 25/10/2005, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo