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 :

Redirection et chemin d'accès


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 156
    Par défaut Redirection et chemin d'accès
    Bonjour,

    Voici mon problème : mon site n'est pas situé à la racine du serveur mais dans un sous-dossier (/site/). Dans le fichier /site/include/redirect.php j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header('Location: errors/error.php');
    exit();
    Le fichier error.php est situé à /site/errors/error.php. Mais la redirection échoue (erreur 404 : '/site/include/errors/error.php n'existe pas').

    Si je change le code en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header('Location: /errors/error.php');
    exit();
    => erreur 404 : '/errors/error.php n'existe pas'

    Comment solutionner ce problème, sachant que je ne souhaite pas utiliser de chemin relatif dans la redirection ni faire mentionner le dossier 'site' ?

    PS : le problème est le même si on remplace les redirections par des inclusions (include ou require).

    Merci...

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Pour etre valide, un header("Location: "...); doit indiquer une url absolue avec http deja... si tu met des url relatives ou absolue par rapport a la racine du site, certains navigateur n'interpreterons pas le header correctement.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: http://....');
    Si tu ne souhaites pas faire apparaitre "site", le mieux est peut etre de le gérer sous forme de constante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    include_once('CONSTANTES.php');
    header('Location: http://www.monsite.com/'.PREFIXE_SITE.'errors/...');
    die();
    ?>
    avec : CONSTANTES.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    define('PREFIXE_SITE', 'site/');
    ?>

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 156
    Par défaut
    Merci pour ces informations !

    Mais même avec des constantes le problème reste le même, car j'ai en fait besoin de faire ces redirections sur plusieurs fichiers à différents endroits du site, donc je devrais inclure le fichier 'CONSTANTES.php' depuis ces différents endroits avec les mêmes contraintes (pas de chemin relatif, ni de chemin mentionnant '/site'), ce qui provoquerait les mêmes erreurs ('CONSTANTES.php' introuvable).

    J'ai pensé à utiliser un fichier .htaccess, mais je ne sais pas si c'est possible et encore moins comment faire, je me documente à ce sujet...

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Bonjour, tu peux utiliser la variable super global $_SERVER['DOCUMENT_ROOT'] qui te renvoi le chemin du dossier racine du serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('location:'.$_SERVER['DOCUMENT_ROOT'].'/site/errors/error.php');

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Autre possibilité : dans php.ini tu peux définir un include_path... qui peut contenir le dossier contenant "CONSTANTES.php"
    Ensuite, le include('CONSTANTES.php'); fonctionnera n'importe ou sur le site ;o)

Discussions similaires

  1. Chemin d'accès de MySQL sous linux
    Par sylvain_neus dans le forum Installation
    Réponses: 6
    Dernier message: 17/03/2004, 10h39
  2. Réponses: 12
    Dernier message: 16/03/2004, 14h21
  3. Récupérer le chemin d'accés du PFile.
    Par Laurent Dardenne dans le forum Administration
    Réponses: 7
    Dernier message: 03/02/2004, 17h21
  4. Chemin d'accès d'un fichier
    Par guitaros dans le forum Langage
    Réponses: 6
    Dernier message: 16/01/2004, 09h27
  5. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10

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