Mettre le nom d'un fichier dans une bdd

Résolu/Fermé
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015 - Modifié par valens1460 le 5/06/2015 à 21:18
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 - 5 juin 2015 à 22:22
Bonjour,

voilà mon idée: je souhaite uploader un fichier en mettant son nom et le nom du dossier(pour le moment toujours le même) dans la bdd, pour l'upload c'est ok, mais mes variables ne rentre pas dans ma bdd, et la je comprend pas car c'est un simple INSERT

voilà de code pour voir le soucis:

<?php
$dossier = 'galerie/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 26214400;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.docx', '.doc', '.xls', '.xlsx', '.text', '.rar', '.PNG');
$extension = strrchr($_FILES['fichier']['name'], '.');
include("bdd.php");


//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
// header ('Location: membre.php');
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{

$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(?, ?)');
$req->execute(array($fichier,$dossier));

echo 'Upload effectué avec succès !';
var_dump($fichier);var_dump($dossier);
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';

}
}
else
{
echo $erreur;

}

?>

<?php include('session.php'); ?>
<!DOCTYPE html>
<html>

<?php include("Head.php"); ?>


<body>
<?php include("header.php");
var_dump($fichier);var_dump($dossier);?>
<section>

<p id="index">Voulez vous ajouter un fichier?<br/>
25Mo maximum!</p>
<form method="POST" action="modif_galerie.php" enctype="multipart/form-data">
<!-- Le contenu du formulaire est à placer ici... -->
<input type="hidden" name="MAX_FILE_SIZE" value="26214400">
Fichier :<input type="file" name="fichier">
<input type="submit" name="envoyerfichier" value="Envoyer le fichier">
</form>

</section>
<?php echo $fichier; ?>
<?php include("piedpage.php"); ?>

</body>
</html>

A voir également:

3 réponses

hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:03
Bonsoir,

Essayez ceci :

$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier)');
$req->execute(array(
':nom_image' => $fichier,
'nom_dossier' => $dossier));
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:10
ça ne marche pas pas :(
et pas comme ça non plus:

$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier)');
$req->bindParam(':nom_image', $fichier);
$req->bindParam(':nom_dossier', $dossier);
$req->execute();
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:12
Vos var_dump donnent bien des résultats ?
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:12
il y a quand même une nouveauté, il me fais bien une ligne dans la bdd, mais toutes les valeurs sont a zéro
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:14
oui oui les var_dump donne bien les bons résultats
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:14
A quoi correspond le champ ordre de la bdd ?
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:20
ce que ça donne



0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:21
Dans la structure de votre table ordre a-t-il une valeur par défaut ?
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:22
non il en a pas
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:23
Alors il faut en spécifier une lors de la requête d'insertion !

Ce qui donne :

$req = $bdd->prepare('INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)');
$req->execute(array(
':nom_image' => $fichier,
':nom_dossier' => $dossier,
':ordre' => '0'));
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:27
alors ça reste la même chose, sauf que ordre passe à un, ce qui est bizarre
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:30
Essayez ceci :

$sql='INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)';
$params=array(
':nom_image' => $fichier,
':nom_dossier' => $dossier,
':ordre' => '0');

try{
  $prepare = $bdd->prepare($sql);
  $prepare->execute($params);
}catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:44
voici:
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 21:50
Ceci donne-t-il toujours la même chose ?


$sql='INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(nom_image=:nom_image, nom_dossier=:nom_dossier, ordre=:ordre)';
$params=array(
':nom_image' => $fichier,
':nom_dossier' => $dossier,
':ordre' => 0);

try{
  $prepare = $bdd->prepare($sql);
  $prepare->execute($params);
}catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 21:55
c'est dingue mais oui, et je vois pas pourquoi
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 22:10
Mille excuse j'ai fait une erreur :

$sql='INSERT INTO galerie (nom_image, nom_dossier, ordre) VALUES(:nom_image, :nom_dossier, :ordre)';
$params=array(
':nom_image' => $fichier,
':nom_dossier' => $dossier,
':ordre' => 0);
0
valens1460 Messages postés 33 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 16 octobre 2015
5 juin 2015 à 22:18
Magnifique ça marche!!
mais pourquoi?
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
5 juin 2015 à 22:20
Dans votre requête vous ne spécifiez pas ordre et il devait donc y avoir une erreur (il manquait un paramètre requis)
0