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

Résolu
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
(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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
arf je n'ai pas de php.ini
0
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
que derai t'il y avoir dedans
seulement sa
ou plusieur autre config
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
je test de suite
0
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
il me retourne
upload_max_filesize : 2M
post_max_size : 8M
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
je vai voir la ligne consernée
0
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
même en chmod 755 sur upload.php
sa passe pas
sur le dossier egalement
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
arf quel chmod me conseil tu?
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
apache2 sur ubuntu
et oui la var $dossier = upload/ et il est existant dans ./ ou se trouve index.html
0
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
j'ai jeter un oeil sur un tuto CHMOD
cela signi fi je je doi mettre le chmod en 777 sur upload/ ???
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934 > Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Surtout pas chmod 777
Tu confonds chmod et chown.
0
Fibros Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   2
 
j'ai test sa fonctionne
0