Bonjour

Je tente de comprendre quelque chose avec un site que je développe actuellement.

Il affiche des images et des données issues du BDD. J'ai également une petite administration pour ajouter facilement ces entrées.

Une entrée est constituée d'une image et de 3 champs (VARCHAR). L'insertion dans la BDD se fait correctement, mais c'est au niveau de la génération de l'image que ça coince.

Mon script PHP utilise les fonctions "imagecreatefrom" pour créer une image et sa miniature à partir du champ FILES d'un formulaire.

En local pas de soucis, mais chez Free, on dirait que l'image n'est pas crée (ou alors mal crée) car elle ne s'affiche pas sur le site avec le reste des infos.

Cela viendrait il de l'hébergeur? ou est ce mon script qui est erroné?

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//AJOUT D'UN TABLEAU
if(isset($_POST['nouveau'])) {
	/*if($_POST['nouveau_nom'] == '') {
		$erreur .= 'Pas de nom indiqu&eacute;.<br />';
	}*/
	if($_POST['nouveau_dim'] == '') {
		$erreur .= 'Pas de dimensions indiqu&eacute;es.<br />';
	}
	if(empty($_FILES['nouveau_fic']['tmp_name'])) {
		$erreur .= 'Fichier non envoy&eacute;.<br />';
	}
 
	if($erreur == '') {
		$tableau = @getimagesize($_FILES['nouveau_fic']['tmp_name']);
		if ($tableau == FALSE) { 
			// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur 
			unlink($_FILES['nouveau_fic']['tmp_name']); 
			$erreur .= 'Votre fichier n\'est pas une image.<br />'; 
		}
		else {
			//image jpeg ou png?
			if ($tableau[2] == 2 || $tableau[2] == 3) {
				$file_upload = $_FILES['nouveau_fic']['name'];
				// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille
				copy ($_FILES['nouveau_fic']['tmp_name'], $dir.'/'.$file_upload);
 
				//image jpeg
				if ($tableau[2] == 2) {
					// on crée une image à partir de notre grande image à l'aide de la librairie GD
					$src = imagecreatefromjpeg($dir.'/'.$file_upload);
					// on teste si notre image est de type paysage ou portrait
					if ($tableau[0] > $tableau[1]) { 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
					}
					else { 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
					}
					// on copie notre fichier généré dans le répertoire des miniatures 
					imagejpeg ($im, $dir_mini.'/'.$file_upload);
				}
				//image png
				elseif ($tableau[2] == 3) { 
					$src = imagecreatefrompng($dir.'/'.$file_upload); 
					if ($tableau[0] > $tableau[1]) { 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
					} 
					else { 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
					} 
					imagepng ($im, $dir_mini.'/'.$file_upload); 
				}
 
				if ($tableau[2] == 2) {
					$ext = 'jpeg';
				}
				else {
					$ext = 'png';
				}
				$tmp = explode('.', $file_upload);
				$nom = $tmp[0];
				$prix = mysql_real_escape_string(trim($_POST['nouveau_prix']));
				$dim = mysql_real_escape_string(trim($_POST['nouveau_dim']));
				$cat = mysql_real_escape_string(trim($_POST['nouveau_cat']));
				$date = date('Y-m-d');
				//ajout dans la BDD
				$insert_tableau = mysql_query('INSERT INTO tableau (id_tableau, nom_tableau, ext_tableau, prix_tableau, dim_tableau, cat_tableau, date_tableau) VALUES ("", "'.$nom.'", "'.$ext.'", "'.$prix.'", "'.$dim.'", "'.$cat.'", "'.$date.'")');
				$message = 'Tableau correctement ajout&eacute;';
			}
			else { 
			// si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur 
				unlink($_FILES['nouveau_fic']['tmp_name']); 
				$erreur .= 'Votre image est d\'un format non support&eacute;.'; 
			}
		}
	}
}