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

Résolu/Fermé
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
-
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
-
(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

Messages postés
34714
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
4 001
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

Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
arf je n'ai pas de php.ini
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
que derai t'il y avoir dedans
seulement sa
ou plusieur autre config
Messages postés
2653
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 janvier 2022
485
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 ;)
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
je test de suite
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
il me retourne
upload_max_filesize : 2M
post_max_size : 8M
Messages postés
2653
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 janvier 2022
485
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,
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
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 !
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
je vai voir la ligne consernée
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
même en chmod 755 sur upload.php
sa passe pas
sur le dossier egalement
Messages postés
2653
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 janvier 2022
485
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.
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
arf quel chmod me conseil tu?
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
965
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)
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
apache2 sur ubuntu
et oui la var $dossier = upload/ et il est existant dans ./ ou se trouve index.html
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
j'ai jeter un oeil sur un tuto CHMOD
cela signi fi je je doi mettre le chmod en 777 sur upload/ ???
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
965 >
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016

Surtout pas chmod 777
Tu confonds chmod et chown.
Messages postés
30
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
30 septembre 2016
2
j'ai test sa fonctionne