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 :

Erreur à l'inclusion d'une page


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut Erreur à l'inclusion d'une page
    Bonjour à tous,

    J'aurai besoin d'une explication sur mon script d'inclusion de pages. il renvoie également vers la page login si la valeur $_GET est modifié dans l'url.

    Ce dernier inclus bien les pages demandées avec l'index du tableau ($key). Juste que, il m'inclus également et systématiquement la page "login" en plus de la page demandée. Ou ai-je commis mon erreur, svp ?

    Merci
    JLuc
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $tbl_array_gestion = array(
     
                'register'    => ROOT_ADMIN . "/register.php",
                'gestion'    => ROOT_ADMIN . '/gestion.php',
                'login'  => ROOT_ADMIN . '/login.php'
     
            );
     
            if (isset($_GET['p']) && $_GET['p'] != '') {
     
                foreach ($tbl_array_gestion as $key => $link_inc) {
     
                    if (isset($_GET['p']) && array_key_exists($key, $tbl_array_gestion) && $_GET['p'] == $key) {
                        include_once $link_inc;
                    } elseif (isset($_GET['p']) && array_key_exists($key, $tbl_array_gestion) && $_GET['p'] != $key) {
                        include_once(ROOT_ADMIN . "/login.php");
                    }
                }
            } else {
                include_once(ROOT_ADMIN . "/login.php");
            }
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    un exemple d'exécution dans le cas où p = register :
    • au 1er élément de la boucle foreach, le 1er "if" est vrai donc "register.php" est sélectionné
    • au 2e passage, on a $_GET['p'] != gestion ("register" != "gestion") donc login.php est sélectionné


    vous pouvez faire cela plus simplement comme cela :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $tbl_array_gestion = [
    	"register" => "register.php",
    	"gestion" => "gestion.php",
    	"login" => "login.php",
    ];
     
     
    $code_page = "login";
     
    if (	isset($_GET["p"])
    	&&	isset($tbl_array_gestion[$_GET["p"]])
    ) {
    	$code_page = $_GET["p"];
    }
     
     
    require ROOT_ADMIN . "/$code_page";
    exit();

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut
    Bonjour Mathieu et merci pour le coup de main et explications.

    J'ai rajouté => .php à login, ce qui m'apporte la page de connexion.
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $code_page = "login.php";

    Par contre, pour le reste cela provoque une erreur dès que l'on rajoute par exemple gestion à $_GET => index.php?p=gestion :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: require(X:\site\admin\pages/register): Failed to open stream:

    Je pensais parcourir le tbl avec foreach et si la clé du tableau n'existe pas, renvoyer vers la page de connexion.

    JLuc
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

  4. #4
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut
    Mathieu,

    Je suis reparti de ta proposition et modifié comme suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( isset($_GET["p"]) && isset($tbl_array_gestion[$_GET["p"]]))               
                include($tbl_array_gestion[$_GET['p']]);         
            else        
                include_once(ROOT_ADMIN . "/login.php");
    Cela fonctionne maintenant. Merci de ton orientation et bonne journée
    JLuc
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

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

Discussions similaires

  1. Inclusion d'une page .aspx
    Par lesanglier dans le forum SharePoint
    Réponses: 7
    Dernier message: 14/12/2009, 10h36
  2. Message d'erreur au lancement d'une page ASP
    Par jkamelin dans le forum C#
    Réponses: 8
    Dernier message: 31/08/2009, 12h54
  3. Inclusion d'une page HTML dans une interface SWING
    Par Goupo dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/02/2008, 17h52
  4. Réponses: 3
    Dernier message: 19/09/2007, 17h11

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