IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérifier l'extension et la taille


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut Vérifier l'extension et la taille
    Salut,
    j'ai un champ input text où le membre doit mettre un url, je voudrais quand validant il y ait une vérification sur l'extension (en .png, .gif, .jpg, .bmp) et que la largeur soit au maximum de 300 et 200 de hauteur sinon erreur.

    Comment faire?

    Merci

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Pour la taille des images, regarde la fonction getimagesize, elle devrait faire ton bonheur ;-)

    Pour connaitre l'extention, soit tu te fait une ptite fonction qui le fait tout seul, c'est pas bien compliqué, il suffit par exemple de trouver le dernier "." dans la chaine avec un "strpos" et de retourner ce qu'il reste avec un "substr" (Ce n'est qu'une méthode parmi tant d'autre et pas necessairement la meilleure). Ou a la rigeur tu peux utiliser pathinfo si t'a pas envie de t'embeter.

    --
    Rakken

  3. #3
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Cesait il possible de me montrer un exemple?
    Surtout pour vérifier l'extension de l'url.

  4. #4
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    un tour à la FAQ ne fait pas de mal :
    http://php.developpez.com/faq/?page=...lieres_testext

  5. #5
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    Par extension de l'url, je suppose que tu cherches a savoir si l'image qui t'as été soumise est un bmp, un gif...

    dans ce cas, dans le lien qui t'as été donné, on peut lire
    getimagesize() retourne un tableau de 4 éléments. L'index 0 contient la largeur. L'index 1 contient la longueur. L'index 2 contient le type de l'image : 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (Ordre des octets Intel), 8 = TIFF (Ordre des octets Motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF. Ces valeurs correspondent aux constantes IMAGETYPE qui ont été ajoutées en PHP 4.3. L'index 3 contient la chaîne à placer dans les balises IMG : height="xxx" width="yyy"
    Ce qui est interessant, c'est que, même si l'utilisateur cherche a faire le malin en te donnant un fichier que tu ne veux pas (par exemple, renommer un .zip en .gif). La fonction getimagesize ne se fera pas avoir

  6. #6
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Oui, mais comment coder tout ca en php ?

  7. #7
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    pour l'extension tu fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $extension=strrchr($filename,'.');
    $extension=substr($extension,1);
     
    $ext_acceptes = array("png", "gif", "jpg");
     
    if(in_array($extension, $ext_acceptes))
         echo "OK";
    else
         echo "KO";
    pour la taille il y a plein d'exemple sur internet, il suffit de chercher

  8. #8
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    tiens pour la taille aussi (je ne sais pas ce qui m'arrive mais je suis en forme aujourd'hui):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $size = getimagesize($filename);
    $largeur = $size[0];
    $longueur = $size[1];

  9. #9
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Merci, mais pour la taille, où définir le taille maxi de largeur et celle de hauteur?

  10. #10
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    L'index [0] est la largeur.
    L'index [1] est la hauteur.

    Pour faire l'un enfonction de l'autre, crée une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function image($image,$hauteur,$largeur)
    {
    $size = getimagesize("../Images/".$image);
    	if (($size['1']/$hauteur)<($size['0']/$largeur)){
    						 echo '<img width="'.$largeur.'" src="../Images/'.$image.'"/>';  }
    	else {
    						 echo '<img height="'.$hauteur.'" src="../Images/'.$image.'"/>';  
    					}
    }
    Comme ça tu mets directement la fonction avec ta requête d'image, sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html><head><title>Essai fonction image</title></head>
    <body>
    <center>
    <?php image(tonimageici,130,150); ?>
    </center>
    </body>
    </html>
    130 et 150 représentent les données que tu peux spécifier pour les largeurs et hauteurs max.

  11. #11
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Pour faire le test j'ai mis ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    if (isset ($_POST['go']) && $_POST['go']=='Poster') {
     
    $extension=strrchr($filename,'.');
    $extension=substr($extension,1);
     
    $ext_acceptes = array("png", "gif", "jpg", "PNG", "GIF", "JPG");
     
    if(in_array($extension, $ext_acceptes))
         echo "OK";
    else
         echo "KO";
    }
    $size = getimagesize($filename);
    $largeur = $size[0];
    $longueur = $size[1]; 
     
    if ($largeur >100 ) { 
    echo 'erreur';
    } 
    else {
    echo 'taille ok';
    }
    ?>
    <form action="test.php" method="post">
     
     
     <input type="text" name="filename" value="" ><br />
     
    <input type="submit" name="go" value="Poster" >
     
    </form>
    Apparemment ca marche, mais comme faire pour dire si largeur supérieur à 100 ET longueur supérieur à 100 alors erreur?
    Car là j'ai fais que pour largeur.

    Merci

  12. #12
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Ben c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (($largeur >100 )||($hauteur>100)) { 
    echo 'erreur';
    } 
    elseif (($largeur >100 )&&($hauteur>100)){
    echo 'erreur';
    }
    else {
    echo 'taille ok';
    }
    Et voilà !

  13. #13
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Merci à tous.

  14. #14
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Ton formulaire est bizarre...
    C'est pour uploader des images?

    Par ce que là t'uploades rien du tout...

  15. #15
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    C'est pas vraiment pour uploader, mais pour lier un avatar avec une url, mais là c'était juste un formulaire de test, rien à voir avec celui que je vais faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extension pour Chrome - Taille du popup
    Par mermin dans le forum Google Chrome
    Réponses: 1
    Dernier message: 07/12/2010, 15h29
  2. Vérifier une extension
    Par DoUPod dans le forum Langage
    Réponses: 6
    Dernier message: 10/02/2009, 13h11
  3. Vérifier l'extension avant l'upload
    Par matto10 dans le forum Langage
    Réponses: 3
    Dernier message: 05/01/2009, 15h49
  4. Vérifier l'extension et le format d'un fichier image
    Par tagada_tagada dans le forum Langage
    Réponses: 7
    Dernier message: 19/11/2008, 03h59
  5. Vérifier l'extension d'un fichier passé en argument
    Par willem77 dans le forum Débuter
    Réponses: 11
    Dernier message: 14/08/2007, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo