Partage
  • Partager sur Facebook
  • Partager sur Twitter

Site web qui affiche une image à l'envers

Sujet résolu
    16 septembre 2013 à 9:38:06

    Bonjour,

    J'ai un petit problème. Je suis webmaster d'un site web qui fonctionne un peu à la manière d'un blog (principe d'articles sur la page principale). Les administrateurs peuvent poster des messages en utilisant une variante de BBCode, et y inclure, images, liens, documents etc... De plus, les images peuvent être agrandies grâce à du javascript et lightbox (http://lokeshdhakar.com/projects/lightbox/)

    Le souci que j'ai est le suivant. L'insertion d'images a toujours bien fonctionné, mais un de mes administrateurs m'a soumis le problème suivant. Lors de la rédaction d'un article, les 2 images (photos) qu'il a uploadé sur le serveur puis inclus dans un article apparaissent à l'envers à l'affichage (quel que soit le navigateur utilisé). L'image est uploadé à l'endroit sur le serveur, et le lien de cette dernière l'affiche à l'endroit. Par contre, une fois dans l'article, elle apparaît à l'envers pour une raison qui m'échappe. J'ai essayé d'uploader, la même image mais à l'envers sur le serveur et le problème persiste (cette fois les 2 images sont à l'envers, le lien de l'image et le rendu dans l'article).

    Mon hypothèse est la suivante : l'image est inversée lors du redimensionnement par le navigateur, mais je ne comprends absolument pas pourquoi. Le code PHP/HTML n'a pas changé, et je n'ai jamais eu ce problème avec les dizaines d'images précédentes, ça a toujours fonctionné. Voilà, si quelqu'un a une idée, il me rendrait un grand service.

    Le code HTML généré par le BBCode.  

    <a href="../images/Hainaut/Gent.jpg" rel="lightbox" title=" Hôtel Cristal VFM - VDK Gent">
    <img src="../images/Hainaut/Gent.jpg" alt="" class="image_flottante"/>
    </a><br />

    Le lien de l'image : http://www.vfm.ch/images/Hainaut/Cannes.jpg

    Le code CSS associé :

    .image_flottante
    {
    	float:left;
    	display:inline-block;
    	max-width:40%;
    	margin-right:5px;
    	margin-bottom:5px;
    }

    Voilà. Un tout grand merci d'avance.

    Un webmaster amateur en détresse.

    -
    Edité par PafLeChien 16 septembre 2013 à 9:39:06

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2013 à 9:53:40

      Le lien de ton blog est comme ceci  ; http://www.vfm.ch/public/ ?

      ça concerne quelle image car pour moi elles sont toutes à l'endroit. 

      Après quand tu parles d'inversion, tu veux dire verticalement ou horizontalement.


      Pour mieux comprendre mets plutôt ton script d'upload

      • Partager sur Facebook
      • Partager sur Twitter

      Le CSS ça peut craindre -->Conférence CSS3.CREATE

        16 septembre 2013 à 10:01:56

        Oui, le lien est bien http://www.vfm.ch/public/

        L'article est en brouillon, c'est pourquoi il n'apparait pas avec les photos inversées. Je ne pense vraiment pas que le problème vienne de l'upload, mais voici la classe complète (c'est assez long, mais encore une fois, c'est testé et normalement fonctionnel )

        <?php
        
        class Explorateur
        {	
        	public static function afficherExplorateur($type=''){
        		$_SESSION['page']='';
        		if($type=='images'){
        			echo '<h1 class="centre"> Consulter/uploader une image pour le site </h1>';
        		
        			echo '<p> Pour vos noms de fichiers et dossiers, il ne faut pas utiliser de caractères exotiques
        			sous peine de bugs. Seuls sont autorisés : les lettres non accentuées, les chiffres, les tirets et les traits de soulignement. Rien d\'autre !!!
        			</p>';
        			
        			if(!isset($_SESSION['dossier']) || $_SESSION['page']!='../admin/images.php'){
        				$_SESSION['dossier']='../images/';
        				$_SESSION['racine']='../images/';
        				$_SESSION['page']='../admin/images.php';
        			}
        		}
        		else if($type=='documents_partages'){
        			echo '<h1 class="centre"> Partager un document avec le comité</h1>';
        		
        			echo '<p> Pour vos noms de fichiers et dossiers, il ne faut pas utiliser de caractères exotiques
        			sous peine de bugs. Seuls sont autorisés : les lettres non accentuées, les chiffres, les tirets et les traits de soulignement. Rien d\'autre !!!
        			</p>';
        			
        			if(!isset($_SESSION['dossier']) || $_SESSION['page']!='../admin/partage_fichiers.php'){
        				$_SESSION['dossier']='../documents_partages/';
        				$_SESSION['racine']='../documents_partages/';
        				$_SESSION['page']='../admin/partage_fichiers.php';
        			}
        		}
        		else if($type=='documents'){
        			echo '<h1 class="centre"> Consulter/uploader un document pour le site </h1>';
        		
        			echo '<p> Pour vos noms de fichiers et dossiers, il ne faut pas utiliser de caractères exotiques
        			sous peine de bugs. Seuls sont autorisés : les lettres non accentuées, les chiffres, les tirets et les traits de soulignement. Rien d\'autre !!!
        			</p>';
        			
        			if(!isset($_SESSION['dossier']) || $_SESSION['page']!='../admin/documents.php'){
        				$_SESSION['dossier']='../documents/';
        				$_SESSION['racine']='../documents/';
        				$_SESSION['page']='../admin/documents.php';
        			}
        		}
        		
        		echo '<div  id="explorateur">';
        		self::lister();
        		echo '</div>';
        		
        		self::afficherFenetreUpload();
        		
        		echo '<p class="centre">
           		<a href="http://www.vfm.ch/admin"> Retour vers l\'index administrateur </a>
           		</p>';
        	}
        	public static function lister(){	
        		$chemin=$_SESSION['dossier'];
        		$dossier=Opendir($chemin);	
        		echo '<strong> Vous êtes ici </strong>: '.$chemin.'<br/><br/>';
        		while ($fichier = readdir($dossier))
        		{
        			if ($fichier != "." && !($chemin==$_SESSION['racine'] && $fichier=='..'))
        			{
        				if(is_dir($chemin.$fichier)){
        					if($fichier==".."){
        						self::afficherIcone($chemin);
        						echo '<input type="button" value="'.$fichier.'" name="dossier" class="bouton_vide"> <br/>';
        					}
        					else{
        						echo '<input type="checkbox" value="'.$fichier.'" name="checkbox">';
        						self::afficherIcone($chemin.$fichier);
        						echo '<input type="button" value="'.$fichier.'" name="dossier" class="bouton_vide"> <br/>';
        					}
        				}
        			}
        		}
        		closedir($dossier);
        		$dossier=Opendir($chemin);
        		while ($fichier = readdir($dossier))
        		{
        			if(!is_dir($chemin.$fichier)){	
        				echo '<input type="checkbox" value="'.$fichier.'" name="checkbox">';
        				self::afficherIcone($chemin.$fichier);
        				echo '<a href="'.$chemin.$fichier.'" target="_blank"> '.$fichier.'</a><br/>';
        			}
        		}
        		closedir($dossier);
        		self::afficherBoutonNouveauDossier();
        		self::afficherBoutonSuppression();
        		
        		echo '<script src="../scripts/explorateur.js"></script>';
        	}
        	public static function afficherIcone($fichier){
        		if(is_dir($fichier)){
        			echo '<img src="../icones/icone_dossier.png" alt="" class="icone"/>';
        		}
        		else if(preg_match('#.+\.gif|jpeg|jpg|png#',$fichier)){
        			 echo '<img src="'.$fichier.'" alt="" class="icone"/>';
        		}
        		else if(preg_match('#.+\.xls|xlsx#',$fichier)){
        			 echo '<img src="../icones/icone_excel.png" alt="" class="icone"/>';
        		}
        		else if(preg_match('#.+\.doc|docx#',$fichier)){
        			 echo '<img src="../icones/icone_word.png" alt="" class="icone"/>';
        		}
        		else if(preg_match('#.+\.pdf#',$fichier)){
        			 echo '<img src="../icones/icone_pdf.png" alt="" class="icone"/>';
        		}
        		else if($fichier=='suppression'){
        			echo '<img src="../icones/icone_suppression.png" alt="" class="icone"/>';
        		}
        		else{
        			echo '<img src="../icones/icone_fichier.jpeg" alt="" class="icone"/>';
        		}
        	}
        	public static function afficherFenetreUpload(){
        		$chemin=$_SESSION['dossier'];
        		echo '<form method="POST" action="'.$_SESSION['page'].'" enctype="multipart/form-data">
        		<fieldset> <legend> Partager un fichier </legend><p>
        		<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
        		Choississez un fichier à partager : <input type="file" name="fichier_upload">
        		<input type="submit" name="envoyer" value="Envoyer le fichier">
        		</p> </fieldset></form>';
        	}
        	public static function traiterUpload($extensions){
        		if(isset($_POST['envoyer'])){
        			$adresse=$_SESSION['dossier'];
        			$fichier = basename($_FILES['fichier_upload']['name']);
        			$taille_maxi = 5000000;
        			$taille = filesize($_FILES['fichier_upload']['tmp_name']);
        			$extension = strrchr($_FILES['fichier_upload']['name'], '.'); 
        			$dossier=Opendir($adresse);
        			while ($fichier_ = readdir($dossier))
        			{
        				$noms_fichiers[]=$fichier_;
        			}
        			closedir($dossier);
        			//Début des vérifications de sécurité...
        			if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
        			{
        				 $erreur = 'L\'extension de votre fichier n\'est pas acceptée';
        			}
        			if(in_array($fichier, $noms_fichiers)) //Si un fichier avec ce nom existe déjà
        			{
        				 $erreur = 'un fichier avec ce nom existe déjà...';
        			}
        			if($taille>$taille_maxi)
        			{
        				 $erreur = 'le fichier est trop gros. La taille est limitée à 5 Mo';
        			}
        			if(!preg_match('#([a-z0-9_]+)\.([a-z0-9_]+)#i',$fichier) && !isset($erreur)){
        				$erreur = 'nom trop exotique. Utilisez seulement, lettres non accentuées, chiffres et caractère de soulignement.';
        			}
        			if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
        			{
        				$fichier = strtr($fichier, 
        				'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
        				'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        				$fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $fichier);
        				if(move_uploaded_file($_FILES['fichier_upload']['tmp_name'], $adresse.$fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
        				{
        				
        				}
        				else //Sinon (la fonction renvoie FALSE).
        				{
        					
        				}
        			}
        			else
        			{
        				 echo 'Erreur lors de l\'upload : '.$erreur.'<br/>';
        			}
        		}
        	}
        	public static function afficherBoutonNouveauDossier(){
        		echo '<input type="button" name="nouveau" value="Créer un nouveau dossier dans le répertoire courant"> <br/>';
        	}
        	public static function afficherBoutonSuppression(){		
        		echo '<input type="button" name="delete" value="Supprimer les fichiers/dossiers sélectionnés">';
        	}
        	public static function afficherFormulaireNouveauDossier(){
        		echo '<fieldset> <legend>Créer un nouveau dossier</legend>
        		<input type="text" value="Nouveau dossier" id="nom_dossier"> <br/>
        		<input type="button" name="nouveau_dossier" value="Créer le dossier"> <br/>
        		</fieldset>';
        	}
        	public static function creerNouveauDossier($nom){
        		$chemin=$_SESSION['dossier'];
        		$nom = strtr($nom,
        		'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
        		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
        		$nom=preg_replace('#[^a-zA-Z0-9_\-]#','_',$nom);
        		if (!is_dir($chemin.$nom)) { 
        			mkdir($chemin.$nom);
        		}
        	}
        	public static function supprimerFichiers($nom){
        		if(is_dir($nom)){
        			self::supprimerDossier($nom);
        		}
        		else{
        			unlink($nom);
        		}			
        	}
        	public static function supprimerDossier($dossier){
        		$ouverture=@opendir($dossier);
        		if (!$ouverture) return;
        		while($fichier=readdir($ouverture)) {
        			if ($fichier == '.' || $fichier == '..') continue;
        				if (is_dir($dossier."/".$fichier)) {
        					$r=self::supprimerDossier($dossier."/".$fichier);
        					if (!$r) return false;
        				}
        				else {
        					$r=@unlink($dossier."/".$fichier);
        					if (!$r) return false;
        				}
        		}
        		closedir($ouverture);
        		$r=@rmdir($dossier);
        		@rename($dossier,"trash");
        		return true;
        	}
        
        }
        ?>



        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2013 à 10:07:25

          J'ai temporairement autorisé l'affichage des brouillons. On peut voir le problème ici : http://www.vfm.ch/public/article.php?id=131
          • Partager sur Facebook
          • Partager sur Twitter
            16 septembre 2013 à 10:08:24

            Tu ne réponds pas directement à ma question ^^

            elles sont inversées comment ? verticalement ou horizontalement ?

            verticalement : la tête est à la place des pieds

            Horizontalement la droite est à gauche et la gauche à droite

            Très mignonnes les filles cela-dit en passant ^^

            par contre les images sont un peu longues à charger sur certaines page.. il faudrait faire un upload avec redimensionnement 

            Ah oui en effet bizarre... on peut voir ton script d'affichage ?

            -
            Edité par stefde3 16 septembre 2013 à 10:09:34

            • Partager sur Facebook
            • Partager sur Twitter

            Le CSS ça peut craindre -->Conférence CSS3.CREATE

              16 septembre 2013 à 10:16:07

              Tu veux dire quoi par le script d'affichage ? La transfo BBCode-HTML ?

              Si c'est le voici :

              public static function BBcode($message){
              		$message = preg_replace('#&amp;#', '&', $message);
              		$message = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $message);
              		$message = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $message);
              		$message = preg_replace('#\[u\](.+)\[/u\]#isU', '<span class="souligne">$1</span>', $message);
              		$message = preg_replace('#\[couleur=(rouge|vert|bleu|jaune|pourpre|olive|orange)\](.+)\[/couleur\]#isU', '<span class="$1">$2</span>', $message);
              		$message = preg_replace('#\[lien=(.+)\](.+)\[/lien\]#isU','<a href="$1" target="_blank"> $2 </a>', $message);
              		$message = preg_replace('#\[image\*=([a-zA-Z0-9/\-_\.]+) */\]#isU', '<img src="../images/$1" alt="" class="image_flottante"/>', $message);
              		$message = preg_replace('#\[image\*=([a-zA-Z0-9/\-_\.]+) legende=(.+) */\]#isU', '<figure class="image_flottante"><img src="../images/$1" alt="" class="figure_image"/><figcaption> $2 </figcaption> </figure>', $message);
              		$message = preg_replace('#\[image\*=([a-zA-Z0-9/\-_\.]+) cote=gauche legende=(.+) */\]#isU', '<figure class="image_flottante"><img src="../images/$1" alt="" class="figure_image"/><figcaption> $2 </figcaption> </figure>', $message);
              		$message = preg_replace('#\[image\*=([a-zA-Z0-9/\-_\.]+) cote=droit legende=(.+) */\]#isU', '<figure class="image_flottante_droite"><img src="../images/$1" alt="" class="figure_image"/><figcaption> $2 </figcaption> </figure>', $message);
              		$message = preg_replace('#\[grandeImage\*=([a-zA-Z0-9/\-_\.]+) */\]#isU', '<img src="../images/$1" alt="" class="objet_plein_ecran"/> <br/>',$message);
              		$message = preg_replace('#\[grandeImage\*=([a-zA-Z0-9/\-_\.]+) legende=(.+) */\]#i', '<figure> <img src="../images/$1" alt="" class="objet_plein_ecran"/> <figcaption> $2 </figcaption></figure>', $message);
              		$message = preg_replace('#\[image=([a-zA-Z0-9/\-_\.]+) */\]#isU', '<a href="../images/$1" rel="lightbox"> <img src="../images/$1" alt="" class="image_flottante"/> </a>', $message);
              		$message = preg_replace('#\[image=([a-zA-Z0-9/\-_\.]+) legende=(.+) */\]#isU', '<a href="../images/$1" rel="lightbox" title="$2"><img src="../images/$1" alt="" class="image_flottante"/></a>', $message);
              		$message = preg_replace('#\[image=([a-zA-Z0-9/\-_\.]+) cote=gauche legende=(.+) */\]#isU', '<a href="../images/$1" rel="lightbox" title="$2"><img src="../images/$1" alt="" class="image_flottante"/></a>', $message);
              		$message = preg_replace('#\[image=([a-zA-Z0-9/\-_\.]+) cote=droit legende=(.+) */\]#isU', '<a href="../images/$1" rel="lightbox" title="$2"><img src="../images/$1" alt="" class="image_flottante_droite"/></a>', $message);
              		$message = preg_replace('#\[grandeImage=([a-zA-Z0-9/\-_\.]+) */\]#isU', '<a href="../images/$1" rel="lightbox"><img src="../images/$1" alt="" class="objet_plein_ecran"/> <br/></a>',$message);
              		$message = preg_replace('#\[grandeImage=([a-zA-Z0-9/\-_\.]+) legende=(.+) */\]#i', '<a href="../images/$1" rel="lightbox" title="$2"><img src="../images/$1" alt="" class="objet_plein_ecran"/> <br/></a>', $message);
              		$message = preg_replace('#\[document=(.+)\](.+)\[/document\]#isU','<a href="../documents/$1" target="_blank"> $2 </a>', $message);
              		$message = preg_replace('#\[email=(.+)\](.+)\[/email\]#isU','<a href="mailto:$1" target="_blank"> $2 </a>', $message);
              		$message = nl2br($message);
              		return $message;
              	}

              Comme tu as pu le voir, les images tournent de 180°.

              • Partager sur Facebook
              • Partager sur Twitter
                16 septembre 2013 à 10:19:35

                non le code qui affiche les image sur ta page une fois uploadée

                et css qui va avec

                -
                Edité par stefde3 16 septembre 2013 à 10:20:53

                • Partager sur Facebook
                • Partager sur Twitter

                Le CSS ça peut craindre -->Conférence CSS3.CREATE

                  16 septembre 2013 à 10:27:42

                  Le site est construit principalement sur 2 classes : une classe Affichage qui gère en gros toutes la partie HTML, et une classe Manager qui va chercher les infos dans la BDD. Je pense que c'est le 2 fonctions que tu souhaites voir :

                         public static function poster($section,$page,$saison='toutes'){
                  		$manager = new Manager();
                  		if($section=='Accueil'){
                  			$nb=6;
                  		}
                  		else{
                  			$nb=4;
                  		}
                  		if(isset($_GET['message'])){
                  			Affichage::posterBillets($manager,$section,$_GET['message'],$nb,$page,$saison);
                  		}
                  		else{
                  			Affichage::posterBillets($manager,$section,0,$nb,$page,$saison);
                  		}
                  	}
                  	public static function posterBillets($manager,$section,$premierElement,$nombreElements,$page,$saison='toutes'){
                  		$premierElement=(int)$premierElement;
                  		if($premierElement<0){
                  			$premierElement=0;
                  		}
                  		$liste = $manager->getBillets($section,$saison);
                  		if($liste!=NULL){
                  			for($i=$premierElement;$i<$premierElement+$nombreElements && $i<count($liste);$i++){
                  				$donnees = $liste[$i]->getDonnees();
                  				$date = preg_replace('#([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})#','$3-$2-$1',$donnees['heure']);
                  				$message=Manager::BBcode($donnees['message']);
                  				echo '<article>
                  				<h2><a href="../public/article.php?id='.$donnees['id'].'">'.$donnees['titre'].'</a></h2>
                  				<div class="corps_article">'.$message.' </div>
                  				<p class="minuscule"> Posté le '.$date.'</p>
                  				</article>';
                  			}
                  			echo '<article class="navigation_billets"><p>';
                  			if($premierElement>0){
                  				$message=$premierElement-$nombreElements;
                  				if($message<0){
                  					$message=0;
                  				}
                  				echo '<span class="gauche"><a href="'.$page.'?message='.$message.'">Messages plus récents</a></span>';
                  			}
                  			if($premierElement+$nombreElements<count($liste)){
                  				$message=$premierElement+$nombreElements;
                  				echo '<span class="droite"><a href="'.$page.'?message='.$message.'">Messages plus anciens</a></span>';
                  			}
                  			echo '</p></article>';
                  		}
                  	}



                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 septembre 2013 à 10:29:52

                    Et le CSS :

                    .bouton_style
                    {
                    	background-color: white;
                    	cursor: pointer;
                    	border:2px solid black;
                    	border-color:black;
                    	color:black;
                    	width:30px;
                    	margin:5px;
                    }
                    
                    .rouge
                    {
                    	color:red;
                    }
                    
                    .pourpre
                    {
                    	color:purple;
                    }
                    
                    .olive
                    {
                    	color:olive;
                    }
                    
                    .vert
                    {
                    	color:green;
                    }
                    
                    .orange
                    {
                    	color:orange;
                    }
                    
                    .jaune
                    {
                    	color:jaune;
                    }
                    
                    .bleu
                    {
                    	color:blue;
                    }
                    
                    .gauche
                    {
                    	/*
                    	* Pour les boutons "Messages suivants"
                    	*/
                    	text-align:left;
                    	font-family:'PlaytimeWithHotToddiesRegular';
                    }
                    
                    .droite
                    {
                    	text-align:right;
                    	font-family:'PlaytimeWithHotToddiesRegular';
                    }
                    
                    .navigation_billets
                    {
                    	position:relative;
                    	bottom:0px;
                    }
                    
                    .objet_plein_ecran{
                    	width:100%;
                    	border:1px solid black;
                    	margin:auto;
                    }
                    
                    .minuscule
                    {
                    	font-size:0.55em;
                    	clear:both;
                    	font-family:'Arial';
                    }
                    
                    .image_flottante
                    {
                    	float:left;
                    	display:inline-block;
                    	max-width:40%;
                    	margin-right:5px;
                    	margin-bottom:5px;
                    }
                    
                    .image_flottante_droite
                    {
                    	float:right;
                    	display:inline-block;
                    	max-width:40%;
                    	margin-left:5px;
                    	margin-bottom:5px;
                    }
                    
                    .figure_image
                    {
                    	max-width:100%;
                    }
                    
                    .icone
                    {
                    	width:20px;
                    }
                    
                    .petit
                    {
                    	font-size:0.8em;
                    }
                    
                    #gras
                    {
                    	margin-left:160px;
                    	font-weight:bold;
                    }
                    
                    #italique
                    {
                    	font-style:italic;
                    }
                    
                    #souligne, .souligne
                    {
                    	text-decoration:underline;
                    }
                    
                    #image,#grandeImage,#email,#lien
                    {
                    	width:50px;
                    }
                    
                    #document
                    {
                    	width:70px;
                    }
                    
                    #outils
                    {
                    	border:1px solid black;
                    	margin-top:20px;
                    	margin-bottom:20px;
                    	font-family:'PlaytimeWithHotToddiesRegular';
                    }



                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 septembre 2013 à 10:34:22

                      Ces photos ont été prises à l'aide d'un appareil qui enregistre son orientation lors de la prise de vue ; le soucis c'est que les navigateurs ne savent pas encore exploiter cette information.

                      Prenez les photos à l'endroit et/ou faites les pivoter afin que l'orientation n'ait aucune influence sur l'affichage de l'image.

                      Ce problème mis à part il y a des gros soucis de conception ; une classe n'est pas censée afficher du HTML, et afficher des images de 2Mo pour du 334x250 c'est un peu du gâchis de bande passante..!

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
                        16 septembre 2013 à 10:41:13

                        Merci pour la réponse Nighmat. C'est vrai que ce n'est pas top de charger 2Mo de photos sur un téléphone, mais il y a un moyen de l'empêcher ?

                        En ce qui concerne la rotation des photos, j'ai essayé de les inverser manuellement et de les recharger sur le serveur, la photo est malheureusement toujours affichée à l'envers ;-(

                        Par contre, je ne comprends pas pourquoi une classe n'est pas sensée afficher de HTML ? Il est vrai que ma classe HTML est une classe composée exclusivement de méthodes statiques, et que je n'instancie jamais la classe. Je les ai regroupées en une classe pour plus de facilité d'utilisation mais je n'utilise jamais l'objet.

                        -
                        Edité par PafLeChien 16 septembre 2013 à 10:41:44

                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 septembre 2013 à 10:44:39

                          nightmat a écrit:

                          Ce problème mis à part il y a des gros soucis de conception ; une classe n'est pas censée afficher du HTML, et afficher des images de 2Mo pour du 334x250 c'est un peu du gâchis de bande passante..!


                          Je ne suis pas tout à fait d'accord avec toi sur ce point là car beaucoup de site type e-commerce génèrent des pages html par le biais de classes et gestion de blocks

                          Mais pour les photos là je sais pas ce qui se passe. probablement lorsque la photo est prise le dit nightmat

                          Par contre si ton image a le même nom dans ta bdd et ton dir normale qu'elle continue à l'afficher celle à l'envers 

                          faudrait voir à la supprimer du dossier racine sur ton ftp et la réuploader à l'endroit

                          -
                          Edité par stefde3 16 septembre 2013 à 10:48:36

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le CSS ça peut craindre -->Conférence CSS3.CREATE

                            16 septembre 2013 à 10:55:19

                            L'image est à l'endroit sur le serveur. Je l'ai vérifié 3 fois. Elle est à l'endroit jusqu'à ce qu'elle soit dans une bannière <img>, et c'est là que le navigateur l'inverse. Par contre, je ne sais pas pourquoi il fait ça et comment contourner le problème.

                            J'ai aussi essayé d'uploader l'image à l'envers pour voir. Elle reste à l'envers sur le serveur, mais l'affichage dans la bannière <img> la laisse à l'envers, ce qui confirme l'hypothèse que c'est le navigateur qui l'inverse quand elle est à l'endroit pour la mettre à l'envers ...

                            • Partager sur Facebook
                            • Partager sur Twitter
                              16 septembre 2013 à 10:56:29

                              Ben il suffit de lire la définition de "classe" pour comprendre que ce dont vous parlez n'a aucune raison d'en être une. Si pour vous des classes sont juste des sacs à fonction alors autant faire du 100% procédural.

                              Concernant les images j'ai donné la cause, teste avec celle ci-dessous voir si le problème vient du cache :

                              Et pour le problème du poids il faut simplement les redimensionner et les optimiser, avant et/ou après upload.

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
                                16 septembre 2013 à 11:11:18

                                Oui, je crois que Nightmat a raison ; la preuve dans les propriétés de l'image :

                                (l'explorateur en tient compte et pas le serveur, tout simplement)

                                -
                                Edité par philiga 16 septembre 2013 à 11:12:32

                                • Partager sur Facebook
                                • Partager sur Twitter
                                "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                  16 septembre 2013 à 11:14:22

                                  Je suis d'accord sur le côté sac à fonctions. Je reconnais que l'utilisation est non-optimale, mais je ne vais pas tout changer car ça demanderait trop de boulot vu les dizaines de fichiers à modifier. Après, ça ne gène pas trop, mais l'affichage aurait dû être en procédural, je le reconnais.

                                  L'affichage est ok avec la photo que vous avez proposé. Que lui avez-vous fait ? Car j'ai bien essayé de tourner la version originale (à 2Mo), cela n'a rien changé. Comme le nom était différent, en principe le cache n'est pas intervenu et la photo avait été chargée complètement, mais à l'envers.

                                  Pour le problème du poids, mes administrateurs aiment bien offrir des images de grande qualité, et grâce à lightbox, on peut l'ouvrir dans sa taille quasi originale et c'est quand même bien mieux qu'avec des petites photos. Il faudrait tout dupliquer avant pour tester si l'appareil est un téléphone et modifier l'affichage en fonction.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    16 septembre 2013 à 11:17:59

                                    Nope ce sont les navigateurs qui ne le supportent pas (tous) :

                                    https://bugzilla.mozilla.org/show_bug.cgi?id=298619

                                    https://code.google.com/p/chromium/issues/detail?id=56845

                                    http://my.opera.com/community/forums/topic.dml?id=1674982

                                    J'ai simplement pivoté l'image après avoir supprimé ses données exif. Et de la grande qualité pour afficher du 334x250 j'ai envie de dire qu'on s'en fout, le principe d'une lightbox c'est d'afficher l'image de qualité après un clic sur sa miniature pour ne pas pourrir la bande passante avec des images qui ne seront pas consultées.

                                    D'ailleurs même sur l'image en HD on se fout des données exif, xmp et de la vignette.

                                    -
                                    Edité par nightmat 16 septembre 2013 à 11:24:06

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
                                      16 septembre 2013 à 11:18:58

                                      Avec un logiciel comme Photofiltre, il suffit de charger l'image de faire clic droit/copier/coller en tant qu'image pour la dupliquer et on peut enregistrer la copie dont les infos EXIF sont supprimées.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                        16 septembre 2013 à 11:57:05

                                        Mon problème est désormais résolu grâce à vos éclaircissement et au logiciel ImageOptim qui supprime les données EXIF. Merci à tous pour votre aide.
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Site web qui affiche une image à l'envers

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown