Bonjour.

Dans la refonte de mon site, je rencontre un problème.
J'ai coder un script qui permet d'envoyer des images sur une BDD, il est incomplet, mais déjà je rencontre un problème.

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
48
49
function redimension(&$extension_ok,&$extension_image,$photo,&$erreur,$taille,$photo_tmp,&$taille_image,&$reduction,&$hauteur,&$largeur,&$photo_miniature,&$photo_intermediaire,$hauteur_maximum,$largeur_maximum){
	$extension_ok = array('jpeg','JPEG','jpg','JPG','gif','GIF','png','PNG');
	$extension_image = explode('.',$photo);
	if($taille == 0){
		$erreur = 'Vous n\'avez pas renseigné de photo dans le formulaire.';
		return $erreur;
	}
	elseif(substr_count($photo,'.') >= 2){
		$erreur = 'Le nom de la photo envoyé ne peut contenir de "."';
	}
	elseif(!in_array($extension_image[1],$extension_ok)){
		$erreur = 'L\'extension de votre image n\'est pas authorisé. Rappel des extensions authorisée : jpeg,jpg,gif,png.';
		return $erreur;
	}
	elseif($taille > 1048576){
		$erreur = 'La photo est trop volumineuse. La taille maximal est de 1Mo.';
		return $erreur;
	}
	else{
		if($extension_image == 'gif' OR $extension_image == 'GIF'){
			$photo_intermediaire = imagecreatefromgif($photo_tmp);
		}
		elseif($extension_image == 'png' OR $extension_image == 'PNG'){
			$photo_intermediaire = imagecreatefrompng($photo_tmp);
		}
		else{
			$photo_intermediaire = imagecreatefromjpeg($photo_tmp);
		}
 
		$taille_image = getimagesize($photo_tmp);
		$reduction = (($largeur_maximum * 100)/$taille_image[0]);
		$hauteur = (($taille_image[1] * $reduction)/100);
 
		if($hauteur > $hauteur_maximum){
			$reduction = (($hauteur_maximum * 100)/$taille_image[1]);
			$largeur = (($taille_image[0] * $reduction)/100);
			$photo_miniature = imagecreatetruecolor($largeur,$hauteur_maximum);
			imagecopyresampled($photo_miniature,$photo_intermediaire,0,0,0,0,$largeur,$hauteur_maximum,$taille_image[0],$taille_image[1]);
			return $photo_miniature;
		}
		else{
			$reduction = (($largeur_maximum * 100)/$taille_image[0]);
			$photo_miniature = imagecreatetruecolor($largeur_maximum,$hauteur);
			imagecopyresampled($photo_miniature,$photo_intermediaire,0,0,0,0,$largeur_maximum,$hauteur,$taille_image[0],$taille_image[1]);
			return $photo_miniature;
		}
		imagedestroy($photo_intermediaire);		
	}
}

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
<form method="POST" enctype="multipart/form-data">
	<span class="sous_titre_orange">
		Photo de profil :
	</span>
	<br />
	<br />
	<div id="information">
		Informations :
		<br />
		- Votre image ne doit pas dépasser 1 Mo.
		<br />
		- Les extensions acceptés sont jpeg, jpg, gif et png.
		<br />
		- Le nom de votre photo ne peut contenir de ".".
	</div>									
	<?php
	if(isset($_POST['envoyer'])){
		$largeur_maximum = 200;
		$hauteur_maximum  = 300;						
		$taille = $_FILES['photo_profil']['size'];
		$photo_tmp = $_FILES['photo_profil']['tmp_name'];
		$photo = $_FILES['photo_profil']['name'];
 
		redimension($extension_ok,$extension_image,$photo,$erreur,$taille,$photo_tmp,$taille_image,$reduction,$hauteur,$largeur,$photo_miniature,$photo_intermediaire,$hauteur_maximum,$largeur_maximum);
 
		if(!empty($erreur)){
			echo '
			<br />
			<div id="erreur">
				'.$erreur.'
			</div>';
		}
		else{
			echo 'good';
		}
	}
	?>
	<br />
	Envoyer une photo :
	<br />
	<input type="file" name="photo_profil" />
	<br />
	<br />
	<input type="submit" name="envoyer" value="Envoyer" />
</form>
Le script fonctionne plutôt bien. Seul problème, quand je test avec une image de type png (j'ai essayé avec 4 images différentes) mon script plante lamentablement...

Page Web inaccessible

Il se peut que la page Web à l'adresse http://127.0.0.1/ETM/parametre.php?photo_profil soit temporairement inaccessible ou qu'elle ait été déplacée de façon permanente à une autre adresse Web.

Plus d'informations sur cette erreur
Même combat sous IE et FF...

Alors que quand je tente avec une image de type JPEG ou GIF, tout se passe bien... >>

Une idée ?