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 :

Testez l'existence d'un $_GET


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Halobox
    Invité(e)
    Par défaut Testez l'existence d'un $_GET
    Bpnjour a tous, j'ai un problème, j'ai fait un script qui liste les fichiers a l'intérieur d'un dossier.

    Le nom du dossier étant dans un $_GET,

    En gros ca commence comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $files = array(); 
    $dir = $_GET['cate']; 
    $folder = opendir($dir); 
    while ($name = readdir($folder)) {
    Et biensur quand on ne met pas de paramètre dans l'adresse, ca renvoie une erreur.

    Le problème c'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['cate']) == true){
    ne fonctionne pas.


    Quelqu'un a une idée ???


    Merci d'avance

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Quelle est votre version de PHP ?

    Il est inutile pour un test de tester si la valeur renvoyée est vrai, en l'occurence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['cate'])) {
    suffit. Votre code ne le montre pas mais il faut placer ce test avant l'affectation à $dir. Il vaudrait mieux alors écrire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dir = isset($_GET['cate']) ? $_GET['cate'] : '.';

    Cordialement, Julp

  3. #3
    Halobox
    Invité(e)
    Par défaut
    Edit, non ca ne fonctionne pas.


    J'ai toujours ces 2 erreurs


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/free.fr/6/4/livecontent/index.php on line 43
     
    Warning: closedir(): supplied argument is not a valid Directory resource in /var/www/free.fr/6/4/livecontent/index.php on line 51
    Lorsque le tape http://monsite.index.php

    Et par contre je n'ai aps d'erreur lorsque je tape http://monsite.index.php?

  4. #4
    Membre émérite Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Par défaut
    essaye alors de remplacer isset() par empty(), comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!empty($_GET['cate']))
    {
    // Le chemin du dossier est bon
    }
    Par contre fais gafe au niveau de la sécurité car si on peut appeler un dossier contenant des fichiers distants de ton site ça peut être dangeureux!

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    faudrait peut-être que tu montres un peu plus de ton code, en l'occurence les lignes 40 à 55...

  6. #6
    Halobox
    Invité(e)
    Par défaut
    Merci trattos ca fonctionne parfaitement

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par trattos
    Par contre fais gafe au niveau de la sécurité car si on peut appeler un dossier contenant des fichiers distants de ton site ça peut être dangeureux!
    +1
    On ne répétera jamais assez qu'il ne faut jamais faire confiance aux données transmises par l'utilisateur, et donc qu'il faut systématiquement les valider avant de les utiliser dans un script.

Discussions similaires

  1. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55
  2. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49
  3. Existe-t'il un type tenant sur 2 octets ?
    Par benj63 dans le forum C++Builder
    Réponses: 13
    Dernier message: 20/06/2002, 17h03
  4. Existe t'il un composant permettant de jouer un son wav?
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/06/2002, 14h10
  5. Existe-t-il un langage de prog "virtuel" en Français
    Par HRS dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 10/06/2002, 18h11

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