begin process at 2012 05 31 07:23:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

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


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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&eacute;";
	}
}
 
?>


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&eacute;";
	}
}
 


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&eacute;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&eacute;scription :  </label>
		<textarea name="description" id="form_description" rows="10" cols="49" ></textarea>
		</p>
    
 </fieldset>


	<p>
        <label class="form_label_nostyle">&nbsp;</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&eacute;"."  --  ";
	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

nemo89


MErci !!

Mouna.


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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales