Problème Upload de fichiers ET enregistrement dans la base de données

cs_nemo89 Messages postés 4 Date d'inscription samedi 4 septembre 2010 Statut Membre Dernière intervention 16 juin 2011 - 15 juin 2011 à 00:05
cs_nemo89 Messages postés 4 Date d'inscription samedi 4 septembre 2010 Statut Membre Dernière intervention 16 juin 2011 - 16 juin 2011 à 22:45
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?):


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">




Fichier (Tous formats | max. 1Mo):













et voila le code qui traite l'ajout dans la base ( dans document.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

5 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 juin 2011 à 10:55
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

<!-- formulaire.php -->

<form method=\"post\"  enctype=\"multipart/form-data\" action=\"mofifier.php\">
<label for=\"fichier\">Fichier (Tous formats | max. 1Mo):
</label>

<!--

ici les autres input
titre ...
keyword ...

-->

</form>







<!-- 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 !
0
cs_nemo89 Messages postés 4 Date d'inscription samedi 4 septembre 2010 Statut Membre Dernière intervention 16 juin 2011
15 juin 2011 à 11:18
j'ai testé ça, Le fichier est bien copié dans doc/ mais l'insertion dans la base ne se fait pas :(

Mouna.
0
cs_nemo89 Messages postés 4 Date d'inscription samedi 4 septembre 2010 Statut Membre Dernière intervention 16 juin 2011
15 juin 2011 à 11:21
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








Consulter


















Ajout d'un Document :






Documents

Titre du document:






Keyword :






Fait par :






Type :

---- Choisissez ----



Consulter


















Ajout d'un Document :





Emplacement du Document :

Fichier (Tous formats | max. 1Mo):


















0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 juin 2011 à 13:43
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 '';
echo '<hr>variables $_GET actuelles
';
print_r($_GET);
echo '<hr>variables $_POST actuelles
';
print_r($_POST);
echo '<hr>variables $_FILES actuelles
';
print_r($_FILES);
echo '

';
/* ... 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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nemo89 Messages postés 4 Date d'inscription samedi 4 septembre 2010 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 22:45
MErci !!

Mouna.
0
Rejoignez-nous