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 :

<?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 &nbsp;&nbsp;&nbsp;&nbsp;<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)
Jamais rencontré ce problème, désolé…

Par contre :
croco44 a écrit :
<H1>ADMINISTRATION DU SITE &nbsp;&nbsp;&nbsp;&nbsp;<font size=1 align="right">Bla bla</font></H1>

Tu sais que tu vas te faire lyncher sur Alsacréations avec ce genre de code HTML ? Smiley sweatdrop

Ça me confirme dans l'idée que les codeurs PHP sont ceux qui font le HTML le plus imbuvable Smiley lol

Mais rassure-toi, si tu as besoin d'aide pour décrocher de la balise <font>, tu en trouveras ici ! Smiley cligne
mpop a écrit :
Jamais rencontré ce problème, désolé…

Par contre :

Tu sais que tu vas te faire lyncher sur Alsacréations avec ce genre de code HTML ? Smiley sweatdrop

Ça me confirme dans l'idée que les codeurs PHP sont ceux qui font le HTML le plus imbuvable Smiley lol

Mais rassure-toi, si tu as besoin d'aide pour décrocher de la balise <font>, tu en trouveras ici ! Smiley cligne


Quoi donc ? Le truc inscrit entre les balises <H1>...</H1> ?
Oui, pas très beau, c'est vrai, mais ce n'est vraiment ce qui me préoccupe pour le moment ! J'arrangerai ça, ne serait-ce que parce qu'inscrire une balise fonte dans un <H1> qui a une définition en css, ce n'est pas très rationel Smiley confused

Et je commence sur PHP... je ne suis donc pas encore un "codeur PHP".

J'ai encore revule pb évoqué dans tous les sens, pas de solution (à part m'en tenir à des extension de type "txt".

PAR CONTRE :

Je fais appel à une fonction javascript pour pré-valider le formulaire de création de compte (et celui de modification) sur tout ce qui ne nécessite pas de vérification MySQL. maintenant que j'ai purgé les générations de doublons de balises ... mes fonctions javascripts sont totalement ignorées (alors que l'include fonctionne bien, le code javascript est bien intégré dans le code html généré).
Pour javascript :

maintenant que le nettoyage est fait et que ça ne se retrouve plus dans une page html (calculée) elle même inclues dans une page complète, j'ai modifié le DOM dans les fonctions et ça refonctionne.
Modifié par croco44 (20 May 2006 - 23:31)
A propos des .inc contenant du code php : Ne jamais nommer un fichier contenant du code php par autre chose que .php. Des regards indiscrets pouraient .....
QuentinC a écrit :
A propos des .inc contenant du code php : Ne jamais nommer un fichier contenant du code php par autre chose que .php. Des regards indiscrets pouraient .....


Je suis bien d'accord : intialement tous mes fichiers comportant du code html étaient en .php.
Compte tenu du nettoyage indiqué et de ses conséquences (les variables $_SESSION passent à la trappe si ce n'est pas un fichier .txt ou n'importe quoi sauf php ou inc), que faire ? (rassurez-vous, ça ne concerne pas l'include appelant le détail du mysql_connect !..)
Modifié par croco44 (21 May 2006 - 09:39)