une dernière pour aujourd'hui, promis.
Je suis en train de faire le ménage dans le prototype de mon site, après avec mis au point la validation du login, et l'outil de gestion création/modification des comptes (histoire qu'un utilisateur puisse changer son adresse email mais pas verrouiller un compte admin...).
Je nettoie tout ça pour que les include soient de vrais include et qu'il n'y ait plus de doublons de <body> dans le code html généré.
Seulement voilà : si les fichiers appelés par include sont en xxx.php ou xxx.inc, la partie de code "included" perd la trace de la variable $_SESSION['sessionlogin'], ce qui a pour conséquence mineure de mettre un message d'erreur là où le nom de l'utilisateur venant de se connecter devrait apparaître, et de cafouiller quand ils 'agit de vérifier ses droits (ça c'est moins mineur comme pb !).
Et, si je laisse la vérification de validité de $_SESSION['sessionlogin'] dans ce bout de code, ça renvoie à la page de login (logique).
Déjà, après avoir re-revérifié tout ça, je ne comprends pas pourquoi un code pourri de doublons de balises HTLM fonctionne très bien, et que se vautre quand c'est nettoyé...
Enfin, si je remplace XXX.php ou .inc par xxx.txt avec le même contenu (et en modifiant les liens, évidemment), tout semble fonctionner !
J'aimerais comprendre...
je donne un exemple :
soit, après ouverture d'une session (page de login), une page A.php mettant en place les pseudo-frames et incluant un contenu par un switch($page) tel que :
et appelant un fichier à inclure comportant, par exemple :
ça fonctionne.
Si je remplace les .txt par .inc ou .php, ça ne reconnait plus la variable de session (mais si je rempalce txt par n'importe quoi, ça fonctionne).
Modifié par croco44 (20 May 2006 - 15:47)
Je suis en train de faire le ménage dans le prototype de mon site, après avec mis au point la validation du login, et l'outil de gestion création/modification des comptes (histoire qu'un utilisateur puisse changer son adresse email mais pas verrouiller un compte admin...).
Je nettoie tout ça pour que les include soient de vrais include et qu'il n'y ait plus de doublons de <body> dans le code html généré.
Seulement voilà : si les fichiers appelés par include sont en xxx.php ou xxx.inc, la partie de code "included" perd la trace de la variable $_SESSION['sessionlogin'], ce qui a pour conséquence mineure de mettre un message d'erreur là où le nom de l'utilisateur venant de se connecter devrait apparaître, et de cafouiller quand ils 'agit de vérifier ses droits (ça c'est moins mineur comme pb !).
Et, si je laisse la vérification de validité de $_SESSION['sessionlogin'] dans ce bout de code, ça renvoie à la page de login (logique).
Déjà, après avoir re-revérifié tout ça, je ne comprends pas pourquoi un code pourri de doublons de balises HTLM fonctionne très bien, et que se vautre quand c'est nettoyé...
Enfin, si je remplace XXX.php ou .inc par xxx.txt avec le même contenu (et en modifiant les liens, évidemment), tout semble fonctionner !
J'aimerais comprendre...
je donne un exemple :
soit, après ouverture d'une session (page de login), une page A.php mettant en place les pseudo-frames et incluant un contenu par un switch($page) tel que :
<?php
if (!isset($_GET['page'])) $page= 'AdminFR'; else $page= $_GET['page'];
switch($page)
{
case 'AdminFR': include ($chemin_racine.'site/squelette/AdminFR.txt');break;
case 'rubriquesFR': include ($chemin_racine.'site/squelette/rubriquesFR.txt');break;
case 'articlesFR':include ($chemin_racine.'site/squelette/articlesFR.txt');break;
case 'comptesFR':include ($chemin_racine.'site/squelette/comptes.txt');break;
/* etc..... */
}
?>
et appelant un fichier à inclure comportant, par exemple :
<H1>ADMINISTRATION DU SITE <font size=1 align="right"><?php echo "session ouverte par \" ".$_SESSION['sessionlogin']." \"";?></font></H1>
ça fonctionne.
Si je remplace les .txt par .inc ou .php, ça ne reconnait plus la variable de session (mais si je rempalce txt par n'importe quoi, ça fonctionne).
Modifié par croco44 (20 May 2006 - 15:47)