Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1807 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Includes ne fonctionnent plus depuis session

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Includes ne fonctionnent plus depuis session

n°1670253
Gavrinis
Open your mind
Posté le 12-01-2008 à 22:20:33  profilanswer
 

Bonjour à tous,
 
Les includes de ma page admin ne fonctionnent plus depuis que j'ai sécurisé la page avec des sessions.
 
Page admin :

Code :
  1. <?php
  2. session_start();
  3. define('INCLUDE', true);
  4. include('includes/config.inc.php');
  5. include('includes/secure.inc.php');
  6. ?>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  9. <head>
  10. <title>Page d'administration</title>
  11. <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
  12. <link rel="stylesheet" type="text/css" href="styles/main.css" />
  13. </head>
  14. <body>
  15. <div id="all">
  16. <div id="cadre_site">
  17.  <div id="nav">
  18.   <table width="100%" border="0">
  19.    <tr>
  20.     <td width="20%" align="center"><img src="images/logout.gif" alt="D&eacute;connexion" /></td>
  21.     <td width="80%"><a href="main.php?logout" class="nav">D&eacute;connexion</a></td>
  22.    </tr>
  23.    <tr>
  24.     <td width="20%" align="center"><img src="images/lien.gif" alt="Liens" /></td>
  25.     <td width="80%"><a href="?page=addlink" class="nav">Ajout d'un lien</a></td>
  26.    </tr>
  27.    <tr>
  28.     <td width="20%" align="center"><img src="images/news.gif" alt="News" /></td>
  29.     <td width="80%"><a href="?page=news" class="nav">Gestion des news</a></td>
  30.    </tr>
  31.   </table>
  32.  </div>
  33.  <div id="main">
  34.   <?php
  35.    switch($_GET['page'])
  36.    {
  37.     case 'addlink' : include ("includes/addlink.php" ); break;
  38.     case 'news' : include ("includes/news.php" ); break;
  39.     default : include ("includes/addlink.php" ); break;
  40.    }
  41.   ?>
  42.  </div>
  43. </div>
  44. </div>
  45. </body>
  46. </html>

Pouvez-vous m'aider s'il vous plait ?


Message édité par Gavrinis le 14-01-2008 à 19:47:53
mood
Publicité
Posté le 12-01-2008 à 22:20:33  profilanswer
 

n°1670302
Gavrinis
Open your mind
Posté le 13-01-2008 à 02:15:51  profilanswer
 

J'ajoute que quand je commente les lignes 35 à 42 tout se passe bien hormis le fait que les includes ne fonctionnent plus mais ceci est logique :D.
 
J'ai trouvé d'autres personnes qui on eut le même problème que moi (celle-ci et celle-là) mais leur solution ne m'a pas aidé :(.

n°1670313
art_dupond
je suis neuneu... oui oui !!
Posté le 13-01-2008 à 09:52:36  profilanswer
 

c'est quoi le problème ?


---------------
oui oui
n°1670321
Gavrinis
Open your mind
Posté le 13-01-2008 à 10:57:09  profilanswer
 

Que mes includes (lignes 35 à 42) ne fonctionnent plus.
Quand je me logue j'ai une erreur de redirection d'header (celle qui renvoit à la page d'authentification si le mot de passe ou login ne sont pas bon) donc il veut m'éjecter mais n'y parvient pas, sûrement à cause d'un bout de code HTML plus haut (je vais y regarder ;)).
En cherchant à mettre le doit sur le problème, j'ai essayé avec une page qui ne contenant pas les includes de mes lignes 35 à 42 et tout s'est passé pour le mieux, je n'avais plus la moindre erreur et il me laissait logué

n°1670326
Gavrinis
Open your mind
Posté le 13-01-2008 à 11:24:03  profilanswer
 

Edit: Dans un soucis de sécurité pour mon futur site, j'ai préféré supprimer ce post afin qu'on ne puisse voir mon code.
 
Merci de respecter mon choix.
Vous trouverez tout de même la solution en fin de topic


Message édité par Gavrinis le 14-01-2008 à 20:03:14
n°1670349
zapan666
Tout est relatif
Posté le 13-01-2008 à 13:47:15  profilanswer
 

Tu as quelque chose qui print des caractères avant l'appel a un header. ca peut etre un echo ou un caractere html qui traine avant, voir juste un espace avant un <?php
 

Code :
  1. header("mlkmkml" );
  2. echo "pouet";


est valide
 

Code :
  1. echo "pouet";
  2. header("mlkmkml" );


est invalide


---------------
my flick r - Just Tab it !
n°1670353
Gavrinis
Open your mind
Posté le 13-01-2008 à 14:00:12  profilanswer
 

oui je sais que je ne peux mettre d'echo, print, HTML, espace avant un header :jap:

n°1670355
Gavrinis
Open your mind
Posté le 13-01-2008 à 14:04:31  profilanswer
 

le seul echo que j'ai est "echo"420 File is included in software.";" mais il n'en tient pas compte vu que ma constante INCLUDE est définie.

n°1670358
Gavrinis
Open your mind
Posté le 13-01-2008 à 14:33:04  profilanswer
 

j'ai beau commenter du code au supprimer certaines parties en début de page, il me dit toujours que l'erreur est en ligne 19 pour main.php et 44 pour secure.inc.php :??: c'est à n'y rien comprendre

n°1670359
zapan666
Tout est relatif
Posté le 13-01-2008 à 14:41:23  profilanswer
 

Code :
  1. echo "420 File is included in software.";


j'ai l'impression qu'il manque un espace après le echo.
 
essaye de mettre un espace. si il n'y en a pas.
après si il y a toujours l'erreur, met la ligne en commentaire pour vérifier que ca vient de ca ou non. Si ce n'est pas le cas, c'est que c'est peut être un peu plus subtil :D


---------------
my flick r - Just Tab it !
mood
Publicité
Posté le 13-01-2008 à 14:41:23  profilanswer
 

n°1670400
Gavrinis
Open your mind
Posté le 13-01-2008 à 16:55:26  profilanswer
 

oui je sais, j'ai déjà enlevé l'espace mais ça n'a rien changé

n°1670402
art_dupond
je suis neuneu... oui oui !!
Posté le 13-01-2008 à 17:03:16  profilanswer
 

c'est bizarre que tu n'aies plus l'erreur quand tu commentes les lignes en dessous :??:

 

t'appelles pas secure.php dans un des fichiers inclus ?


Message édité par art_dupond le 13-01-2008 à 17:04:35

---------------
oui oui
n°1670404
Gavrinis
Open your mind
Posté le 13-01-2008 à 17:07:13  profilanswer
 

non :(

n°1670417
Gavrinis
Open your mind
Posté le 13-01-2008 à 17:48:53  profilanswer
 

zapan666 a écrit :

[code]met la ligne en commentaire pour vérifier que ça vient de ça ou non.


ça n'a rien changé :(

n°1670479
art_dupond
je suis neuneu... oui oui !!
Posté le 13-01-2008 à 20:39:30  profilanswer
 

commente tout et décommente petit à petit jusqu'à ce que plante


---------------
oui oui
n°1670488
Gavrinis
Open your mind
Posté le 13-01-2008 à 20:57:09  profilanswer
 

le problème semble venir du switch car une fois commenté l'erreur disparait et une fois décommenté l'erreur resurgi.

n°1670546
Profil sup​primé
Posté le 13-01-2008 à 23:12:57  answer
 

une erreur dans ton secure.inc.php :  
- session_destroy() ne sera jamais appelé, la redirection est faite avant !
place le avant un header();
 
histoire de faire le ménage :  
- assure toi qu'il n'y ai aucun espace au dessus d'un <?php session_start(); ...
- $HTTP_SERVER_VARS : obsolete depuis des années, utilise $_SERVER
- header("..." ."" ) ...-> "" ne sert strictement à rien

Message cité 1 fois
Message édité par Profil supprimé le 13-01-2008 à 23:13:23
n°1670574
leflos5
On est ou on est pas :)
Posté le 14-01-2008 à 05:42:08  profilanswer
 

Et la ligne 19 de main.php elle est où :??:  
 
Ca veut dire que dans tes pages inclues y'a un truc qui sort avant que le header arrive, ça on a tous compris. Maintenant faut le chercher tranquillement :D Profil progressivement ton code jusqu'à arriver là tu trouveras surement la petite connerie qui te fait perdre ton temps et tes cheveux :D
 
T'utilises pas les tampons, ça peut parfois te donner du fil à retordre si c'est mal synchronisé avec les sorties de toutes l'appli :??: Cf php.ini aussi ;)

n°1670622
art_dupond
je suis neuneu... oui oui !!
Posté le 14-01-2008 à 10:31:00  profilanswer
 

leflos5 a écrit :

Et la ligne 19 de main.php elle est où :??:  
 
Ca veut dire que dans tes pages inclues y'a un truc qui sort avant que le header arrive, ça on a tous compris. Maintenant faut le chercher tranquillement :D Profil progressivement ton code jusqu'à arriver là tu trouveras surement la petite connerie qui te fait perdre ton temps et tes cheveux :D
 
T'utilises pas les tampons, ça peut parfois te donner du fil à retordre si c'est mal synchronisé avec les sorties de toutes l'appli :??: Cf php.ini aussi ;)


ca veut dire quoi ? :jap:


---------------
oui oui
n°1670654
Gavrinis
Open your mind
Posté le 14-01-2008 à 11:10:39  profilanswer
 

merci pour ces conseils :jap:
 

leflos5 a écrit :

Et la ligne 19 de main.php elle est où :??:  
 
Ca veut dire que dans tes pages inclues y'a un truc qui sort avant que le header arrive, ça on a tous compris. Maintenant faut le chercher tranquillement :D Profil progressivement ton code jusqu'à arriver là tu trouveras surement la petite connerie qui te fait perdre ton temps et tes cheveux :D
 
T'utilises pas les tampons, ça peut parfois te donner du fil à retordre si c'est mal synchronisé avec les sorties de toutes l'appli :??: Cf php.ini aussi ;)

La ligne 19 n'a pas lieu d'être une erreur vu que c'est un "table" donc je pense aussi que ça vient d'un fichier inclus. Il y a bien des headers dans "secure.inc.php" mais ils ne font effect que lors d'un problème et il n'y a pas de problème vu que quand je commente mes lignes d'inclusions (35 à 42) tout se passe sans problème.

n°1670797
leflos5
On est ou on est pas :)
Posté le 14-01-2008 à 14:30:53  profilanswer
 

Tampon = buffer, ça met les sorties en tampon et ça vide quand tu demande, si tu demande trop tôt ça part, ou ça part si la config est mal faite et vide au bout de x octets :)
 
ob_start(), ob_*
 
Au pire essaye de voir si ça résoud temporairement ton problème mais faudra bien trouver cette vilaine sortie cachée :D

n°1671016
Gavrinis
Open your mind
Posté le 14-01-2008 à 17:29:27  profilanswer
 

non malheureusement ça ne change rien :(

n°1671043
art_dupond
je suis neuneu... oui oui !!
Posté le 14-01-2008 à 18:24:14  profilanswer
 

leflos5> ah ok j'avais bien pensé comprendre ça mais j'avais du mal à lire les mots dans le bon ordre :p

 


Gavrinis> tu peux poster les codes complets de tes fichiers (sans les données de connexion) ?

 

y compris de addlink.php


Message édité par art_dupond le 14-01-2008 à 18:24:57

---------------
oui oui
n°1671046
czh
Posté le 14-01-2008 à 18:37:40  profilanswer
 

As-tu des espaces ou des sauts de ligne à la fin de tes fichiers inclus juste après le "?>" ?

n°1671054
Gavrinis
Open your mind
Posté le 14-01-2008 à 18:59:51  profilanswer
 

non il n'y a aucun espace ou sauts de ligne

n°1671071
Gavrinis
Open your mind
Posté le 14-01-2008 à 19:21:58  profilanswer
 

Edit: Dans un soucis de sécurité pour mon futur site, j'ai préféré supprimer ce post afin qu'on ne puisse voir mon code.
 
Merci de respecter mon choix ;)
 
------------------------------------------------
 
A ceux qui on le même problème que moi, j'incluais des pages sur une page squelette et j'avais fait la bêtise d'inclure une fois un fichier dans ma page d'inclusion et d'inclure le même fichier une autre fois dans le code de ma page qui allait être incluse.
 
En bref "include('toto.php') ---> require_once('toto.php') // voici la solution


Message édité par Gavrinis le 14-01-2008 à 20:01:38
n°1671079
art_dupond
je suis neuneu... oui oui !!
Posté le 14-01-2008 à 19:32:21  profilanswer
 

ben voilà, tu inclus bien secure.php dans addlink.php


---------------
oui oui
n°1671081
Gavrinis
Open your mind
Posté le 14-01-2008 à 19:36:11  profilanswer
 

mais je dois bien protéger la page addlink.php tout de même :sweat:

n°1671088
art_dupond
je suis neuneu... oui oui !!
Posté le 14-01-2008 à 19:42:44  profilanswer
 

oui mais alors tu ne dis pas que tu n'inclus pas secure.php dans les fichiers inclus :o
 
tu peux utiliser require_once('secure.php');
 
comme ça s'il est déjà inclus, il ne le sera plus, donc ne sera inclus à cet endroit que si addlink est appelé directement


---------------
oui oui
n°1671089
Gavrinis
Open your mind
Posté le 14-01-2008 à 19:42:45  profilanswer
 

que dois-je virer de ces lignes, dans addlink.php ?

Code :
  1. <?php
  2. session_start();
  3. define('INCLUDE', true);
  4. include('config.inc.php');
  5. include('secure.inc.php');
  6. ?>

n°1671093
art_dupond
je suis neuneu... oui oui !!
Posté le 14-01-2008 à 19:44:39  profilanswer
 

sinon, les fichiers qui ne sont que inclus (qui ne sont jamais appelés directement) peuvent êtres mis en dehors de l'arborescence du site ou dans un répertoire protégé

  

ps: je ne sais pas si t'as vu mon message précédent, on a posté en même temps ;)


Message édité par art_dupond le 14-01-2008 à 19:45:13

---------------
oui oui
n°1671095
Gavrinis
Open your mind
Posté le 14-01-2008 à 19:47:22  profilanswer
 

oui j'ai vu :)
 
en tout cas c'est résolu, un grand merci à vous tous et tout particulièrement à toi Art_dupond ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Includes ne fonctionnent plus depuis session

 

Sujets relatifs
[Résolu]Rétrécir une imageProbleme sur theme Php [résolu]
[Résolu] problème strstr() et son 3e paramètre[RESOLU] PB connexion BD Oracle a cause de l'URL
[RESOLU] CSS/PHP[Résolu] Backuper une BDD
[BASH] test si variable contient ./* [Résolu][RESOLU] Signification d'un return
[résolu]probleme de chaine vide non détectée[BASH] Probleme cron et autres [Résolu]
Plus de sujets relatifs à : [Résolu] Includes ne fonctionnent plus depuis session


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR