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 :

Message d'erreur "Warning: session_start()" [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut Message d'erreur "Warning: session_start()"
    Bonjour à tous,
    J'ai un gro souci avec mon code php qui fonctionne très bien en local mais signale ceci en ligne:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /homez.34/koumalo/www/login.php:9) in /homez.34/koumalo/www/login.php on line 28

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.34/koumalo/www/login.php:9) in /homez.34/koumalo/www/login.php on line 28

    Warning: Cannot modify header information - headers already sent by (output started at /homez.34/koumalo/www/login.php:9) in /homez.34/koumalo/www/login.php on line 30

    Voici le code de la page login.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
    <?php
    include("connexion.php");
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']) ) {
    	extract($_POST);
    	// on recupère le password de la table qui correspond au login du visiteur
    	$sql = "select pass_md5 from admin where login='".$login."'";
    	$req = mysql_query($sql) or die('error');
    	$data = mysql_fetch_assoc($req);
    	if($data['pass_md5'] != $pass) 
    	{
    	?>
    	<script language="JavaScript">
    	alert("Le login ou le mot de passe que vous avez saisie est erroné. Merci de recommencer");
    	window.location.replace("index.php");// On inclut le formulaire d'identification
    	</script>
    	<?php
    	//Une fenêtre d'alerte s'affiche lorsque le login ou le mot de passe est invalide et renvoit vers la page pour se logger
    	}
    	else {
    	session_start(); //on démarre une session
    	$_SESSION['login'] = $login; //la variable de session $_SESSION['login'] récupère le login saisi
    	header("Location: accueil.php");// lien vers la page d'accueil de l'espace privé 
    	}
    }
    else {
    	?>
    	<script language="JavaScript">
    	alert("Vous avez oublié de remplir un champ. Merci de recommencer");
    	window.location.replace("index.php");
    	</script>
    	<?php
    //Une fenêtre d'alerte s'affiche lorsque le login ou le mot de passe est vide et renvoit vers la page pour se logger	
    }
    ?>
    Espérant avoir bien posé mon problème, mervi pour votre contibution

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    C'est encore moi
    Bon j'ai reussi à reoudre le premier souci du "warning:session_start()". mais cette erreur s'affiche encore et m'apêche d'allé à la page accueil.php.
    Ce message est le suivant:

    Warning: Cannot modify header information - headers already sent by (output started at /homez.34/koumalo/www/login.php:10) in /homez.34/koumalo/www/login.php on line 31
    Il me demande de modifier le header mais que je ne sais comment m 'y prendre.

    votre intervantion sera la bien vennue.

  3. #3
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    oui car tu appelles 2 fois session_start();
    une premiere fois dans login.php
    et une deuxieme fois dans accueil.php je suppose.
    ou alors tu laisses un vide avant d´appeler
    session_start().
    comme on ne voit pas la ou tu appelles session_start() c´est pas facile d´apporter une reponse adequate.
    essaies ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if( session_id() == "")
     session_start();
    sinon enoies les codes qui sont soumis a l´erreur.

  4. #4
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    je rectifie, la session doit etre appeler comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start();
    include("connexion.php");
    -----
    ?>
    et non a l´endroit ou tu l´appelles actuellement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Tout dabord un grand merci pour votre intervention qui n'a su tarder

    "warnin: seesion_start est resolut mon ami jeffray03 si votre reponse visait à corriger cet erreur.

    Reste celui de "header" d'où Sabotage fait allusion à javascript qui est comme l'anglais des terrains vierge pour le programmeur en herbe que je suis. pour sortir de ce problème maintenant je vais vous mettre la totalité de mon code pour que vous me dites exactement où il faut mettre quoi!!!

    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
    <?php
    session_start();
    include("connexion.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title></title>
    </head>
    <body><?php
    include("connexion.php");
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']) ) {
    	extract($_POST);
    	// on recupère le password de la table qui correspond au login du visiteur
    	$sql = "select pass_md5 from admin where login='".$login."'";
    	$req = mysql_query($sql) or die('error');
    	$data = mysql_fetch_assoc($req);
    	if($data['pass_md5'] != $pass) 
    	{
    	?>
    	<script language="JavaScript">
    	alert("Le login ou le mot de passe que vous avez saisie est erroné. Merci de recommencer");
    	window.location.replace("index.php");// On inclut le formulaire d'identification
    	</script>
    	<?php
    	//Une fenêtre d'alerte s'affiche lorsque le login ou le mot de passe est invalide et renvoit vers la page pour se logger
    	}
    	else {
    		session_start(); //on démarre une session
    		$_SESSION['login'] = $login; //la variable de session $_SESSION['login'] récupère le login saisi
    	header("Location: accueil.php");// lien vers la page d'accueil de l'espace privé 
    	}
    }
    else {
    	?>
    	<script language="JavaScript">
    	alert("Vous avez oublié de remplir un champ. Merci de recommencer");
    	window.location.replace("index.php");
    	</script>
    	<?php
    //Une fenêtre d'alerte s'affiche lorsque le login ou le mot de passe est vide et renvoit vers la page pour se logger	
    }
    ?>
    </body>
    </html>
    Merci d'avance

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    En gros tu dois te débrouiller pour avoir les header location la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    include("connexion.php");
    header("location:accueil.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    Donc faire les test en haut

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il me demande de modifier le header mais que je ne sais comment m 'y prendre.
    Pour developper il faut connaitre un peu d'anglais
    Le message dit :

    "Les en-tête ne peuvent pas être modifiés - les en-tête ont déjà été envoyées (l'envoi a commencé dans login.php ligne 10)"

    En effet ligne 10 de ton code tu inseres des lignes de javascript, tu ne peux donc pas apres modifier les en-têtes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2007, 14h36
  2. Réponses: 3
    Dernier message: 18/05/2006, 11h17
  3. [FTP] Warning avec ftp_get, mais pas de message d'erreur
    Par NomUtilisateurDejaPris dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 18h12
  4. Rediriger les warnings et messages d'erreur
    Par biggir dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2005, 15h20

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