Bonjour,

Je suis actuellement en alternance et j'ai pour projet de crée un site web

je l'ai quasiment terminé mais je bloque sur la Partie Upload de Document


j'ai crée le Formulaire et le traitement mais quand j’essaie d'uploader il me retourne cela

Le champ 'Nom_document' ne peut être vide (null)1

j'ai essayer plusieurs modification mes en vain je ne sait plus quoi faire

Pouvez_vous m'aider

Cordialement



Page traitement

<?php
session_start();

//Connexion à la base
include("../includes/connexion.php");

$dossier = 'fichier/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 30000000;
$taille = filesize($_FILES['fichier']['tmp_name']);
$file_type = $_FILES['fichier']['type'];
$extensions = array('.pdf', '.png', '.gif', '.jpg', '.jpeg', '.txt', '.doc', '.docx');
$extension = strrchr($_FILES['fichier']['name'], '.');
$categorie = $_POST['categorie'];
$SScategorie = $_POST['sscategorie'];
$motcles= $_POST['motscles'];
$date= date("Y-m-d H:i:s");

$OK = 1;	
	//Début des vérifications de sécurité...
	if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
	{
		header('Location: ../page_erreur.php?msg=UD2');
	}
	if($taille > $taille_maxi)
	{
		header('Location: ../page_erreur.php?msg=UD3');
	}
	if($categorie < 0)
	{
		header('Location: ../page_erreur.php?msg=UD4');
	}
	if($SScategorie < 0)
	{
		header('Location: ../page_erreur.php?msg=UD5');
	}

	if($OK == 1) //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é...
		{
			$chemin = $dossier.$fichier;
			
			// Requête de récupération des données
		
		 $req = $mysqli->prepare("INSERT INTO documents VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
								
			
            //$req->execute();
             
			
			
		$arr = array("id"=>"", "nom"=> $fichier, "type"=> $file_type, "doc"=> $chemin, "taille"=> $taille, "numCat"=> $categorie, "numSS"=> $SScategorie, "motscles"=> $motcles, "date"=> date("Y-m-d H:i:s", strtotime("+2 month")), "valide"=> 0, "numValid"=> 1); 
			
		mysqli_stmt_bind_param($req, 'isssiiissii', $id, $nom, $type, $doc, $taille, $numCat, $numSS, $motscles, $date, $valide, $numValid);
								
								
			
            //$req->execute();
             
			
			/*$arr = array("id"=>"", "nom"=> $fichier, "type"=> $file_type, "doc"=> $chemin, "taille"=> $taille, "numCat"=> $categorie, "numSS"=> $SScategorie, "motscles"=> $motcles, "date"=> date("Y-m-d H:i:s", strtotime("+2 month")), "valide"=> 0, "numValid"=> 1); 
			$req->bind_param($arr['id'], $arr['nom'], $arr['type'], $arr['doc'], $arr['taille'], $arr['numCat'], $arr['numSS'], $arr['motscles'], $arr['date'], $arr['valide'], $arr['numValid']);*/
			
			 /* Exécution de la requête */
			$req->execute() or die(print_r($req->error));
			
			
	
			//printf("Erreur : %s.\n", $req->error);
			/* Fermeture du traitement */
			$req->close();
			 
			echo $arr['id'];
			echo $arr['type'];
			echo $arr['doc'];
			echo $arr['taille'];
			echo $arr['numCat'];
			echo $arr['numSS'];
			echo $arr['motcles'];
			echo $arr['date'];
			echo $arr['valide'];
			echo $arr['numValid'];
			
			
			header('Location: ../page_succes.php?msg=UD1');
		}
		else //Sinon (la fonction renvoie FALSE).
		{
			header('Location: ../page_erreur.php?msg=UD6');
		}
	}
	else
	{
		header('Location: ../page_erreur.php?msg=UD6');
	}
?>

Modifié par django_78 (12 Mar 2014 - 16:44)
Salut,

Alors déja, quelques points :

Les noms de tes variables ... entre extension et extensions, c'est des coups à te tromper. Perso, un tableau, je le nomme arr_extensions. Et pour l'autre, tu pourrais l'appeler f_extension. Qu'on sache quelles variables concernent directement le fichier.

puis, on a pas tes messages d'erreurs. Alors forcément, ca va pas aider.