CC, Je ne trouve pas mon erreur sur un <form> PHP et HTML

Résolu
Fibros Messages postés 31 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
(allez pas plus bas : solution= chmod 777 sur le dossier ./upload/)"merci a tous sa ma enlever une epine!!!"

Hellow world,

bjr à tous

je vous expose mon code enfin! mes code

voici "./index.html"

<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000000">
Fichier : <input type="file" name="fifi">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>


et voila ma page "./upload.php"
en sachant que le dossier "./upload/" est aussi existant


<?php

$dossier = 'upload/';
$fichier = basename($_FILES['fifi']['name']);
$taille_maxi = 3000000000;
$taille = filesize($_FILES['fifi']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg','.avi','.rar','.zip');
$extension = strrchr($_FILES['fifi']['name'], '.');

if(!in_array($extension, $extensions))
{
$erreur = 'Vous devez uploader un fichier de type rar, zip, avi, png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur))
{
$fichier = strtr(
$fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'
);

$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

if(move_uploaded_file($_FILES['fifi']['tmp_name'], $dossier . $fichier))
{
echo 'Upload effectué avec succès !';
}

else
{
echo 'Echec de l\'upload !';
}
}

else
{
echo $erreur;
}

?>


Mais il me revois toujours sur

"Echec de l'upload !"
a l'exception de ma feuille de style seul ces données sont présente

merci pour les futures réponse!!!

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,
    Pour commencer fais donc des ECHO de tes différentes variables pour voir ce qu'elles contiennent

    Ensuite, vérifie dans ton PHP.INI la taille max autorisée pour les fichiers.

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 40M

    ; Must be greater than or equal to upload_max_filesize
    post_max_size = 40M

    1
    1. Fibros Messages postés 31 Statut Membre 2
       
      arf je n'ai pas de php.ini
      0
    2. Fibros Messages postés 31 Statut Membre 2
       
      que derai t'il y avoir dedans
      seulement sa
      ou plusieur autre config
      0
    3. Pitet Messages postés 2845 Statut Membre 530
       
      Le fichier php.ini contient plusieurs autres directives de configuration.
      Si besoin, tu peux vérifier ces valeurs en exécutant le code php suivant :
      echo 'upload_max_filesize : ' . ini_get('upload_max_filesize');
      echo '<br>';
      echo 'post_max_size : ' . ini_get('post_max_size');
      


      Un petit bonjour à jordane45 au passage ;)
      0
    4. Fibros Messages postés 31 Statut Membre 2
       
      je test de suite
      0
    5. Fibros Messages postés 31 Statut Membre 2
       
      il me retourne
      upload_max_filesize : 2M
      post_max_size : 8M
      0
  2. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Active l'affichage des erreurs php pendant le développement pour corriger plus facilement les erreurs. Ajoute ceci au début de ton script upload.php :
    ini_set('display_errors', true);
    error_reporting(E_ALL);
    


    Quelques pistes à vérifier :
    Le dossier upload est-il au même endroit que ton script upload.php ?
    Le dossier upload a t-il les droits suffisants pour que PHP puisse écrire dedans ?
    Quelle est la valeur de la variable $fichier après l'instruction preg_replace ?

    Bonne journée,
    1
    1. Fibros Messages postés 31 Statut Membre 2
       
      yep merci il indique


      Warning: move_uploaded_file(upload/1.png): failed to open stream: Permission denied in /var/www/html/upload.php on line 28

      Warning: move_uploaded_file(): Unable to move '/tmp/phprT07CI' to 'upload/1.png' in /var/www/html/upload.php on line 28
      Echec de l'upload !
      0
    2. Fibros Messages postés 31 Statut Membre 2
       
      je vai voir la ligne consernée
      0
    3. Fibros Messages postés 31 Statut Membre 2
       
      même en chmod 755 sur upload.php
      sa passe pas
      sur le dossier egalement
      0
    4. Pitet Messages postés 2845 Statut Membre 530
       
      Si le dossier upload est bien au même endroit que le script upload.php, il semble que le problème vienne d'un problème de droit.
      0
    5. Fibros Messages postés 31 Statut Membre 2
       
      arf quel chmod me conseil tu?
      0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    Chez moi ton code fonctionne.
    Cependant:
    • le répertoire $dossier existe-t-il ?
    • le serveur possède-t-il les droits en écriture sur ce répertoire ?


    Quel serveur utilises-tu?
    Moi , j'ai testé avec nginx avec php-fcgi:
    User www-data ===> chown www-data.www-data uploads
    Gates gave ^W  sold  you the windows.
    GNU gave us the whole house.(Alexandrin)
    1
    1. Fibros Messages postés 31 Statut Membre 2
       
      apache2 sur ubuntu
      et oui la var $dossier = upload/ et il est existant dans ./ ou se trouve index.html
      0
    2. Fibros Messages postés 31 Statut Membre 2
       
      j'ai jeter un oeil sur un tuto CHMOD
      cela signi fi je je doi mettre le chmod en 777 sur upload/ ???
      0
      1. jisisv Messages postés 3678 Statut Modérateur 936 > Fibros Messages postés 31 Statut Membre
         
        Surtout pas chmod 777
        Tu confonds chmod et chown.
        0
    3. Fibros Messages postés 31 Statut Membre 2
       
      j'ai test sa fonctionne
      0