Includes ne fonctionnent plus depuis session [Résolu] - PHP - Programmation
Marsh Posté le 13-01-2008 à 02:15:51
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 .
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é .
Marsh Posté le 13-01-2008 à 10:57:09
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é
Marsh Posté le 13-01-2008 à 11:24:03
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
Marsh Posté le 13-01-2008 à 13:47:15
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 :
|
est valide
Code :
|
est invalide
Marsh Posté le 13-01-2008 à 14:00:12
oui je sais que je ne peux mettre d'echo, print, HTML, espace avant un header
Marsh Posté le 13-01-2008 à 14:04:31
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.
Marsh Posté le 13-01-2008 à 14:33:04
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
Marsh Posté le 13-01-2008 à 14:41:23
Code :
|
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
Marsh Posté le 13-01-2008 à 16:55:26
oui je sais, j'ai déjà enlevé l'espace mais ça n'a rien changé
Marsh Posté le 13-01-2008 à 17:48:53
zapan666 a écrit : [code]met la ligne en commentaire pour vérifier que ça vient de ça ou non. |
ça n'a rien changé
Marsh Posté le 13-01-2008 à 20:57:09
le problème semble venir du switch car une fois commenté l'erreur disparait et une fois décommenté l'erreur resurgi.
Marsh Posté le 13-01-2008 à 23:12:57
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
Marsh Posté le 14-01-2008 à 05:42:08
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 Profil progressivement ton code jusqu'à arriver là tu trouveras surement la petite connerie qui te fait perdre ton temps et tes cheveux
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
Marsh Posté le 14-01-2008 à 10:31:00
leflos5 a écrit : Et la ligne 19 de main.php elle est où |
ca veut dire quoi ?
Marsh Posté le 14-01-2008 à 11:10:39
merci pour ces conseils
leflos5 a écrit : Et la ligne 19 de main.php elle est où |
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.
Marsh Posté le 14-01-2008 à 14:30:53
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
Marsh Posté le 14-01-2008 à 18:24:14
leflos5> ah ok j'avais bien pensé comprendre ça mais j'avais du mal à lire les mots dans le bon ordre
Gavrinis> tu peux poster les codes complets de tes fichiers (sans les données de connexion) ?
y compris de addlink.php
Marsh Posté le 14-01-2008 à 18:37:40
As-tu des espaces ou des sauts de ligne à la fin de tes fichiers inclus juste après le "?>" ?
Marsh Posté le 14-01-2008 à 19:21:58
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
Marsh Posté le 14-01-2008 à 19:36:11
mais je dois bien protéger la page addlink.php tout de même
Marsh Posté le 14-01-2008 à 19:42:44
oui mais alors tu ne dis pas que tu n'inclus pas secure.php dans les fichiers inclus
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
Marsh Posté le 14-01-2008 à 19:42:45
que dois-je virer de ces lignes, dans addlink.php ?
Code :
|
Marsh Posté le 14-01-2008 à 19:44:39
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
Marsh Posté le 14-01-2008 à 19:47:22
oui j'ai vu
en tout cas c'est résolu, un grand merci à vous tous et tout particulièrement à toi Art_dupond
Marsh Posté le 12-01-2008 à 22:20:33
Bonjour à tous,
Les includes de ma page admin ne fonctionnent plus depuis que j'ai sécurisé la page avec des sessions.
Page admin :
Pouvez-vous m'aider s'il vous plait ?
Message édité par Gavrinis le 14-01-2008 à 19:47:53