Bonjour à tous,
J'ai réalisé un site avec une interface administration permettant d'ajouter des articles avec une image. L'administration marche très bien sous Safari, mais j'ai quelques soucis avec IE et Firefox concernant la gestion des images. Ces deux derniers n'enregistrent pas correctement le nom de l'image dans la base de donnée. Au lieu d'enregistrer la totalité du nom de l'image dans le champ image de la table actu de ma base de données, ils n'enregistrent que la première lettre (alors que sous Safari le nom de l'image complet est enregistré) !

Voici ma requête :

$req = $bdd->prepare('INSERT INTO actu (titre, contenu, image) VALUES (:titre, :contenu, :image)');
$req->execute(array('titre'=>$titre, 'contenu'=>$article, 'image'=>$img'name']));
$req->closeCursor();
header('Location: index.php');

Merci d'avance pour vos réponses.

4 réponses


Roxeur76150
Réponse acceptée

Si non fait le comme moi regarde :

<?php
//Gestion des images
if(!empty($_FILES)){
    require("imgClass.php");
    $img = $_FILES'img'];
    $ext = strtolower(substr($img'name'],-3));
    $allow_ext = array("jpg",'png','gif');
    if(in_array($ext,$allow_ext)){
        move_uploaded_file($img'tmp_name'],"images/".$img'name']);
        Img::creerMin("images/".$img'name'],"images/min",$img'name'],170,150);
        $img = $img'name'];
    }

}
//On se connecte a la Bdd
require "../function.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$contenu = addslashes($_POST'contenu']);  

//Selection de la Bdd 
$sql="INSERT INTO news (titre,auteur,img,categorie,contenu,autoriser_commentaires) VALUES('$titre','$auteur','$img','$categorie','$contenu','$autoriser_commentaires')";    
$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
 header('Location:liste_news/pages1'); 
?>

Comme sa sa créer l'image en taille normale dans le fichier images et en plus une miniature dans le fichier images => min et
grase a se bou de code $img = $img'name']; sa l'afiche bien dans la bdd

Apres a toi de voir

Peux tu essayer d'afficher le contenu de la variable "$img'name']" et de désactiver le header?
La variable est-elle complète?

grems02
Auteur

Bonjour Benbox, et merci pour ta réponse.
Je viens de faire le test, et encore une fois, les résultats sont surprenants : dans safari ça m'affiche bien le nom de l'image, par contre dans firefox, rien du tout !

J'ai tenté de définir d'autres variables en début de script comme par exemple $imgname=$img'name']; variable que j'ai ensuite intégrer à ma requête à la place de $img'name'] et là, Safari gère sans problème alors que firefox m'indique qu'il ne connait pas cette variable ! C'est à devenir dingue !

Ce problème peut-il être dû au fait que je travaille en local ?

grems02
Auteur

Cool,
merci Roxeur, j'ai adapté ton code et ça marche nickel !
Merci encore