Upload un fichier
Natha-2001
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai un gros pb je ne sais pas ce qui se passe en fait. j'ai un formulaire php pour Upload des fichier un peu partout dans mon site web et elles fonctionnaient parfaitement jusqu’à ce matin chaque fois que je valide un formulaire j'ai une erreur qui me dépasse franchement et tous mes formulaires ne fonctionne plus et me retournent la même erreur pardon vraiment je suis dépassée aider moi
voici mon code php
et voici les erreurs que je reçoit
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php à la ligne 58
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/ envoi_formation.php à la ligne 59
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php à la ligne 60
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/ www/private/afrijob/envoi_formation.php on line 61
erreur de téléchargement du fichier
Remarque : Tentative d'accès au tableau offset sur la valeur de type null in/var/www/private/afrijob/envoi_formation.php en ligne 58
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php en ligne 59
Remarque : Tentative d'accès au tableau offset sur valeur de type null dans /var/www/private/afrijob/envoi_formation.php sur la ligne 60
Indication : Tentative de réseau d'accès de décalage sur la valeur de zéro de type dans /var/www/private/afrijob/envoi_formation.php sur la ligne 61
téléchargement erreur de fichier Erreur !
j'ai un gros pb je ne sais pas ce qui se passe en fait. j'ai un formulaire php pour Upload des fichier un peu partout dans mon site web et elles fonctionnaient parfaitement jusqu’à ce matin chaque fois que je valide un formulaire j'ai une erreur qui me dépasse franchement et tous mes formulaires ne fonctionne plus et me retournent la même erreur pardon vraiment je suis dépassée aider moi
voici mon code php
<!-- code de comment ca marche --> <?php require 'page de connexion/config.php'; error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); session_start(); if(isset($_SESSION['id_utilisateur'])) $id_utilisateur = isset($_SESSION['id_utilisateur']); //---------------------------------// // Affichage des erreurs PHP //---------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //---------------------------------// //connexion à la base avec activation des erreurs PDO //---------------------------------// try { // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { die('Erreur : ' . $e->getMessage()); } //---------------------------------// // FONCTIONS //---------------------------------// function getPost($varName, $defaultValue = "") { return isset($_POST[$varName]) ? $_POST[$varName] : $defaultValue; } function getFiles($fieldFileName) { return !empty($_FILES[$fieldFileName]) ? $_FILES[$fieldFileName] : NULL; } function moveFile($fieldFileName, $uploadDir = 'formation/') { $maxUploadFileSize = 1500000; $phpFileUploadErrors = array( 0 => 'There is no error, the file uploaded with success', 1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini', 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', 3 => 'The uploaded file was only partially uploaded', 4 => 'No file was uploaded', 6 => 'Missing a temporary folder', 7 => 'Failed to write file to disk.', 8 => 'A PHP extension stopped the file upload.', ); // récupération propre des variables avant de les utiliser $F = getFiles($fieldFileName); $fileTmpPath = $F['tmp_name']; $fileName = $F['name']; $fileSize = $F['size']; // $fileType = $F['type']; // Si tu veux vérifier le type mime du fichier.. //on vérifie qu'il n'y a pas d'erreur dans le $_FILES $error = !empty($F['error']) ? $phpFileUploadErrors[$F['error']] : NULL; if ($error) { echo $error; return false; } if (!is_dir($uploadDir)) { // si le dossier de destination n'existe pas on le créé ! mkdir($uploadDir, 0755, true); } // on vérifie que le répertoire de déstination est accessible en écriture if (!is_writable($uploadDir)) { echo "Permission denied on " . $uploadDir; return false; } // on verifie l'extension des fichiers $validExt =array('.jpeg','.jpg','.gif','.png','.pdf'); $fileExt = "." . strtolower(substr(strrchr($fileName,'.'),1)); if(!in_array($fileExt,$validExt)){ echo " veuillez selectionner une image de type jpeg , jpg , gif , png , pdf"; } // on vérifie la taille du fichier envoyé if ($fileSize > $maxUploadFileSize) { echo "file Size Error : " . $fileSize; return false; } $dest_path = $uploadDir . $fileName; //On vérifie que le fichier s'est chargé sur le serveur if (!is_uploaded_file($fileTmpPath)) { echo "upload file error "; return false; } //On déplace le fichier dans son répertoire finale if (move_uploaded_file($fileTmpPath, $dest_path)) { return $fileName; } else { echo 'There was some error moving the file to upload directory. Please make sure the upload directory is writable by web server.'; return false; } } //---------------------------------// // Début du script : //récupération des variables POST et FILES $nf= getPost('nf'); //nom du concours// $vf = getPost('vf');//ville et pays du concoursou bources// $ncf = getPost('ncf');//nom du centre de formation// $df = getPost('df');//duree formation// $mf = getPost('mf');//modalite de la formation// $jf = getPost('jf');//justificatif formation// $nt= getPost('nt');//numero de telephone// $am = getPost('am');//adresse mail de la formation// //on upload le fichier $irf = moveFile('irf', 'formation/');//image representati de la formationf// $dmf = moveFile('dmf', 'formation/');//different module de la formation// if(isset($_FILES['ve'])){ //$ss=mkdir("videos/",0777); $uploaddir="formation/"; $filetype=$_FILES['ve']['type']; $filename=$_FILES['ve']['name']; $realpath=$uploaddir.$filename; if(!empty($filetype)) { move_uploaded_file($_FILES['ve']['tmp_name'],$realpath ); $ve =$filename;//video explicite// }else{ echo "nous n'avons pas pu enregistrer votre video"; } } //Si il s'est bien uploadé... if ($irf) { if(isset($_SESSION['id_utilisateur'])){ $id_utilisateur = $_SESSION['id_utilisateur']; $requete = "INSERT INTO formation ( id_utilisateur, nom_formation,ville,nom_centre_for,dure_formation,modalites_form,justificatif_form,tel_form,email_form,modul_form,video_form,img_form) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"; $params = array($id_utilisateur,$nf, $vf, $ncf, $df, $mf, $jf, $nt, $am,$dmf,$ve,$irf); $resultat = $bdd->prepare($requete); $resultat->execute($params); }else {echo "utilisateur n'existe pas";} } else { echo "<br>Error !"; exit; }
et voici les erreurs que je reçoit
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php à la ligne 58
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/ envoi_formation.php à la ligne 59
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php à la ligne 60
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/ www/private/afrijob/envoi_formation.php on line 61
erreur de téléchargement du fichier
Remarque : Tentative d'accès au tableau offset sur la valeur de type null in/var/www/private/afrijob/envoi_formation.php en ligne 58
Remarque : Tentative d'accès au tableau offset sur la valeur de type null dans /var/www/private/afrijob/envoi_formation.php en ligne 59
Remarque : Tentative d'accès au tableau offset sur valeur de type null dans /var/www/private/afrijob/envoi_formation.php sur la ligne 60
Indication : Tentative de réseau d'accès de décalage sur la valeur de zéro de type dans /var/www/private/afrijob/envoi_formation.php sur la ligne 61
téléchargement erreur de fichier Erreur !
Configuration: Linux / Chrome 92.0.4515.159
A voir également:
- Upload un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
Bonjour,
D'après les messages d'erreur, le soucis vient de la variable $F initialisée à la ligne 57 qui a pour valeur null.
Puisque le tableau $F est null, les lignes suivantes pour accéder aux éléments de ce tableau ($F['tmp_name']) retourne donc ces erreurs.
Cette variable est initialisée par la fonction getFiles() qui retourne null si la variable $_FILES[$fieldFileName] est vide (empty). Il semble donc que la variables $_FILES['irf'] (et/ou $_FILES['dmf']) soit vide.
Sans vraiment savoir d'où vient le fait que le formulaire ne fonctionne plus du jour au lendemain, est-ce que tu (ou ton hébergeur) aurais changé la version de PHP utilisé pour le site ?
Si c'est le cas, il est possible que tu avais déjà cette erreur avant ce changement de version mais PHP affiche un warning si on accède à un tableau null seulement depuis la version 7.4 : https://www.php.net/manual/fr/migration74.incompatible.php
D'après les messages d'erreur, le soucis vient de la variable $F initialisée à la ligne 57 qui a pour valeur null.
Puisque le tableau $F est null, les lignes suivantes pour accéder aux éléments de ce tableau ($F['tmp_name']) retourne donc ces erreurs.
Cette variable est initialisée par la fonction getFiles() qui retourne null si la variable $_FILES[$fieldFileName] est vide (empty). Il semble donc que la variables $_FILES['irf'] (et/ou $_FILES['dmf']) soit vide.
Sans vraiment savoir d'où vient le fait que le formulaire ne fonctionne plus du jour au lendemain, est-ce que tu (ou ton hébergeur) aurais changé la version de PHP utilisé pour le site ?
Si c'est le cas, il est possible que tu avais déjà cette erreur avant ce changement de version mais PHP affiche un warning si on accède à un tableau null seulement depuis la version 7.4 : https://www.php.net/manual/fr/migration74.incompatible.php
Bonjour,
Déjà, tu peux modifier le code de la fonction moveFile
A la ligne 57, ajoute
ensuite.. pourquoi ne pas avoir utilisé cette même fonction pour ton fichier ve ?
Et pour finir, ton formulaire transmet -il bien les fichiers irf et dmf ?
Pour t'en assurer, fais donc un var_dump($_FILES); pour le vérifier
Déjà, tu peux modifier le code de la fonction moveFile
A la ligne 57, ajoute
$F = getFiles($fieldFileName); return false ; // sort si aucun fichier trouvé
ensuite.. pourquoi ne pas avoir utilisé cette même fonction pour ton fichier ve ?
Et pour finir, ton formulaire transmet -il bien les fichiers irf et dmf ?
Pour t'en assurer, fais donc un var_dump($_FILES); pour le vérifier