Page 1 sur 2
Controle extension php
Posté : 11 août 2022, 20:59
par filou80
Bonjour à tous,
Je souhaite contrôler l'extension envoyer sur le serveur, mais je ne comprends pas il bloque au niveau de ma condition.
Voici mon code :
//détails du fichier nom, extension et taille
$nomFichier = $_FILES['avatar']['name'];
$extension = pathinfo($nomFichier, PATHINFO_EXTENSION);
$extensionMinuscule = strtolower($extension);
$taille = $_FILES['avatar']['size'];
//Controle extension
if(!empty($extensionMinuscule)){
if($extensionMinuscule != 'png' || 'jpeg' || 'jpg'){
$error["avatar"] = 'Format de fichier non pris en charge. Seulement png jpeg et jpg.';
}
}
Merci par avance de votre aide.
@+Ludo
Re: Controle extension php
Posté : 11 août 2022, 21:45
par @rthur
Bah simplement parce que le contenu de ton if() n'est pas correcte
Soit tu utilises in_array() avec un tableau contenant la liste des extensions autorisées, soit tu écris tes conditions correctement entre chaque ||
Re: Controle extension php
Posté : 12 août 2022, 22:26
par filou80
Je viens de modifier :
//Controle extension
if(!empty($extensionMinuscule)){
if($extensionMinuscule != 'png' || $extensionMinuscule != 'jpeg' || $extensionMinuscule != 'jpg'){
$error["avatar"] = 'Format de fichier non pris en charge. Seulement png jpeg et jpg.';
}
}
J'ai actualisé, mais j'ai toujours le même problème, je reste bloqué dans ma condition.
Voyez vous quelque chose qui cloche.
@+Filou
Re: Controle extension php
Posté : 12 août 2022, 22:36
par or 1
if($extensionMinuscule != 'png' || $extensionMinuscule != 'jpeg' || $extensionMinuscule != 'jpg'){
dans quel cas cela retourne true ? cela retourne false ?
Re: Controle extension php
Posté : 12 août 2022, 22:40
par filou80
oui j'ai beau mettre une image en png cela me considère que c'est pas en png, alors que quand je fais un vardump de $extensionMinuscule cela me retourne png
Re: Controle extension php
Posté : 12 août 2022, 22:42
par or 1
dans quel cas cela retourne true ? cela retourne false ?
Re: Controle extension php
Posté : 12 août 2022, 22:42
par filou80
cela doit me retourne true quand c'est un fichier png jpg ou jpeg
Re: Controle extension php
Posté : 12 août 2022, 22:43
par or 1
if($extensionMinuscule != 'png' || $extensionMinuscule != 'jpeg' || $extensionMinuscule != 'jpg'){
dans quel cas cette ligne retourne false ?
Re: Controle extension php
Posté : 12 août 2022, 22:45
par filou80
cela retourne false si $extensionMinuscule est different de png ou jpeg ou jpg
Re: Controle extension php
Posté : 12 août 2022, 22:47
par or 1
c'est ce que vous voulez ?
Re: Controle extension php
Posté : 12 août 2022, 22:49
par filou80
oui tout a fait, mais le soucis c'est quand je met un fichier png ou jpg ou jpeg cela me met toujours que c'est pas bon ....ai je fais une erreur ?
Re: Controle extension php
Posté : 12 août 2022, 22:52
par or 1
if($extensionMinuscule != 'png' || $extensionMinuscule != 'jpeg' || $extensionMinuscule != 'jpg'){
il y a des || entre chaque condition, donc il suffit qu'une seule des 3 conditions soit juste pour que cela retourne true. si l'extension est txt, la première condition est vraie, cela retourne true. si l'extension est png, la seconde condition est vraie, cela retourne true. il y a donc bien une erreur de logique, vu que cela ne peut jamais retourner false.
Re: Controle extension php
Posté : 12 août 2022, 22:54
par filou80
Comment faire ? il faut passer par un tableau ?
Re: Controle extension php
Posté : 12 août 2022, 22:57
par or 1
soit réfléchir, soit passer par in_array() comme indiqué par @rthur
Re: Controle extension php
Posté : 12 août 2022, 23:00
par filou80
avec un elseif ?c'est une piste ou pas ?