Problème de syntaxe

ViPHP
ViPHP | 2291 Messages

20 nov. 2006, 11:50

Bonjour,

J'ai un soucis je crée un formulaire à partir duquel il est possible de télécharger une photo mais il prend pas quand je lui place plusieurs extension autoriser ?
$extension = array('jpg','jpeg','gif','png');
Et par contre ceci fonctionne :
$extension = 'gif';
Pourriez-vous me dire ou est mon erreur ?

D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 nov. 2006, 11:54

Très certainement au niveau du code qui teste les extensions autorisées qui doit gérer une chaine et non pas un tableau :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2291 Messages

20 nov. 2006, 12:09

Très certainement au niveau du code qui teste les extensions autorisées qui doit gérer une chaine et non pas un tableau :)
Salut
$extensions = array('jpg', 'gif');
Non je ne pense pas
$lastPos = strRChr($_FILES['aFile']['name'], ".");
        	if ($lastPos !== false && in_array(strToLower(subStr($lastPos, 1)), $extensions)) {
Il me donne comme erreur que l'extension est pas bonne alors que j'ai bien un fichier avec l'extension autoriser :?: :cry:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

20 nov. 2006, 12:32

Vérifie donc le type mime correspondant plutôt, ça va simplifier :
exemple :
<?php
//...
if($_FILES["aFile"]["type"] == "image/jpeg" || 
   $_FILES["aFile"]["type"] == "image/png" || 
   $_FILES["aFile"]["type"] == "image/gif"
)
{
    //...
?>
Ou encore :
<?php
//...
$extensions = array(
  "image/jpeg",
  "image/png",
  "image/gif"
);
if(!in_array($_FILES['aFile']['type'], $extensions))
{
    //...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 nov. 2006, 12:32

Bizare en effet... tu as affiché les valeurs de :
- $lastPos
- subStr($lastPos, 1)
- strToLower(subStr($lastPos, 1))
- in_array(strToLower(subStr($lastPos, 1)), $extensions)

Pour vérifier ce que contenaient les premières et ce que retournait la dernière ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

20 nov. 2006, 13:45

Un petit print_r ou var_dump s'impose pour vérifier le contenu des valeurs auxquelles tu compares les données sur ton fichier...
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 2291 Messages

20 nov. 2006, 14:48

Vérifie donc le type mime correspondant plutôt, ça va simplifier :
exemple :
<?php
//...
if($_FILES["aFile"]["type"] == "image/jpeg" || 
   $_FILES["aFile"]["type"] == "image/png" || 
   $_FILES["aFile"]["type"] == "image/gif"
)
{
    //...
?>
Ou encore :
<?php
//...
$extensions = array(
  "image/jpeg",
  "image/png",
  "image/gif"
);
if(!in_array($_FILES['aFile']['type'], $extensions))
{
    //...
Merci ta méthode fonctionne.

Merci à tous :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

20 nov. 2006, 15:12

Un peu qu'elle fonctionne, je ne t'en aurais pas parlé sinon :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: