begin process at 2012 05 31 07:03:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

probleme ouverture session (header)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 :
 <?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 :
<?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

Membre Club
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

Membre Club
... 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&eacute; d'entrer ton login</font>";
  }
  elseif($_POST['password'] == "" )
  {
    $erreurs['general'] = "<font color='red' size='1'>T'as oubli&eacute; 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&eacute; 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&eacute;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 :)


1 2 3 4 5

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-


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales