Accueil > Forum > > > > Problème Upload de fichiers ET enregistrement dans la base de données
Problème Upload de fichiers ET enregistrement dans la base de données
mercredi 15 juin 2011 à 00:05:13 |
Problème Upload de fichiers ET enregistrement dans la base de données

nemo89
|
Bonsoir tout le monde !
J'ai un gros problème, Je souhaite enregistrer dans ma base de données informations sur un document (fichier) et l’uploader dans un dossier tout en enregistrant dans cette base le chemin du fichier (dans la même table contenant les informations du fichier). Les problèmes que je rencontre sont soit que :
- j’arrive à enregistrer dans la base le chemin et uploader dans le dossier, mais les informations du fichier ne sont pas insérées.
- j’enregistre une ligne correcte mais l’upload ne se fait pas.
- j’insère les toutes les informations mais dans des lignes différentes du fichier.
Le code de l’upload est un code que j’ai trouvé quelque part, et qui marche très bien tout seul. C’est quand que je l’insère dans mon formulaire me créé des problèmes.
Je pense que cela est dit à l’attribut action="document.php " dans mon formulaire.
Voilà le code l’upload (je n'ai pas voulu copié le code du formulaire car je le trouve trop long.. dois le faire?):
Code PHP :
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
table width="200" border="0" cellspacing="2" cellpadding="3">
<tr>
<form method="post" enctype="multipart/form-data" action="Modifier.php">
<label for="fichier">Fichier (Tous formats | max. 1Mo):</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="fichier" id="fichier" /><br />
</tr>
<input type="submit" name="upload" value="upload" />
</form>
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = "./doc/"; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
else{
echo "Le fichier est enregistré";
}
}
?>
et voila le code qui traite l'ajout dans la base ( dans document.php) :
Code PHP :
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
<?php
session_start();
include('DBinfo.php');
$link = mysqli_connect($host,$user,$pass,$dbname);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
mysqli_query($link,"SET NAMES UTF8");
$v_titre=addslashes($_POST["titre"]);
$v_keyword = addslashes($_POST["keyword"]);
$v_fait_par = addslashes($_POST["fait_par"]);
$v_desc= addslashes($_POST["description"]);
/*$v_nom_type_doc=addslashes($_POST["type"]);*/
$jour=$_POST["day"];
$mois=$_POST["month"];
$annee=$_POST["year"];
$chemin= addslashes($_POST["fichier"]);
/*$v_id_type= "SELECT type_doc_id from typedoc WHERE typedoc.type_doc_nom = '$v_nom_type'";*/
$query = "INSERT INTO document VALUES ('','$v_titre','$v_keyword','$v_fait_par', '$annee-$mois-$jour', '$v_desc', '1' ,'$chemin')";
$res1 = mysqli_query($link,$query);
?>
Si quelqu'un pourrait m'aider SVP ...
Mouna.
|
|
mercredi 15 juin 2011 à 10:55:11 |
Re : Problème Upload de fichiers ET enregistrement dans la base de données

cod57
|
bonjour
j'ai aidé un internaute il y a quelques heures même problème
http://www.phpcs.com/forum/sujet-RECUPERATION-FORMULAIRE-AVEC-PHOTO-IMPOSSIBLE_1529879.aspx
inspire toi de ce code
pout ton sujet ça devrait s'organiser autrement
Code PHP :
<!-- formulaire.php -->
<table width="200" border="0" cellspacing="2" cellpadding="3">
<tr>
<form method="post" enctype="multipart/form-data" action="mofifier.php">
<label for="fichier">Fichier (Tous formats | max. 1Mo):
</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="fichier" id="fichier" /><br />
</tr>
<!--
ici les autres input
titre ...
keyword ...
-->
<input type="submit" name="upload" value="upload" />
</form>
</table>
<!-- modifier.php -->
<?php
session_start();
$content_dir='doc';
if(!file_exists($content_dir)){
$d=mkdir($content_dir);
chmod($d,705);
}else{
}
if( isset($_POST['upload']) ) // si formulaire soumis
{
//$content_dir = "./doc/"; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $chemin = './'.$content_dir.'/'. $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
else{
echo "Le fichier est enregistré";
}
}
include('DBinfo.php');
$link = mysqli_connect($host,$user,$pass,$dbname);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
mysqli_query($link,"SET NAMES UTF8");
$v_titre=addslashes($_POST["titre"]);
$v_keyword = addslashes($_POST["keyword"]);
$v_fait_par = addslashes($_POST["fait_par"]);
$v_desc= addslashes($_POST["description"]);
/*$v_nom_type_doc=addslashes($_POST["type"]);*/
$jour=$_POST["day"];
$mois=$_POST["month"];
$annee=$_POST["year"];
//$chemin= addslashes($_POST["fichier"]);
/*$v_id_type= "SELECT type_doc_id from typedoc WHERE typedoc.type_doc_nom = '$v_nom_type'";*/
$query = "INSERT INTO document
VALUES (
NULL,
'".$v_titre."',
'".$v_keyword."',
'".$v_fait_par."',
'".$annee-$mois-$jour."',
'".$v_desc."',
'1',
'".$chemin."')
";
$res1 = mysqli_query($link,$query);
?>
 Bonne programmation !
|
|
mercredi 15 juin 2011 à 11:18:15 |
Re : Problème Upload de fichiers ET enregistrement dans la base de données

nemo89
|
j'ai testé ça, Le fichier est bien copié dans doc/ mais l'insertion dans la base ne se fait pas :(
Mouna.
|
|
mercredi 15 juin 2011 à 11:21:52 |
Re : Problème Upload de fichiers ET enregistrement dans la base de données

nemo89
|
Serait-il possible d'utiliser des variables de ce session dans ces bouts de code? Si oui j'ai essayé dans document.php, mais apparemment je ne sais pas les utiliser correctement (au niveau de l'insertion dans ma base de données).
Modifier.php
Code PHP :
<?php session_start();
include('DBinfo.php');
$link = mysqli_connect($host,$user,$pass,$dbname);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Consulter</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://localhost/LaGED/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- Header -->
<?php include("includes/menu.php"); ?>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<h1 class="title" >Ajout d'un Document :</h1>
<form id="monForm" action="document.php" method="post">
<fieldset>
<legend>Documents</legend>
<p>
<label for="form_titre">Titre du document: </label>
<input type="text" id="form_titre" name="titre" />
</p>
<p>
<label for="form_Acronyme">Keyword : </label>
<input type="text" id="form_keyword" name="keyword" />
</p>
<p>
<label for="form_edition">Fait par : </label>
<input type="text" id="form_fait_par" name="fait_par" />
</p>
<p>
<label for="form_type">Type : </label>
<select title="- Choisir -" name="type" id="mm3" class="form_select_mois" >
<option value="" SELECTED >---- Choisissez ----</option>
<?php
include('DBinfo.php');
$link = mysqli_connect($host,$user,$pass,$dbname);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
$sql="select DISTINCT type_doc_nom from typedoc";
$result=mysqli_query($link,$sql);
while($type=mysqli_fetch_assoc($result)){
echo '<option value="',htmlentities($type["type_doc_nom"]),'">',htmlentities($type["type_doc_nom"]),'</option>';
}
?>
</select>
<p>
<label for="form_datedebut">Date de création : </label>
<input type="text" id="form_datedebut" class="dates" name="day" value="JJ"/>
<select title="- Choisir -" name="month" id="mm" class="dates" >
<option value="" SELECTED >---- Choisissez ----</option>
<option value="01" >Janvier</option>
<option value="02" >Février</option>
<option value="03" >Mars</option>
<option value="04" >Avril</option>
<option value="05" >Mai</option>
<option value="06" >Juin</option>
<option value="07" >Juillet</option>
<option value="08" >Août</option>
<option value="09" >Septembre</option>
<option value="10" >Octobre</option>
<option value="11" >Novembre</option>
<option value="12" >Décembre</option>
</select>
<input type="text" class="dates" name="year" value="AAAA"/>
</p>
<p>
<label for="form_description">Déscription : </label>
<textarea name="description" id="form_description" rows="10" cols="49" ></textarea>
</p>
</fieldset>
<p>
<label class="form_label_nostyle"> </label>
<input type="submit" name="submit"/>
<input type="reset" name="del" />
</p>
</form>
</center>
</div>
</body>
</html>
document.php
Code PHP :
<?php
session_start();
include('DBinfo.php');
$link = mysqli_connect($host,$user,$pass,$dbname);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
if( isset($_POST['submit']) ){
mysqli_query($link,"SET NAMES UTF8");
//$_SESSION['variable'] = $valeur ;
$_SESSION['$v_titre']=addslashes($_POST["titre"]);
$_SESSION['$v_keyword'] = addslashes($_POST["keyword"]);
$_SESSION['$v_fait_par'] = addslashes($_POST["fait_par"]);
$_SESSION['$v_desc']= addslashes($_POST["description"]);
/*$v_nom_type_doc=addslashes($_POST["type"]);*/
$_SESSION['$jour']=$_POST["day"];
$_SESSION['$mois']=$_POST["month"];
$_SESSION['$annee']=$_POST["year"];
//$chemin= addslashes($_POST["fichier"]);
$query = "INSERT INTO document VALUES ('','$v_titre','$v_keyword','$v_fait_par', '$annee-$mois-$jour', '$v_desc', '1' ,'')";
$res1 = mysqli_query($link,$query);
}
//header('location: Modifier.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Consulter</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://localhost/LaGED/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- Header -->
<?php include("includes/menu.php"); ?>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<h1 class="title" >Ajout d'un Document :</h1>
<form id ="monForm" method="post" enctype="multipart/form-data" action="document.php">
<fieldset>
<legend>Emplacement du Document : </legend>
<p>
<label for="fichier">Fichier (Tous formats | max. 1Mo):</label><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
<input type="file" name="fichier" id="fichier" /><br />
</p>
<p>
<input type="submit" name="upload" value="upload" />
</p>
<p>
<?echo shit;?>
</p>
</form>
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = "./doc/"; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
else{
$query = "UPDATE document SET document.piece_jointe ='$name_file' WHERE document.doc_titre = '$v_titre; ";
/*UPDATE document SET document.piece_jointe ='$name_file' WHERE document.doc_titre = '$v_titre*/
$res1 = mysqli_query($link,$query);
echo "Le fichier est enregistré"." -- ";
echo "$name_file ".$name_file." -- ";
echo "tmp_file ".$tmp_file;
//header('location: Modifier.php');
}
}
//header('location: Modifier.php');
?>
</div>
</body>
</html>
Mouna.
|
|
mercredi 15 juin 2011 à 13:43:53 |
Re : Problème Upload de fichiers ET enregistrement dans la base de données

cod57
|
action="document.php"
tu pointes sur document.php
donc tu peux verifier ce qui arrive sur ce page
<?php
/*voilà ce que envoi ton formulaire*/
echo '<pre>';
echo '<hr>variables $_GET actuelles<br />';
print_r($_GET);
echo '<hr>variables $_POST actuelles<br />';
print_r($_POST);
echo '<hr>variables $_FILES actuelles<br />';
print_r($_FILES);
echo '</pre>';
/* ... SUITE DE TON CODE */
je pense si ton insertion ne fonctionne pas c'est que ta requete est mauvaise fait ECHO
echo $query = "UPDATE document SET document.piece_jointe ='$name_file' WHERE document.doc_titre = '$v_titre; ";
pour voir si tout est là
les sessions sont pas utiles ... utilise plutot $_POST
 Bonne programmation !
|
|
jeudi 16 juin 2011 à 22:45:46 |
Re : Problème Upload de fichiers ET enregistrement dans la base de données
|
Cette discussion est classée dans : fichier, base, code, upload, informations
Répondre à ce message
Sujets en rapport avec ce message
upload fichier [ par perig ]
Salut!!Alors voila mon petit prob...J'essai d'uploader un fichier sur mon site mais ça marche pas .J'utilise un code tout con mais ça marche pas et je
Code permetant une maintenance image-base mysql [ par alex1025 ]
Bonjour,Voila je cherche un code qui permet de parcourir tout un dossier à la recherche de mes images et savoir si chaque fichier est present dans ma
incrementation en php [ par kyript ]
bonjour en faite dans mon formulaire, on peut upload un fichier mais le pb j'aimerai genere un code qui s'increment a chaque upload de fichier
base de donnee securisee ? [ par JoebarGlut ]
Bonjour, je voulais stocker le mot de passe et le login de la bdd dans mon code source flash mais on m'as dis qu'il etait simple de decompiler un fich
upload de fichier - interdire l'up de php. [ par pipouz ]
bonjour a tous voila , jai un petit formulaire d'envoi de fichiers sur mon server apache , mais je voudrais pouvoir empecher l'upload de fichier PHP,
csv vers base de donnée [ par fraisa1985 ]
Salut a tous, je veux faire une actualisation de ma base de donnée à partir d'une fichier csv. Ma probléme que le fichier csv contient des données pl
upload d'un fichier sql et le mettre ds la base [ par ludovicanceaux ]
Salut à tous, J'ai fais des recherches depuis cette aprem mais je ne trouve rien!!!!! je suis ss easyphp avec windows "vista évidemment pour arranger
Probleme Code Upload et insertion Mysql [ par MaitreLgTbD ]
MaitreLgTbD Bonjour,C'est encore moije sollicite votre aide, actuellement en stage mon projet sollicite un bout de code de upload tous fichiers con
Aide Code Upload PHP [ par MaitreLgTbD ]
Bonjour, C'est encore moi je sollicite votre aide, actuellement en stage mon projet sollicite un bout de code de upload tous fichiers confondu (la plu
upload un fichier (urgent) [ par hwm86 ]
Bonjour mes amis.. j'ai téléchargé ce code pour upload un fichier mais je ne comprend pas comment ça marche? SVP vous avez m'aider?[^^!2] ce code est
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|