Problème de header - PHP - Programmation
Marsh Posté le 20-08-2004 à 10:42:43
"et encore un" oui je c qu'il y a énormément de personne qui ont se probleme et en effet je n'ai pas regardé avant pour voir si d'autre sujet existaient. Mais il n'y a aucun espace ni de caratère avant le <? ...
Désoler pour la redondance.
Ce ne peut venir que de ca? our y aurait-il d'autre cause?
Marsh Posté le 20-08-2004 à 11:44:51
Le pb c'est que ta page est incluse dans une autre, me trompe-je ?
C'est dans la page qui appelle ce script qu'il y a un header() ou du HTML écrit sur la sortie, mais si ta connexion plante, le die() va écrire qqch et le header() derrière te gueule dessus.
Poste donc un morceau de etatcivil.php.
Marsh Posté le 20-08-2004 à 11:46:39
<?
session_start();
require "../fonctions/pass.php";
include "../fonctions/fonction.entête.pdpage.php";
include "../fonctions/fonction.session.php";
$session=ChercheSession(session_id());
if(!sessionValide($session)){
$err=3;
include "../index.php";
exit();
}
entête("Etat Civil","../controleJS/controle_etatcivil.js" );
?>
<style type="text/css">
<!--
.Style4 {color: #000000}
.Style6 {color: #00CCCC}
.Style7 {font-weight: bold}
-->
</style>
<div align="center">
<?
voila le début, vous voulez autres choses?
Marsh Posté le 20-08-2004 à 12:11:36
A mon avis ton srcipt de connexion plante, c'est ce que je comprends avec ton msg d'erreur.
donc tu tombes dans ton if(!sessionValide($session)) et la tu fais un include de "../index.php"; qui a toutes les chances de commencer par un session_start() qui n'apprécie pas que le die() de la connexion ait écrit qqch.
1. vérifie ta connexion
2. remplace include "../index.php"; par :
Code :
|
Marsh Posté le 20-08-2004 à 13:54:52
pardon mais c koi le die() de connexion? et y t il un moyen pour qu'il n'écrive rien?
Marsh Posté le 20-08-2004 à 14:06:51
le die() c'est le message que tu va afficher si la requete de connexion échoue...
pour qu'il n'écrive rien il suffit que ta connexion n'échoue pas --> écoute ce que te dise les autres et commence par vérifier ta connexion
Marsh Posté le 20-08-2004 à 14:16:01
oki, mais si j'ai une erreur, j'ai un message qui dois s'afficher normalement non?
Sinon, je v la verifie et écouter vos conseil , je vous tiens au courant
Marsh Posté le 20-08-2004 à 14:23:10
La connexion est bonne et la selection de la base aussi, j'ai enlever le die et toujours la même erreur
Marsh Posté le 20-08-2004 à 14:23:43
bicotte a écrit : |
vu ton code, oui tu devrait avoir le message "Impossible de se connecter :" suivi du code d'erreur mySQL...
mais en analysant mieux ton message d'erreur, je dois dire que je ne suis plus très sur du pb qu'on incrémine...
bicotte a écrit : |
ce n'est pas le message du die qui te pose pb, plutot un pb de "session_start" ou de "session_register" à mon avis
Marsh Posté le 20-08-2004 à 14:25:20
Citation : ce n'est pas le message du die qui te pose pb, plutot un pb de "session_start" ou de "session_register" à mon avis |
Je ve bien te croire mais dans ce cas que dois-je changer??
Marsh Posté le 20-08-2004 à 14:27:07
démarrer ta session dans la page d'origine, et non pas dans une page incluse pour etre sur qu'aucune information de header ai été envoyée avant...
Marsh Posté le 20-08-2004 à 14:34:14
corrige moi si je me trompe :
le session start doit etre utilisé au debut de tout les pages php qui s'affiche (en tout cas toutes les pages ou il y a des requetes).
Mais la plupart de ces pages doivent être rapellé par un include...
Marsh Posté le 20-08-2004 à 14:39:59
UN SEUL session_start (enfin il me semble), par contre un session_register("nom_variable" ) pour chaque nouvelle variable à déclarer comme variable de session...
Une fois la variables étant en vrariable de session, tu y accède par le $nom_variable classique, comme toute autre variable...
Marsh Posté le 20-08-2004 à 15:28:26
j'ai utilisé le $_session[] car il parait que c mieux. J'ai aussi enlever les session_start pour le mettre qu'une seule fois, dans la page principale. j'initialise le $_session avec le numéro de la session dans la page principal.
Mais lorsque que je passe dans d'autre page, le $_session n'a plus de valeur....
ps : la page principal est en fait la page de connexion.. ou je rentre le login et le mot de passe
Marsh Posté le 20-08-2004 à 15:31:09
etatcivil.php n'est pas incluse dans une autre ?
et dans ce code :
Code :
|
aucun des scripts inclus ne fait de session_start () ?
enfin, le code de pass.php que tu as posté est complet ?
Marsh Posté le 20-08-2004 à 15:33:02
(a propos du msg que tu as posté pdt que je tapais le mien )
le session_start() doit être inclus au début de toutes les pages qui vont utiliser des variables de session. mais s'il y a des inclusions à répétition, assure-toi qu'il n'y soit qu'une fois et au début
Marsh Posté le 21-08-2004 à 21:06:32
Je dis ça comme ça, et j'accepte la flagellation en public si j'ai alourdi tous mes codes de caractères inutiles, mais on ne doit pas mettre :
<?php
quand on écrit du php sur une page ? Je ne le vois nulle part dans les codes précédents...
Marsh Posté le 22-08-2004 à 03:30:13
c'est recommandé de le mettre oui. mais beaucoup l'oublie
Marsh Posté le 20-08-2004 à 10:34:59
Bonjour à tous!
J'ai un probleme de header et je c po du tout d'ou ca vient. Voici l'erreur que je rencontre le plus souvent :
Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/html/NetG2Paie/fonctions/pass.php:1) in /var/www/html/NetG2Paie/segment/etatcivil.php on line 2
L'énorme problème c que je n'ai plus aucun header dans mon code, et dans aucune des autres pages de mon site...
Voici le code de la page "pass.php" :
<? $link=mysql_pconnect("***","***","***" ) or die("Impossible de se connecter : ".mysql_error()); mysql_select_db("***" ); ?>
Je deviens fou
Please Help!