Accueil > Forum > > > > probleme ouverture session (header)
probleme ouverture session (header)
mardi 29 décembre 2009 à 09:42:20 |
probleme ouverture session (header)

ju0123456789
|
Bonjour, j'ai un souci que je n'arrive malheureusement pas à régler. Je veux gérer les session mais quadn je l'ouvre (par l'intermédiaire d'un Include) ça me met ça :
Code PHP : Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /homepages/12/d311644604/htdocs/payetonju/www/includes/fonctions-systemes.php:1) in /homepages/12/d311644604/htdocs/payetonju/www/connexion.php on line 64
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/12/d311644604/htdocs/payetonju/www/includes/fonctions-systemes.php:1) in /homepages/12/d311644604/htdocs/payetonju/www/connexion.php on line 64
Je pense,et j'espere que c'est pas bien méchant, mais ça me bloque dans le suite du développement de mon site perso depuis plusieurs jours.. arf ! :'(
Pouvez-vous m'aider svp ?
Merci bcp
Ju'
|
|
mardi 29 décembre 2009 à 09:44:52 |
Re : probleme ouverture session (header)

ju0123456789
|
Une petite précision quand meem sur le traitement :
sur ma page d'accueil j'ai mes champs de login et mot de passe, quand on envoi le formulaire ça redirige vers connexion.php qui vérifie sur les valeurs envoyées en POST sont les meme quand dans la base, si c'est le cas alors je fait un session_start pour enfin faire une redirection en javascript vers la page d'accueil (car la redirection php ne marche pas ça me met le meme problemede "header")
Voilà pour faire simple, et merci bcp d'avance :)
|
|
mardi 29 décembre 2009 à 10:36:30 |
Re : probleme ouverture session (header)

Tonio_35
|
étudions le message d'erreur :
Warning: session_start()
Ton problème viens de la fonction session_start.
Cannot send session cookie
Ca c'est le problème
headers already sent
Ca c'est la cause. En fait session_start doit se trouver tout en haut de ton code. Avant même que php ai renvoyé quelque chose au client (Via un echo par exemple).
Tu trouveras à quel endroit quelque-chose à été envoyé au client ici :
by (output started at /homepages/12/d311644604/htdocs/payetonju/www/includes/fonctions-systemes.php:1) in /homepages/12/d311644604/htdocs/payetonju/www/connexion.php on line 64
Dans ton fichier connexion.php, tu dois avoir soit un echo (print ou autre), soit un éspace avant ou après tes balises php.
Exemple :
Code PHP :
Envois au client "Ma page commence par un espace". Du coup pour envoyer ce message php envois les headers et une fois les headers envoyés, plus moyen de les changer...
Code PHP :
N'envoie rien au client
Tu m'as suivis ?
_________________________________
Min iPomme
|
|
mardi 29 décembre 2009 à 10:39:23 |
Re : probleme ouverture session (header)

kohntark
|
Salut,
Toute utilisation de header() ou de session_start() doit se faire avant tout envoi vers le client (un simple saut de ligne avant une balise <?php est un envoi)
En l'occurrence tu envoies déjà quelque chose au client à la ligne 64 de ton fichier connexion.php
Cordialement,
Kohntark -
|
|
mardi 29 décembre 2009 à 10:40:37 |
Re : probleme ouverture session (header)

Tonio_35
|
Encore une fois, ta redirection php fonctionneras si tu n'as encore rien envoyé au client...
Pour éviter ces problèmes d'envois au client tu peux créer un buffer...
Ressource sur les buffer php...
_________________________________
Min iPomme
|
|
mardi 29 décembre 2009 à 10:44:27 |
Re : probleme ouverture session (header)

kohntark
|
 ... quand je dis que je suis lent ... en étant nettement moins précis en plus
Cordialement,
Kohntark -
|
|
mardi 29 décembre 2009 à 10:54:48 |
Re : probleme ouverture session (header)

Tonio_35
|
Désolé  en même temps c'est pas un concours. De plus chacun apporte de quoi mieux comprendre le pb
_________________________________
Min iPomme
|
|
mardi 29 décembre 2009 à 13:38:39 |
Re : probleme ouverture session (header)

ju0123456789
|
Bonjour les gens !
ET merci de vos réponses ! (certains qui m'ont répondu d'innombrables fois à chaque foi que j'en avais besoin et merci !)
Tonio pour ta solution je ne l'ai pas encore testée, car je vais en pause déjeuner et au boulot ce n'est pas sérieux de bosser pour soi :)
En revanche j'ai parfaitement compris ce que tu m'as dit, mais ce que je ne comprends pas c'est que je n'ai aucun affichage avant.
Je testerais cete histoire de buffer qui a l'air interessant, ce soir !
Voici ma source "connexion.php" :
Code PHP : <?php
include_once("fonctions-systemes.php");
if(isset($_POST['login']) && isset($_POST['password']))
{
if($_POST['login'] == "" )
{
$erreurs['general'] = "<font color='red' size='1'>T'as oublié d'entrer ton login</font>";
}
elseif($_POST['password'] == "" )
{
$erreurs['general'] = "<font color='red' size='1'>T'as oublié d'entrer ton mot de passe</font>";
}
elseif($_POST['login'] != "" && $_POST['password'] != "" )
{
$Login = $_POST['login'];
$Pwd = $_POST['password'];
$Conn = mysql_connect($host,$user,$pwd);
$db= mysql_select_db($bdd, $Conn);
$sql = "select NOM,PRENOM,EMAIL,PASSWORD,LOGIN,VALIDE from utilisateurs where LOGIN = '".$Login."' and PASSWORD = '".$Pwd."' ";
$res = mysql_query($sql);
if(mysql_fetch_assoc($res))
{
// $trouve le nombre de resultats d'une requete de lecture nb = mysql_num_rows($res);
// 0 est le numéro de la ligne à récupérer
$prenom = mysql_result($res,0,"PRENOM");
$pass = mysql_result($res,0,"PASSWORD");
$login = mysql_result($res,0,"LOGIN");
$Valide = mysql_result($res,0,"VALIDE");
mysql_close($Conn);
if($Valide == 0 )
{
$erreurs['general'] = "<font color='red' size='1'>Tu n'as pas encore validé ton compte !</font>";
}
else
{
if( $Login == $login && $Pwd == $pass )
{
// si le pass envoyé ET le login sont egale a ceux de la base ALORS connexion
session_start();
$_SESSION['langage'] = 'PHP 5';
$_SESSION['login'] = $Login;
$_SESSION['prenom'] = $prenom;
//header("location:/index.php");
//exit();
echo " <script language=\"Javascript\">var t=setTimeout(\"document.location.replace(\'index.php\')\", 0);</script>";
}
else
{
$erreurs['general'] = "<font color='red' size='1'>Mauvais login ou mot de passe</font>";
/* echo "log envoyé : [".$Login."]<br>";
echo "log base : [".$login."]<br>";
echo "pass envoyé : [".$Pwd."]<br>";
echo "pass base : [".$pass."]<br>"; */
}
}
}
else
{
$erreurs['general'] = "<font color='red' size='1'>Mauvais login ou mot de passe !</font>";
}
}
else
{
$erreurs['general'] = "<font size=2 color='red'><b>Données incorectes</b></font>";
}
}
if(isset($erreurs))
{
include("index.php");
}
?>
Voilà vers quoi on est redirigé quand on se log (ou quand on essaye de se logger, dans mon cas lol)
Si vous voyez l'erreur n'hesitez pas à m'en faire part :) hihi
Merci bcp
|
|
mardi 29 décembre 2009 à 13:49:53 |
Re : probleme ouverture session (header)

Tonio_35
|
Nan en fait c'est ton fichier fonctions-systemes.php qui renvois qqch, on à lu trop vite...
PS : Pense à sécuriser ton code :
Code PHP : <?php
$Login = $_POST['login'];
$Pwd = $_POST['password'];
?>
Un peut de lecture :
[ Lien ]
_________________________________
Min iPomme
|
|
mardi 29 décembre 2009 à 15:04:33 |
Re : probleme ouverture session (header)

ju0123456789
|
Bah mon fichier include fonctions-systemes.php
Code PHP : <?php
if($TagSys != 1)
{
$TagSys = 1;
session_start();
function Random($car, $Ambiguite = NULL )
{
$string = "";
if( $Ambiguite == NULL )
{
$chaine = "0123456789abcdefghijklmnopqrstuvwxyz";
}
else
{
// élimine les chiffres 0 et 1 ainsi que les lettres O et I
$chaine = "23456789abcdefghjklmnpqrstuvwxyz";
}
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++)
{
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}
function LitFichier( $NomFichier )
{
$Contenu = "";
$Fichier = fopen( $NomFichier, "r" );
if( $Fichier != false )
{
while( !feof( $Fichier ) )
{
$Contenu .= fread( $Fichier, 1024 );
}
fclose( $Fichier );
}
else
{
echo "Fichier:$NomFichier, introuvable<br />";
}
return $Contenu;
}
function makeguid( $class )
{
if( $class == "NULL" ) return "00000000-0000-0000-0000-000000000000";
$baseuuid = substr( $class.random(32), 0, 32);
$struuid = md5( $baseuuid );
return strtoupper(substr( $struuid, 0, 8 )."-".substr( $struuid, 8, 4 )."-".substr( $struuid, 12, 4 )."-".substr( $struuid, 16, 4 )."-".substr( $struuid, 20, 12 ));
}
}
?>
Ce fichier est introduit dans quasi chacune des pages car il me semble qu'il faut déclarer la session au début de chaque page on m'a dit.
Et, je ne comprends pas l'utilité de faire
Code PHP : $Login = $_POST['login'];
$Pwd = $_POST['password'];
sachant que j'ai fait
Code PHP : $_POST['login'] = $Login;
$_POST['password'] = $Pwd;
?
merci :)
|
|
Cette discussion est classée dans : php, session, start, homepages, d311644604
Répondre à ce message
Sujets en rapport avec ce message
ERREUR SESSION [ par zgrominet ]
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/63/g/g/e/ggehe
probleme de session [ par alahyaneali ]
Bonjourj'ai un petit probleme avec ma session phpen fait je voudrais juste afficher l'id de ma session et quand j'ecris au début de ma page session_st
free et les sessions !!! [ par kodiask ]
Voilà j'ai un site sous free avec un espace membre et le problème survient pendant le login j'ai un message d'erreur qui apparait : Warning: session_
problème session [ par StiriX ]
Bonjour, J'ai un probleme sur mes sessions. Tout marchait bien, jusqu'a que je recoive ce message d'ereur: Notice: A session had already been started
Session persistante [ par fouhia ]
Bonjour à tous, voilà j'ai petit souci concernant les sessions en php.J'utilise Apache 2, Mysql 5 et PHP 5.J'ai créer une fenêtre de logg dans laquell
problème avec l'initialisation de la session [ par florenzofrance ]
bonjour à tous et à toutes. excusez de vous déranger, je suis confronté à un problème concernant les variable de session sur l'un de mes sites web. qu
session start(); [ par emlesna ]
Bonjour, c'est encore moi,J'ai l'habitude de travailler en local avec Easyphp:Je reçois le message d'erreur suivant à cause de "session_start" :
sessions ==> headers already sent [ par qpzmg ]
Bonjour,je suis en train de créer un espace membre sur mon site.J'ai un problème avec les sessions : Warning: session_start() [function.ses
php session_start [ par regis62 ]
Bonjour.je suis un débutant en php et j'ai un probléme.Dans la page acces_eleve un éléve se connect (grace à des formulaires).Dans la page requete_ele
Erreur session_start [ par DJPGM ]
Bonjour, J'ai un de ses maux de têtes du à un problème de session_start(); Voici l'erreur qui me sort :Warning: session_start() [function.session-
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|