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

Résolu/Fermé
Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 - Modifié par Fibros le 2/09/2016 à 17:21
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 2 sept. 2016 à 21:12
(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!!!
A voir également:

3 réponses

jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
2 sept. 2016 à 16:48
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 16:55
arf je n'ai pas de php.ini
0
Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:00
que derai t'il y avoir dedans
seulement sa
ou plusieur autre config
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
2 sept. 2016 à 17:03
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:07
je test de suite
0
Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:10
il me retourne
upload_max_filesize : 2M
post_max_size : 8M
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
2 sept. 2016 à 16:52
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 16:57
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 16:58
je vai voir la ligne consernée
0
Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:03
même en chmod 755 sur upload.php
sa passe pas
sur le dossier egalement
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
2 sept. 2016 à 17:04
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:07
arf quel chmod me conseil tu?
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 2/09/2016 à 17:05
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:05
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 vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:16
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934 > Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016
2 sept. 2016 à 21:12
Surtout pas chmod 777
Tu confonds chmod et chown.
0
Fibros Messages postés 30 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 30 septembre 2016 2
2 sept. 2016 à 17:22
j'ai test sa fonctionne
0