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 :

Include non effectué, bon chemin


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Par défaut Include non effectué, bon chemin
    Bonjour à tous,

    Je me trouve aujourd'hui confronté a un problème épineux, dont je n'arrive pas a trouver la porte de sortie, c'est pourquoi je m'adresse a vous.

    Premièrement, situons le problème. Je suis en train de regrouper tout les processus d'authentification d'un site web en une seule fenêtre. J'ai choisi d'utiliser un div caché dans un élément présent sur toute les pages de ce site web, que j'active avec un script javascript. Dans ce div est inclus le formulaire d'authentification.

    Ma première question est une question d'ordre théorique.
    Dans l'hypothèse ou je suis capable de créer un lien vers une page .php, et que ce lien est valide, un include de cette page .php est il dans TOUT les cas obligé de fonctionner ?

    Je pose cette question parce qu'au moment d'importer mon travail sur le site en ligne, mon include marche sur TOUTE les pages web du site, SAUF sur l'accueil, ou la fenêtre (qui s'ouvre bien) reste vide.

    La première chose a laquelle j'ai pensé était une erreur bête de php/html dans l'include, mais il s'avère que la page chargée est la même peu importe ou on se trouve dans le site web, et si cet include marche sur toute les pages, pourquoi pas sur la page d'accueil ?

    J'ai essayé de vérifier l’accès du lien depuis ma page d'accueil de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div id=auth>
    <a href="/../../auth.php">lien</a>
    <?php include("/../../auth.php"); ?>
    </div>
    Quand j'affiche le div, je retrouve bien entendu mon lien, qui pointe vers la bonne page, et qui est valide ( si je clique, j'arrive bien sur mon formulaire d'authentification), mais en revanche, l'include, lui, ne se fait pas. Et encore une fois, ceci n'arrive QUE sur la page d'accueil du site web.

    Comme je sais pertinemment que dans l'informatique y'a rien de magique, je sais que soit j'ai du faire une erreur quelque part, soit que je ne connais pas toute les subtilités de la fonction include, soit qu'il y a une autre chose qui coince, mais que cette chose existe et que ce n'est pas tombé du ciel.

    Auriez vous des propositions a me faire quand a la résolution de ce problème ?

    En vous remerciant par avance...

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu confonds chemin Unix et chemin HTTP. Ton lien va se référer au chemin HTTP pour rediriger vers la bonne page. Ton include va chercher le fichier dans le système de fichiers (donc chemin Unix).
    Dans ton utilisation de l'include, tu lui demandes de remonter de deux niveaux à partir de la racine même de ton système de fichiers, ce qui n'est absolument pas possible (il va rester à la racine) et d'inclure le fichier auth.php qui est donc à la racine. Je doute qu'il existe ..

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Par défaut
    Mwi, regrettable erreur effectivement.

    Cependant, admettons que mes pages soient stockées sur un serveur accessible par ftp dans lequel mon fichier auth.php se trouverait dans l'arborescence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include/file_include/auth.php
    Si mon fichier contenant l'include se trouve dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    authrepath/path2/top.php
    dans mon fichier top.php, si je fais un include de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("/../../include/file_include/auth.php"); ?>
    je suis bien censé récupérer le fichier auth.php dans mon include n'est ce pas ?

    Ou bien quand on effectue un include, on part forcément de la racine du systeme de fichier? Et dans ce cas l'include devrait etre de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("/include/file_include/auth.php"); ?>
    En l'occurence, ce qui est étrange, c'est que je le récupère bien sur toute les pages web de mon site internet, sauf sur l'acceuil. Et pourtant mon top.php contenant le div et le auth.php ne bougent pas en cours de route

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Encore une fois, le premier slash de ton include le renvoie à la racine de ton système de fichiers.
    Ton accès FTP pointe vers un dossier de ton système de fichiers. Par exemple :
    /htdocs/sites/monsite1
    Le chemin à partir de la racine de ton système de fichiers serait :
    /htdocs/sites/monsite1/include/file_include/auth.php
    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include( '/htdocs/sites/monsite1/include/file_include/auth.php' );
    ?>
    A priori dans la configuration de ton VHOST, un DOCUMENT_ROOT est correctement configuré et tu es censé pouvoir accéder à ton fichier comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include( $_SERVER['DOCUMENT_ROOT'] . '/include/file_include/auth.php' );
    ?>
    Et pour prendre ton exemple avec un chemin relatif :
    Citation Envoyé par Pimouss_Epita Voir le message
    dans mon fichier top.php, si je fais un include de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("/../../include/file_include/auth.php"); ?>
    Ton premier slash est de trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("../../include/file_include/auth.php"); ?>

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Par défaut
    C'est donc cela !

    Je te remercie donc pour cette réponse complête, j'pense avoir saisi le principe, il me manquait juste l'information du "le premier slash = racine du dossier"

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

Discussions similaires

  1. Update non effectué
    Par nellynew dans le forum Access
    Réponses: 1
    Dernier message: 13/09/2006, 12h37
  2. Include non fonctionnel
    Par linar009 dans le forum Général JavaScript
    Réponses: 31
    Dernier message: 11/08/2006, 09h48
  3. [Upload] Upload de wav et renommage non effectué
    Par PuppeT mAsTer dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2006, 18h22
  4. [Cookies] include non persistant en mémoire
    Par ouioui2000 dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2005, 15h07
  5. INCLUDE non exécuté
    Par Sadneth dans le forum ASP
    Réponses: 3
    Dernier message: 07/09/2003, 00h44

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