FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage bas niveau(asm...)


  [PHP-GD]erreur affichage miniature

 




Il y a 32 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-GD]erreur affichage miniature

n°6157
cybersplas​h
Laissez moi chanter !!!
Posté le 02-10-2005 à 19:02:58  profilanswer
 

Salut
 
j'ai un petit probleme avec l'affichage de miniature en php
 
j'ai une fonction dans un fichier miniature.php qui me genere une image miniature j'utilise la fonction dans mon index et la j'ai une erreur dans l'image et rien ne s'affiche (meme pas ma page) pourtant la fonction seule marche quand j'execute la fonction seul dans un fichier independant ca marche.
 
Dans mon index.php j'ai bien placer le header pour fichier jpeg et quand je l'enleve il m'affiche l'image mais en en format texte :/
 
donc je vous envoi le code ma fonction et de mon index.php
 

Code :
  1. <?php
  2. header("content-type: image/jpeg" );
  3. require ('includes/bibliotheque/connect.php');
  4. require ('includes/bibliotheque/miniature.php');
  5. ?>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9.   <title><? include("includes/bibliotheque/site_cfg.php" ); echo $sitename; ?></title>
  10.   <link rel="stylesheet" href="index.css">
  11. </head>
  12. <body>
  13.   <div class="menu" id="menu_gauche">
  14.     <a href=index.php?page=page/presentation.php>Presentation</a><br>
  15.     <a href=index.php?page=page/photo.php>Photo</a><br>
  16.     <a href=index.php?page=page/video.php>Video</a><br>
  17.   </div>
  18. <?php
  19.      if (isset($_SESSION['NumUtilisateur'])){
  20.         echo '<div class="menu" id="menu_gauche_utilisateur">
  21.                 <a href=index.php?page=utilisateur/edit_profil_form.php>editer profil</a><br>
  22.                 <a href=index.php?page=utilisateur/affichage_profil.php>Afficher profil</a><br>
  23.              </div>';
  24.      }
  25. ?>
  26.   <div class="menu" id="menu_gauche_sub">menu gauche sub
  27.   </div>
  28.   <div class="menu" id="center">
  29.     <?php
  30.     if (isset($_REQUEST['page'])) {
  31.       if(!preg_match("/\.[^p][^h][^p]/", $_REQUEST['page']))
  32.         if(file_exists("includes/" . $_REQUEST['page']))
  33.   include 'includes/'.$_REQUEST['page'];
  34. else
  35.   echo "Page non existante";
  36.    }
  37.    else include 'includes/prout.php';
  38.    ?>
  39.   </div>
  40.   <div class="menu" id="menu_droite_log">
  41.     <div class="menu" id="menu_droite_log_sub">
  42.   <?php // Affichage du menu didentification en cas de besoin
  43.     if (isset($_SESSION['NumUtilisateur'])){
  44.       echo 'Bonjour'.$_SESSION['Pseudo'].'<br />
  45.             Nom : '.$_SESSION['Nom'].'<br />
  46.             Prenom : '.$_SESSION['Prenom'].'<br />
  47.             Ecole : '.$_SESSION['Ecole'].'<br />
  48.             Status : '.$_SESSION['Status'].'<br />
  49.             <br />
  50.          <a href=includes/utilisateur/deco.php>Deconnexion</a><br>';
  51.     }
  52.     else {
  53.       echo'<form method="post" action="includes/utilisateur/log.php">
  54.              Login<br />
  55.              <input type="text" name="login" size="10" maxlength="25" />
  56.             <br />Mot de Passe<br />
  57.             <input type="password" name="password" size="10" maxlength="20" /><br /><br />
  58.             <input type="submit" name="submit" class="bouton" value="Identification" />
  59.             <br />
  60.            <br />
  61.           <a href="index.php?page=utilisateur/inscription_form.php">S\'enregistrer!</a>
  62.            </form>';
  63.     }
  64. ?>
  65.    
  66.     </div>
  67.   </div>
  68.   <div class="menu" id="menu_droite_photo">
  69.    
  70.     <?php
  71.          $i=0;
  72.          $j=0;
  73.          $dir="includes/data/photo";
  74.          $dossier=opendir($dir);
  75.          while($entree=readdir($dossier))
  76.          {
  77.            $j++;
  78.          }
  79.          closedir($dossier);
  80.          $rand=rand(1,$j);
  81.          $dossier=opendir($dir);
  82.          while($entree=readdir($dossier))
  83.          {
  84.            if($entree!="." && $entree!=".." ){
  85.              if($i>$rand) break;
  86.              $i++;
  87.            }
  88.            $i++;
  89.          }
  90.     $fichierSource = "includes/data/photo/".$entree;
  91.     miniature($entree);
  92.     closedir($dossier);
  93.          ?>
  94.   </div>
  95. </body>
  96. </html>


 
ce fichier ce trouve a la racine de mon serveur et le fichier miniature.php se trouve dans includes/bibliotheque/miniature.php
 

Code :
  1. <?php
  2. function miniature($entree){
  3. $image = "includes/data/photo/abstract1_138.jpg";
  4. $src_im = ImageCreateFromJpeg($image);
  5. $size = GetImageSize($image);
  6. $src_w = $size[0];
  7. $src_h = $size[1];
  8. $dst_w = 200;
  9. $dst_h = round(($dst_w / $src_w) * $src_h);
  10. $dst_im = ImageCreateTrueColor($dst_w,$dst_h);
  11. ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
  12. ImageJpeg($dst_im);
  13. ImageDestroy($dst_im);
  14. imageDestroy($src_im);
  15. }
  16. ?>


 
j'ai placé le header dans le fichier index.php puis dans le fichier miniature.php et j'obtien toujours la meme erreur enfin j'ai placé le header dans ma fonction et j'ai une erreur de redefinition de header (ce qui est normal)
 
si vous avez la solution repondez moi vite merci d'avance :)

mood
Google
Posté le 02-10-2005 à 19:02:58  profilanswer
 

n°6158
Trracer
Posté le 02-10-2005 à 21:39:06  profilanswer
 

Tu fais un header "jpeg" alors que tu envois du code html = marche pas.
Tu genere une image en même temps que ton code html = marche pas.
Tu inseres ton code image directement dans une div sans balise img = marche pas.
Tus generes une image et renvois le resultat avec imagejpeg sans mettre de header "jpeg" correct = marche pas.


Message édité par Trracer le 02-10-2005 à 21:39:48
n°6159
cybersplas​h
Laissez moi chanter !!!
Posté le 03-10-2005 à 12:50:02  profilanswer
 

Donc tu es en traind e me dire que je ne peut pas mette de miniature dans mon code ??
 
En plus imagejpeg renvoi l'image sur la sortie standard
 
Le header y est mais mal placé surement


Message édité par cybersplash le 03-10-2005 à 12:50:58
n°6160
Trracer
Posté le 03-10-2005 à 14:29:55  profilanswer
 

Tu ne peux pas renvoyer d'image en même temps que tu génères ton code HTML. Sinon ton code binaire (image) serait noyé dans ton texte (HTML).
 
Et pour être visible tes images doivent etre dans une balise img, c'est ces dernières qui appellent le code de génération des miniatures.  
C'est pénible mais y'a pas d'autre solution (hormis embarquer les images en data/base64, chose que ne supporte pas IE). Ou alors il faut passer par des fichiers intermédiaires...

n°6161
cybersplas​h
Laissez moi chanter !!!
Posté le 03-10-2005 à 16:10:57  profilanswer
 

k ba je v essayer de suprimer les images de mon dossier pour eviter de surcharger le server merci pour la rep :)

mood
Google
Posté le 03-10-2005 à 16:10:57  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage bas niveau(asm...)


  [PHP-GD]erreur affichage miniature

 

Hit Parade