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 :

probleme des liens


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut probleme des liens
    Bonjour,

    Je ne sais pas s'il a le remede à mon problème? Mon site et en niveau 1 (tous les fichiers PHP sont au même niveau). Mon fichier de menu , qui s"appelle menu.phpy s'y trouve : voici sont contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="presentation.php" target="_self"> &nbsp;Pr&eacute;sentation<br />
          </a><br />
    <a href="contact.php" target="_self" ">&nbsp;Contact</a>
    J'ai ajouté les autres dossiers mais au niveau 5 (dossier dans le dossier dans le dossier etc.) j'ai inclu le page des liens dans le fichier de 5ème niveau comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("../../../../menu.php");  ?>.
    l'affichage et correct mais les liens sont cassés. Car tous les autres fichiers qui se trouve dans les liens sont au niveau 1 . est-ce qu'il y a le remède pour modifier les liens dans le fichier menu.php pour qu'il puissent atteindre tous les ficchiers en question de tous les niveau du site (quelque chose dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SERVER['PHP_SELF'].
    J'avous , je suis un peu désespèrée car cela fait déjà plusieurs jour que je suis sur ce problème.

    Merci d'avance pour vous réponses.
    @+,

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Bonjour,

    On peut peut être bidouiller un petit quelque chose.
    $_SERVER['PHP_SELF'] te retourne le nom du fichier du script en cours d'exécution, par rapport à la racine web, on va donc s'en servir.
    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo substr_count($_SERVER['PHP_SELF'], '/') - 1;
    tu obtiens le nombre de sous dossier.

    C'est peut être pas très clair

    Mais tu dois pouvoir utiliser le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $temp = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    $link = '';
    for ($i=0; $i<$temp; $i++)
    {
      $link .= '../';
    }
    include($link.'test.php');
    ?>
    Ça devrait marcher, maintenant je ne sais pas si c'est le plus mieux bien chouette

  3. #3
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut
    J'ai dû mal! Tu l'integre ce code dans le fichier menu.php? Pourrais-tu m'expliquer un peu plus stp.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Hmmm je me suis peut être emballé, mal compris ton pb

    Alors dans ton cas, à chaque fois que tu fais ton inclusion de menu.php utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $_GET['temp'] = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    include("../../../../menu.php");
    ?>
    En adaptant les "../" en fonction du niveau ou se trouve ton fichier.

    Ensuite dans ta page menu.php, tu récupère la valeur de temp et tu utilise la boucle for que je t'ai donné précédemment dans tes liens.
    Exemple page.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $link = '';
    for ($i=0; $i<$temp; $i++)
    {
      $link .= '../';
    }
    ?>
    <a href="<?php echo $link.'test.php'; ?>" alt="test">test</a>
    Ainsi en fonction de ta variable temp, les liens vont être modifiés.
    Oublie pas de bien récupérer la valeur de $_GET['temp'] dans tes pages et ça devrait fonctionner.
    Désolé je n'ai pas le temps de tester maintenant, si tu a un soucis j'essaierai de voir ça plus en détails.

  5. #5
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut
    Merci, mais j'ai une message d'erreur à l'affichage: Notice: Undefined variable: temp in C:\Program Files\EasyPHP 2.0b1\www.... Et pourtant la variable devrait être transferer avec $_GET

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Comment récupère tu la valeur de $temp dans tes pages ?

  7. #7
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut
    Arnaud! Merci beaucoup!!!!

    J'ai ajouté la ligne $temp = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    que tu as donné dans le precedant poste dans le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $link = '';
    for ($i=0; $i<$temp; $i++)
    {
      $link .= '../';
    }
    ?>
    <a href="<?php echo $link.'test.php'; ?>" alt="test">test</a>
    que tu viens de donner et ça marche maintenant ( en tout cas en première vue). je vais faire les testes approfondis. Cela veut dire que j'ai ecrit ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $temp = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    $link = '';
    for ($i=0; $i<$temp; $i++)
    {
      $link .= '../';
    }
    ?>
    Je vais faire les testes plus approfondis maintenant!!!!

  8. #8
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut
    Il me semble qu'on peut n'ai pas utiliser la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET['temp'] = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    dans le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $_GET['temp'] = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    include("../../../../menu.php");
    ?>
    Mais peut-être je me trompe , je vais vérifier

  9. #9
    Nouveau membre du Club Avatar de tania.du
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Points : 38
    Points
    38
    Par défaut
    Je récapitule pour les gens qui ont le même problème:

    Dans le fichier , nommerons-la Page.php, j'intégre le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include("../../../../menu.php"); // le fichier page est au niveau 5;
    ?>
    Dans le fichier Menu.php j'intégre le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $temp = substr_count($_SERVER['PHP_SELF'], '/') - 1;
    $link = '';
    for ($i=0; $i<$temp; $i++)
    {
      $link .= '../';
    }
    ?>
    <a href="<?php echo $link.'presentation.php'; ?>" alt="test">presentation</a>
    MERCI ARNAUD!!!!!

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    J'ai étais un peu débordé en fin de journée au boulot, content de voir que tu a réussi

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

Discussions similaires

  1. Template + probleme à l'édition des liens
    Par ExSter dans le forum Langage
    Réponses: 11
    Dernier message: 07/12/2006, 23h13
  2. probleme avec des liens
    Par eon-of-the-scorn dans le forum Langage
    Réponses: 9
    Dernier message: 28/07/2006, 10h32
  3. Problème d'édition des liens
    Par keyra dans le forum C
    Réponses: 9
    Dernier message: 30/04/2006, 12h48
  4. [FLASH MX] Probleme avec des liens.
    Par maxcmoi dans le forum Flash
    Réponses: 2
    Dernier message: 12/11/2005, 11h11

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