IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de session [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut Problème de session
    Bonjour,

    voici le message d'erreur que j'obtiens sur une ouverture de session dans une page de mon site :
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at annoncer2.php:1) in annoncer2.php on line 2

    Merci d'avance.

    Code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    session_start(); //On ouvre la session pour pouvoir verifier si le membre est connecté
    require("Configuration.php"); // accès à la base de données
     
    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    die('<b>'.'Vous n\'êtes pas autoris&eacute; &agrave; acc&eacute;der &agrave; cette page !'.'</b>'); //Si non, on arrete le script et on affiche un message
    }
    $sql = connect_sql();
    $pseudo_membre = $_SESSION['pseudo'];
    $requete = mysql_query("SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'"); 
    $result = mysql_fetch_array ($requete);
    $id = $result['id'];
    $pseudo = $result['pseudo'];
    $mail = $result['mail'];
    /* On peut recuperer plus d'info si besoin */
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <div id="mainContent">
     
    <table width="478" border="0">
        <tr>
        <td width="255">Votre Pseudo : </td>
        <td width="213"><? echo $pseudo; ?></td>
        </tr>
        <tr>
        <td>Votre E-mail : </td>
        <td><? echo $mail; ?></td>
        </tr>
    	<tr>
    	<td><a href="pdf_espace_membre_changeinfo.php">Modifier mes informations</a></td>
    	</tr>	
    	<tr>
    	<td><a href="pdf_deconnexion.php">Deconnexion</a></td>
    	</tr>
    </table>
     
    	<br />
    	<br />
     
    <?php include('formulaire_insertion.php'); ?> <!-- insère le formulaire d'insertion -->
     
    <br />
    <br />
    <br />
    <br />
     
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
     
    </body>
     
    </html>

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 19
    Par défaut
    Citation Envoyé par fazpedro Voir le message
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at annoncer2.php:1) in annoncer2.php on line 2
    Très souvent du à des caractères existant avant l'appel à la session_start().

    Vérifie si tu a pas d'espace/retour à ligne avant le <?php

    Sinon, Est ce que cette page est appelé par un include ?

  3. #3
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut
    à dev_cisii :

    - il n'y a pas d'espace ou de retour chariot avant le <?php

    - annoncer2.php est issue de la page dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <?
    session_start(); // Pour la suite
    require ("Configuration.php"); //accès à la base de données
     
    $pseudo = $_POST['pseudo']; //On recupère le pseudo et le pass
    $pass = $_POST['password'];
    if (!empty($pseudo) && !empty($pass)) //S'ils ne sont pas vides
    {
    	$sql = connect_sql(); //On se connecte à MySQL
    	$reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo'"); //On recupère les infos à partir du pseudo
    	$donnees = mysql_fetch_array ($reponse);
    	$verif = $donnees['pass'];
        $id = $donnees['id'];
    	$pseudo_sql = $donnees['pseudo'];
    	$confirm = $donnees['confirm'];
     
    	if($pass != $verif) //On verifie que le mot de passe entré est égal à celui de la Base de Données, si le passe est différent
    	{
        $reponse = 'Votre identifiant ou votre code secret est incorrect';
    	$redirection = 'pdf_connexion.php'; //On va rediriger vers le formulaire de connexion
    	sleep(30);
        }
    	elseif(!empty($confirm)) //Si le compte n'est pas activé
    	{
    	$reponse = 'Votre compte n\'est pas encore activ&eacute;';
    	$redirection = 'pdf_connexion.php'; //On va rediriger vers le formulaire de connexion
    	sleep(30);
    	}  
    	else //Sinon tout est bon
        {
    	$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
    	$redirection = 'annoncer2.php'; //On redirige vers l'espace membre
    	$reponse = 'Connexion r&eacute;ussie vous allez être redirig&eacute;'.'<br>'.'<a href="annoncer2.php">Rejoindre directement l\'insertion dans l\'agenda</a>';
    	sleep(30);
        }
    	mysql_close($sql); //On ferme la connexion
    }
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr">
    <head>
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
    </head>
    <body>
    <? echo $reponse; ?><!-- La reponse au script -->
    </body>
    </html>

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 19
    Par défaut
    J'ai fait des tests et rien ne semble poser de problème....

    Mise à part au niveau des balises PHP courte, il vaut mieux préféré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    echo $redirection; //La redirection 
    ?>
    Sur le dernière code que tu as poster, la ligne 1 est vide (peut être au copier coller)

    Solution barbare (et pas sur que cela fonctionne), si tu récupère bien tes infos en sessions c'est à dire que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SESSION['pseudo']
    fonctionne,

    tu peux virer le warning avec @
    Sinon je voit pas.

    Dernières pistes:

    Presque le même cas
    En anglais mais correspond plus a ton cas
    > Le deuxième parle d'encodage, si tu peux, ouvre ton fichier dans notepad++ ou autre, te permettant de voir tout les caractères (si ton fichier est issu d'un document au format UTF-8 et pas ISO), il pourrai t'indiquer un caractère invisible/non interpréter par ton éditeur

  5. #5
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut
    Merci dev_cisii !

    j'ai mis le caractère @ :
    @session_start();

    et là plus de message !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. Problème de session
    Par kephy dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2005, 10h08
  3. Problème de session
    Par meda dans le forum Langage
    Réponses: 13
    Dernier message: 25/10/2005, 18h25
  4. problème de session en cours
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 14h36
  5. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo