Page 1 sur 1

Problème d'entrée de donnée dans ma jolie BDD

Posté : 16 août 2005, 16:29
par Ryukisai
Salut à tous,

Voilà le topo, avec un formulaire je récupère des fichiers images pour les entrer dans ma bdd.
Il a deux champs de saisi de fichier, on est pas obligé de remplir les deux donc quand y a pas d'images dans l'un des deux voir les deux champs j'affiche un joli carré blanc barré de rouge
( :? c chouette n'est ce pas?)

le problème ne vient pas du transfert de fichiers, non [-X , mais plutot de l'affichage de l'image "pas_image.jpg"

Mon script:
<?
///////////////////////////////////Upload des photos////////////////////////////////////////
//Initialisation de la variables $infos
$infos = '';

//Remplacer les champs photos vides par l'image "aucunes images" qui s'appel 'pas_image.jpg'
if (empty($_FILES['photo1']['size'])){
$_FILES['photo1']="pas_image.jpg";
}
if (empty($_FILES['photo2']['size'])){
$_FILES['photo2']="pas_image.jpg";
}
//Pour savoir si le fichier a été uploadé
if (!empty($_FILES['photo1']['size']) || !empty($_FILES['photo2']['size'])){

//Récupération de la taille, du nom et du nom du fichier temporaire
$f1_size = $_FILES['photo1']['size'];
$f2_size = $_FILES['photo2']['size'];
$f1_name = $_FILES['photo1']['name'];
$f2_name = $_FILES['photo2']['name'];
$f1_tmpname = $_FILES['photo1']['tmp_name'];
$f2_tmpname = $_FILES['photo2']['tmp_name'];

//Récupération de l'extension du fichier
$ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1));
$ext2 = strtolower(substr($f2_name,strrpos($f2_name, ".")+1));

//Création du tableau des extensions acceptées
//Pour permettre ou refuser des extensions, ajoutez ou supprimez celle nécessaire
$valides = array("bmp","jpg","gif","png","tif");

//Vérification de la taille et le type de fichier (5 Mo)
//Pour changer la taille, mettre la valeur en octect
if ($f1_size > 5000000) $infos .= "<center>- La photo N°1 est trop volumineuse!<br>n</center>";
if ($f2_size > 5000000) $infos .= "<center>- La photo N°2 est trop volumineuse!<br>n</center>";
if ($f2_size > 5000000 && $f1_size > 5000000) $infos .= "<center>- Les photos sont trop volumineuses!<br>n</center>";
if (!in_array($ext,$valides)) $infos .= "<center>- Le type de fichier de la photo N°1 n'est pas accepté!<br></center>";
if (!in_array($ext2,$valides)) $infos .= "<center>- Le type de fichier de la photo N°2 n'est pas accepté!<br></center>";
if (!in_array($ext,$valides) && !in_array($ext2,$valides)) $infos .= "<center>- Les types de fichier des photos ne sont pas accepté!<br></center>";

//Si tout est correct, on déplace le fichier sinon on affiche les messages d'erreurs qui correspondent
if ($infos == ''):
move_uploaded_file($f1_tmpname, "./photo/{$f1_name}") or $infos .= "<center>- Impossible d'enregistrer le fichier, contacter le webmaster!<br></center>";
move_uploaded_file($f2_tmpname, "./photo/{$f2_name}") or $infos .= "<center>- Impossible d'enregistrer le fichier, contacter le webmaster!<br></center>";

endIf;
}else $infos .= "<center>- Vous devez sélectionner un fichier à uploader!<br></center>";

//Si le formulaire n'a pas encore été validé, on n'affiche pas les erreurs
if (empty($_POST['MAX_FILE_SIZE'])) $infos = '';

///////////////////////////////////////////////////////////////////////////

mysql_query("INSERT INTO objet (photo1, photo2) VALUES ('photo/{$f1_name}', 'photo/{$f2_name}')") or die(mysql_error());

?>
le fait est que l'image ne s'affiche pas car le nom du fichier "pas_image.jpg" n'est pas bon...
cela affiche en réalité "photo/p" au lieu de "photo/pas_image.jpg"

voilà je ne comprend pas pourquoi il me rentre ça à la place du nom de fichier que je lui indique...
merci d'avance!!

Posté : 16 août 2005, 17:51
par Cyrano
As-tu essayé avec une concaténation normale ?
mysql_query("INSERT INTO objet (photo1, photo2) VALUES ('photo/". $f1_name ."', 'photo/". $f2_name ."')") or die(mysql_error());

Posté : 16 août 2005, 17:59
par Invité
je viens d'essayer mais le problème reste le même qu'avant... j'avoue ne pas savoir d'ou ça peut venir pourtant c'est pas faute d'avoir regarder 100 et 1 fois et de changer la manière de faire...
mais là... ](*,)

Posté : 17 août 2005, 09:58
par Ryukisai
je me suis rendu compte que j'étais pas loggé :lol: ... voilà c'est fait

Posté : 17 août 2005, 16:05
par Ryukisai
personne ne peut m'aider?
je n'arrete pas de me pencher sur le problème mais je comprend toujours pas d'où vient l'erreur...
help me please!! :(

Posté : 17 août 2005, 16:09
par ouckileou
le problème est à l'affichage non ? or là tu nous donnes le script d'insertion

est-ce que le nom du fichier dans la Bdd est bien pas_dimage ?

je ne comprends pas pourquoi lorsqu'il n'y a pas de fichier associé tu fais toutes tes manips avec cette image par défaut : ne serait-ce pas plus simple de gérer ça à l'affichage uniquement ?

mm...

Posté : 18 août 2005, 02:01
par etycia
Ton code à l'air d'être correcte, mais dis moi le problème ne viendrait-il pas de ta bd?? Bah oui enfait peut etre as tu mis une restriction du nbre de caractère dans l'attribut de ton champs (dans la table 'objet' et les deux champs 'photo1' et 'photo2'). Tu doit avoir les attributs TEXT ou alors VARCHAR avec un max de caractère à 200 pour pas avoir de pbs...
A suivre...

Posté : 19 août 2005, 19:31
par Invité
l'idée est bonne etycia j'ai donc modifier ma base pour accepter des valeurs (taile/valuers) de 200...
mais ça ne change pas le problème donc je vais essayer l'affichage comme ouckileou me la conseiller...
en attendant le résultat je mets le post en résoulu!!
merciiiiiiiiiiiiii

Posté : 19 août 2005, 19:32
par Ryukisai
j'ai encore oublié de me logger...