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 :

test include ok mais après


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Points : 98
    Points
    98
    Par défaut test include ok mais après
    Bonjour

    Toujours dans ma logique d'apprentissage, comme un bon élève au travers des tutos j'ai bien compris qu'il fallait tester, re-tester et toujours tester.

    Bon ok, j'ai compris comment tester et que c'est sympa et logique de vérifier qu'un fichier existe avant de l'inclure....

    Mais en réalité ça change quoi ?

    Une fois la logique passé et s'être fait plaisir... Si mon fichier n'existe pas que je le teste ou pas dans tous les cas j'aurais une erreur et je ne pourrait pas afficher ma page et j'aurais une erreur....

    Quand je dis include, je parle aussi pour les require et même les fonctions et class...

    Je teste OK mais ça sert à quoi


    A mon petit niveau j'en suis à teste si le fichier existe, s'il existe charge le, sinon ne le charge pas
    Si je ne testais pas, ben il chargerait s'il existe et ne chargerait pas s'il n'existe pas (puisqu'il ne le trouverait pas) lol

    Voila c'est un peu la limite des tuto... ça permet d'apprendre... ça permet d'utiliser les bonnes pratiques... mais souvent il manque le pourquoi du comment...

    A mon petit niveau d'apprentissage, j’apprends, j'applique... mais parfois je ne comprend pas l’intérêt

    Pouvez-vous m'éclairer sur ce petit point... il doit bien y avoir un intérêt que je ne vois pas encore n'ayant pas d'expérience ou recul

  2. #2
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 153
    Points : 107
    Points
    107
    Par défaut
    Salut, donner la partie de ton code qui pose question serait utile.
    De ce que je comprends à la question, ma réponse serait : quand on fait un test d'existence de fichier on a un retour true/false et pas d'erreur PHP. Si on charge directement le fichier sans vérifier, il y a une erreur PHP s'il n'existe pas. DOnc il vaut mieux tester et ne charger que si le fichier existe ! Ca semble assez logique pour ma part...

  3. #3
    Membre régulier
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Points : 98
    Points
    98
    Par défaut
    Salut Oui c'est logique, c'est bien ce que je dis, je suis d'accord...

    Mais au final... concrètement ça change quoi... ma page ne sera pas changé que je teste ou pas...

    Pour l'utilisateur final ça change rien (si on n'affiche pas les messages d'erreur).

    Le code n'a pas d'importance, c'est juste pour comprendre

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( file_exists( '/config/config.php' ) ) {
     
    	require_once( '/config/config.php' );
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	require_once( '/config/config.php' );
    C'est logique de tester...

    Mais c'est pas logique de vouloir tester un truc pour rien lol j'ai l'impression que c'est juste pour se faire plaisir

    Ou alors il faut traiter si le fichier n'existe pas, mais pour faire quoi -> c'est ça que je ne comprend pas

    Si mon fichier n'existe pas (ma class, ou ma fonction, ou mon bout de texte) je fais quoi ? si je ne fais rien ben ça servait à rien de tester lol

    J'utilise la forum comme un lieu d'échange pour connaitre différents points de vues plus que pour avoir des réponses toutes faites (apprendre seul c'est bien mais pouvoir discuter et échanger c'est mieux)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Toi, tu es du genre à mettre une couche, un slip et un caleçon par dessus...

    Tester, c'est bien. En tirer des conclusions, c'est mieux.
    Prends un peu de recul, et commence à penser par toi-même.


    Indice : "ce n'est pas parce qu'on peut, qu'on doit".
    Dernière modification par Invité ; 10/05/2018 à 11h55.

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    Citation Envoyé par Titum Voir le message
    DOnc il vaut mieux tester et ne charger que si le fichier existe ! Ca semble assez logique pour ma part...
    c'est logique seulement si votre application peut fonctionner sans ce fichier.
    mais si ce fichier est nécessaire, vous avez juste besoin de mettre un "require" puisque dans le fonctionnement normal, le fichier n'a aucune raison de ne pas être présent.

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Moi, je les trouve intéressantes, les questions de scamphp.
    Il coupe les cheveux en 2, puis en 4, puis en 8, puis en 16... En mode tête chercheuse.
    Naïvement, j'ai tendance à répondre :
    Quand tu es en dév, tu veux bien afficher des messages cacateux en Angliche, erreurs fatales ou warnings côté compilation / interprétation, mais quand tu es en prod, tu veux toujours donner l'impression qu'en dehors des pannes serveurs, il n'y aura pas de message cacateux en Angliche, car Mooooââââ, développeur (ou développeuse), je maîtrise mon bazar côté exécution, Môssieur !

    Un exemple avec mes "clients", quand il reviennent vers moi, ils ne me disent pas "Eh machine, tout est pété sur ton site !", ils me disent "Eh machine, la base Schtroumpf n'est pas accessible !" ou "Eh machine, le LDAP n'est pas accessible !"... J'aime bien, petite coquetterie, mais j'aime bien. Sachant qu'un seul de mes sites tape souvent dans 10 bases... Ca me fait gagner du temps et de la tranquillité. du genre pouvoir se dire tout de suite : "Mouarf, ça je m'en fous, c'est pas moi... Ouf ! Faut juste que j'appelle Bidule ! "

    edit :

    J'ajoute un machin qu'un prof nous avait dit dans un cours PHP et sécurité, et qui ne répond absolument pas à ta question.
    En mode, ça n'est pas votre question, mais c'est ma réponse.
    On fait des include automatique avec (au hasard) spl_autoload_register de tout ce qu'il y a dans notre répertoire classes.
    Problème, si on ne fait pas de liste blanche, un hacker pourra instancier n'importe quel fichier de classe qu'il aura déposé dans le répertoire classes...
    Mais j'ai trouvé ça bizarre comme argument, parce que si le hacker en est à poser tous les scripts qu'il veut sur mon serveur, de toute façon, je suis mal non ?

    Edith encore : urbaniste, c'est joli ça comme métier. C'est quoi qu'est-ce ?
    Spécialiste de la ville, l'urbaniste aménage de nouveaux quartiers et réhabilite ceux qui n'offrent pas de bonnes conditions de vie à leurs habitants. Au service des élus, son action s'inscrit toujours dans les politiques publiques de la ville.
    Trop bien ! Je suis rassurée qu'un urbaniste se pose beaucoup beaucoup de questions et ne se lance pas trop au hasard.

  7. #7
    Membre régulier
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Points : 98
    Points
    98
    Par défaut
    en php on se trompe on corrige et on cache ses erreurs...

    en médecine on enterre ses erreurs...

    en architecture et urbanisme on ne peut pas enterrer ou cacher ses erreurs... c'est pour cela que je me pose beaucoup de questions lol

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Bonjour,
    si tu veux pas te casser la tête tu mets
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include('fichier.php');

    Le code continuera de s'executer même si le fichier n'est pas inclus

    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require('fichier.php');
    le code continue de s'executer seulement si le fichier est inclus.

    Pour info, require_once est à utiliser seulement si tu inclus ton fichier une seule fois

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Naïvement, j'ai tendance à répondre :
    Quand tu es en dév, tu veux bien afficher des messages cacateux en Angliche, erreurs fatales ou warnings côté compilation / interprétation, mais quand tu es en prod, tu veux toujours donner l'impression qu'en dehors des pannes serveurs, il n'y aura pas de message cacateux en Angliche, car Mooooââââ, développeur (ou développeuse), je maîtrise mon bazar côté exécution, Môssieur !
    En fait, quand tu es en prod, le mieux c'est d'avoir un gestionnaire d'erreur qui 1) trace l'erreur dans un fichier de log et 2) affiche une jolie page à ton utilisateur avec éventuellement un message compréhensible par l'utilisateur.

    Pour revenir à la question de départ, la problématique est la suivante :
    Est-ce que le fichier peut ne peut être là ?
    Est-ce que le fichier est nécessaire ?

    En général, si tu inclus un fichier dans ton script, il est censé être là (si tu commences à perdre tes fichiers, on est pas rendus) et il est nécessaire (sinon tu ne l'aurais pas inclus)

    file_exists serait plutôt à utiliser dans un cadre de lecture et/ou génération de fichiers. Par exemple : "Si le fichier existe, on le lit, Sinon on le créé"

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/11/2008, 08h12
  2. dpkg--config -a ? oui mais apres ? et pourquoi ?
    Par sp2308 dans le forum Ubuntu
    Réponses: 2
    Dernier message: 12/09/2008, 22h12
  3. Test d'un Input après remplissage
    Par Phenol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/10/2007, 20h23
  4. Limite du Sql? Exec, mais après?
    Par MicaelFelix dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/06/2007, 15h32
  5. Réponses: 2
    Dernier message: 11/12/2006, 13h15

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