probleme affichage images

Eléphant du PHP | 59 Messages

13 juin 2011, 16:52

bonjour,je teste un script pour un site et mon problème est que les images ne s'affichent pas quand on dépose une annonce,voici le bout de code en question il y a un probleme mais sait pas ou.
merci de votre aide
<br><br>
Photos (Maximum 5 photos) :<br><br>

<div style="float:left; border: 1px solid rgb(202, 215, 228); padding: 4px; background-color: #ffffff; width: 510px; height: 125px; margin-bottom: 20px">

<?php

echo'<IFRAME src="annonce/all-index.php?repdossier='.$pass.'" width="508" height="123"  scrolling="auto" frameborder="0" name="alt_index"></IFRAME>';

?>

</div>
plus ceci:
$taille = getimagesize("$pic"); 


$h_i = $taille[1]; 
$w_i = $taille[0]; 
	if($h_i >$h_max) 
	{ 
	$convert=$h_max/$h_i; 
	$h_i=$h_max; 
	$w_i=ceil($w_i*$convert); 
	} 
	if($w_i >$w_max) 
	{ 
	$convert=$w_max/$w_i; 
	$w_i=$w_max; 
	$h_i=ceil($h_i*$convert); 
	} ; 

$largeur = "$w_i";
$hauteur ="$h_i";

header("Content-Type: image/jpeg");
list($width, $height, $type, $attr) = getimagesize("$pic");

if($type == "1")
{
$img_in = imagecreatefromgif($pic);
}

if($type == "2")
{
$img_in = imagecreatefromjpeg($pic);
}

if($type == "3")
{
$img_in = imagecreatefrompng($pic);
}

merci de votre aide

devlop78
Invité n'ayant pas de compte PHPfrance

13 juin 2011, 18:54

débugues

Eléphant du PHP | 59 Messages

13 juin 2011, 19:11

merci avec quoi?

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

13 juin 2011, 19:48

salut,

avec var_dump par exemple pour afficher le contenu des variables.
Par contre avec juste un poil de logique onsais que ton code ne fonctionne pas juste en regardant les dernières lignes :
<?php

header("Content-Type: image/jpeg");
list($width, $height, $type, $attr) = getimagesize("$pic");
if($type == "1")
{
$img_in = imagecreatefromgif($pic);
}
if($type == "2")
{
$img_in = imagecreatefromjpeg($pic);
}
if($type == "3")
{
$img_in = imagecreatefrompng($pic);
}
 ?>
Tu peux, dans 2/3 des cas envoyer un "header" qui ne correspond pas a ton image.
D’ailleurs si l'image est d'un autre type (bmp ou autre) le problème sera pire il y aura le header mais pas d'envoi d'image au navigateur !

il faut donc gérer le header en fonction du type d'image et non le fixer.
d'ailleurs quand je vois tes trois if je me dit que ce que tu fait c'est un switch ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 59 Messages

13 juin 2011, 20:15

oui mais il s'agit d'images miniature et les formats sont compatibles tous,donc je ne vois pas et a force de chercher je ne vois plus rien!merci de ta patience

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

14 juin 2011, 17:54

mwé

ça pourrait donner ça (en considérant l'affichage en même temps, parce que bon faut bien en tenir compte a un moment ou un autre vu que la j'ai bien l'impression que c'est ce que tu veux ;) ).
<?php
list($width, $height, $type, $attr) = getimagesize($pic);
switch($type) {
	case 1: 
		header("Content-Type: image/gif");
		$img_in = imagecreatefromgif($pic);
		imagegif($img_in);
		imagedestroy($img_in);
		break;
	case 2: 
		header("Content-Type: image/jpeg");
		$img_in = imagecreatefromjpeg($pic);
		imagejpeg($img_in);
		imagedestroy($img_in);
		break;
	case 3: 
		header("Content-Type: image/png");
		$img_in = imagecreatefrompng($pic);
		imagepng($img_in);
		imagedestroy($img_in);
		break;
	default : echo 'Error c\'est un pas format que je veux reconnaitre ;) ';
	break;
}
 ?>
a tester

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 59 Messages

14 juin 2011, 18:24

merci tu est sympa! j'ai oublié de te dire que c'est un site de petites annonces et il fonctionne sans sans base de donnée.
merci
cordialement

Eléphant du PHP | 80 Messages

15 juin 2011, 16:21

merci tu est sympa! j'ai oublié de te dire que c'est un site de petites annonces et il fonctionne sans sans base de donnée.
merci
cordialement
:shock: :shock: Je suis curieux de voir ça.
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

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

15 juin 2011, 16:54

déja débatu, c'est viable avec un bon cache s'il y a beaucoup de visite et des locks correct sur les fichiers (ceci dit c'est un peu ré inventer la roue mais pratique si tu héberge sur un truc sans sgbd, quoi ça existe peut être ;)).

j'y vois aussi la simplicité pour le mec qui le mec en place vu qu'il n'y a rien a paramétrer ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 59 Messages

15 juin 2011, 19:47

bonjour,oui mais je ne sais toujours pas comment afficher mes images avec une annonce!
excuse moi mais comme je te l'ai dit a force de chercher je ne trouve plus rien! fait moi plaisir et essai de passer une petites annonce qui tu efface après pour voir si tu vois ou est le problème!http://www.azurannonces.fr merci de ta patience.
cordialement

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

16 juin 2011, 12:44

hum je pense qu'il y a un "smilblik" dans tous cela ;)
perso j'ai tesé avec une image png de 33ko et elle ne s'affiche pas à la validation ni même dans l'annonce
il n'y a pas de message d'erreur non plus.

comme je suis un peu motivé j'ai testé directement le script d'upload avec un code tous con
<html>
<head><title>Test du ite dela mari céline</title></head>
<body>
<form action="http://www.azurannonces.fr/annonce/upload-file.php?repdossier=je5TXg3i" method="post" enctype="multipart/form-data">
<label>Une image svp : </label><input type="file" name="uploadfile" />
<br />
<input type="submit" value="go" />
</form>
</body>
</html>
et .......................... ça marque succes donc le fichier doit bien s'uploader

tu a quelque part un répertoire je5TXg3i dans lequel les images sont chargées.

Comprend tu le fonctionnement du script d'upload (avec jquery et tout le toutime).
J'ai l'impression que ce n'est pas qui en est l'auteure (d'ou ma question) au vue de la différence sur le code html ;)

donc le soucis doit ce placer entre l'upload et l'enregistrement du lien de l'image dans ton système (sachant que l'info n'est, a priori, pas passée dans le formulaire ça me semble normale).

d'ailleur c'est quoi cet Iveco daily 35s10 qui apparait dans mon annonce de moto ? :mrgreen:

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 59 Messages

16 juin 2011, 13:01

en effet j'ai remarqué cette annonces Iveco daily 35s10 mais je ne la trouve nulle part: j'ai des repoertoires :
ajxupload 3.5.js
builder.js
effetcs.js
lighbox.js
news.js
prototypes.js
scriptaculous.js
verifier.js
et aussi
all-index.ph
ci dessous:
<?php

$repdossier = $_GET['repdossier'];

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>AJAX File Upload - Web Developer Plus Demos</title>
<script type="text/javascript" src="js/jquery-1.3.2.js" ></script>
<script type="text/javascript" src="js/ajaxupload.3.5.js" ></script>
<link rel="stylesheet" type="text/css" href="./styles.css" />
<script type="text/javascript" >
	$(function(){
	var btnUpload=$('#upload');
		var status=$('#status');
		new AjaxUpload(btnUpload, {
<?php
echo "action: 'upload-file.php?repdossier=".$repdossier."',";
?>

			name: 'uploadfile',
			onSubmit: function(file, ext){
				 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                    // extension is not allowed 
					status.text('Les extentions possible sont JPG, PNG ou GIF');
					return false;
				}
				status.html('Envoi en cours <img src="images/loadingup.gif?<?php echo md5(time()); ?>" border="0" height="6" width="19">');
			},
			onComplete: function(file, response){
				//On completion clear the status
				status.text('');
				//Add uploaded file to list
				if(response==="success"){
					$('<li></li>').appendTo('#files').html('<img src="miniature.php?pic=upload/<?php echo $repdossier; ?>/'+file+'&w_max=70&h_max=60" height="60" width="70" alt="" /><br />').addClass('success');
				} 
                                 if(response==="error1"){
					alert("Vous avez déjà 5 photos pour votre annonce !\nLe maximum de photos autorisées est de 5 !")
				} 
                                if(response==="error2"){
				        alert("La photo selectionnée existe déjà\nRe-selectionnez une autre photo !")
				} 
			}
		});
		
	});
</script>
</head>
<body>

<div id="mainbody" >




<div id="upload" ><span>Ajouter des photos<span></div><span id="status" ></span>

		 <ul id="files" ></ul>
</div>

</body>

</html>




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

16 juin 2011, 15:22

hum wé donc faut que tu change le nom du dossier dans le code JS pour que l'annonce aille la où tu le souhaite (parce que dans le code c'est le truc bizard que je t'ai mis plus haut. ce changement est a opérer dans le code JS de la page du formulaire (enfin dans la page que tu a mis dans l'iframe ;) histoire que l tout aille au bon endroit :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 59 Messages

16 juin 2011, 16:45

merci tu est sympa,j'ai changé le code que tu m'a mis dans all-index.php;quel code js il faut modifier stp?
merci

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

16 juin 2011, 17:07

heu la valeur que passe en paramètre a l'ifram elle viens d'ou ?
<IFRAME src="annonce/all-index.php?repdossier=Ut26gca5" width="508" height="123" scrolling="auto" frameborder="0" name="alt_index"></IFRAME>

parce que bon ça change à chaque rafraichissement, ça ne serait u truc alléatoire des fois ?

si oui à la limite tu le garde mais il faut que dans la base/fichier/truc il y ait le bon chemin jusqu'a l'image !

je demande vraiment tu n'est pas perdu dans le fonctionnement de la chose ?

de plus cela n'a pas l'air simple de fonctionnement :/

@+
Il en faut peu pour être heureux ......