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

Langage PHP Discussion :

Impossible de créer des sessions


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut Impossible de créer des sessions
    Bonjour à tous, je me permets de vous demander de l'aide car après avoir consulté les FAQ et autres je ne trouve pas la solution à mon problème...

    J'ai une page de connexion ou l'utilisateur rentre login+mdp, il est ensuite dirigé vers la page login.php qui vérifie ses identifiants et normalement créé la session mais c'est là que ce pose le problème...

    J'obtiens ces erreurs pourtant je n'envoie pas d'infos avant et je n'ai pas d'espace avant <?php :

    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\blog\admin\login.php:1) in c:\program files\easyphp1-8\www\blog\admin\login.php on line 2

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\blog\admin\login.php:1) in c:\program files\easyphp1-8\www\blog\admin\login.php on line 2
    Voici mon fichier 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
    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
    64
    65
    66
    67
    68
    <?php
    session_start();
     
    require("../page/fonctions.php");
     
    //Appel de la fonction connexion 
    connexion();
     
    // Récupération du login
    $login  = $_POST['login'];
    $login  =addslashes($login);
     
    //Recupération du mot de passe
    $passwd= $_POST['passwd'];
    $passwd=addslashes($passwd);
     
     
    if ($login=="") {
    	echo "Vous n'avez pas saisi de login.<br /><a href='./index.php'>Retour à la page précédente</a>";
     
    }
    else if ($passwd=="") {
    	echo "Vous n'avez pas saisi de mot de passe.<br /><a href='./index.php'>Retour à la page précédente</a>";
     
    }
     
    else {
    	$mdp="";
    	$type="";
     
    	$listeU= mysql_query ("SELECT * from user WHERE LoginUser='$login';",connexion());
    	$nbU=mysql_num_rows($listeU);
     
    	//Verification que l'utilisateur soit connu
    	if ($nbU==0) {
    		echo "L'utilisateur n'existe pas.<br /><a href='index.html'>Retour</a>";
    	}
     
    	else {
    		while ($ad=mysql_fetch_object($listeU))
    			{
    			$mdp=$ad->MdpUser;
    			$stat=$ad->Admin;
    			}
     
    		if ($mdp==md5($passwd)) {
     
    				//Creation de la session
    				$_SESSION["login"] = $login;
    				$_SESSION["passwd"] = $mdp;
    				$_SESSION["stat"] = $stat;
     
    				if ($stat==0)
    				{	
    					echo "<META http-equiv=\"refresh\" content=\"1.5; URL=redacteur.php\">";
    				}
    				else
    				{
    					echo "<META http-equiv=\"refresh\" content=\"1.5; URL=admin.php\">";
    				}
    		}
    		else {
    			//Mot de passe incorrect
    			echo "Mauvais mot de passe<br /><a href='index.php'>Retour à la page précédente</a>";
    		}
    	}
    }
    ?>
    Merci de m'aider

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    si tu es chez free comme hébergeur : il te faut créer un répertoire session/ ou sessions/ (je ne sais plus) à la racine de ton site...

    Bonne soirée

  3. #3
    Membre régulier
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Points : 108
    Points
    108
    Par défaut
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\blog\admin\login.php:1) in c:\program files\easyphp1-8\www\blog\admin\login.php on line 2
    ==> il n'est pas chez free donc le problème ne vient pas de la.

    As-tu modifié ton php.ini ? il y a surement quelquechose sur le stockage des sessions regarde.

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    Merci de vos réponses, en effet je ne suis pas chez Free, et je n'ai jamais touché php.ini..

    Voici la partie sessions du phpinfo() :

    session
    Session Support enabled
    Registered save handlers files user

    Directive Local Value Master Value
    session.auto_start Off Off
    session.bug_compat_42 Off Off
    session.bug_compat_warn On On
    session.cache_expire 180 180
    session.cache_limiter nocache nocache
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.cookie_path / /
    session.cookie_secure Off Off
    session.entropy_file no value no value
    session.entropy_length 0 0
    session.gc_divisor 1000 1000
    session.gc_maxlifetime 1440 1440
    session.gc_probability 1 1
    session.name PHPSESSID PHPSESSID
    session.referer_check no value no value
    session.save_handler files files
    session.save_path C:/Program Files/EasyPHP1-8\tmp\ C:/Program Files/EasyPHP1-8\tmp\
    session.serialize_handler php php
    session.use_cookies On On
    session.use_only_cookies Off Off
    session.use_trans_sid Off Off

  5. #5
    Membre régulier
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Points : 108
    Points
    108
    Par défaut
    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.use_cookies=off
    dans ton php.ini

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    J'obtiens plus qu'un seul message d'erreur en suivant ton conseil, mais j'ai toujours :

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\blog\admin\login.php:1) in c:\program files\easyphp1-8\www\blog\admin\login.php on line 2
    Pour info, je développe en local sous easyphp 1.8

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    Bon j'ai résolu une partie de mon problème, mais j'ai toujours un problème avec mes sessions et cela ne vient pas de mon fichier de configuration.

    J'ai un fichier index.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
    <?
    //En-tête
    echo "<html>"
    	."<head>"
    	."<title>.:Partie Administration:.</title>"
    	."<link rel=\"stylesheet\" type=\"text/css\" href=\"styleadmin.css\">"
    	."</head><body>";
     
    echo "<form method=\"POST\" action=\"connect.php\">
    	<div style=\"text-align:center\">
      	<table cellpadding=\"1px\" cellspacing=\"1px\" style=\"width:30%;border: 1px #006699 solid;background-color:#FFFF99;margin-left:auto;margin-right:auto;text-align:center \">
    	<td align=\"center\" class=\"haut\" colspan=2><b>Connexion</b></td></tr>
    	<tr><td class=\"media\"><br />Pseudo</td>
    	<td class=\"media\"><br /><input type=\"text\" name=\"pseudo\" size=\"20\"></td></tr>
    	<tr><td class=\"media\" valign=\"top\"><br />Mot de passe</td>
    	<td class=\"media\" valign=\"top\">
    	<br /><input type=\"password\" name=\"pass\" size=\"20\"></td></tr><br />
        <tr><td colspan=2 align=center class=\"media\">
    	<br/><input type=\"submit\" name='submit' value=\"Envoyer\"></td></tr>
    	</table></div>
    	</form><div style=\"text-align:center\"><a href=\"../index.php\">Retour au blog</a></div>";
     
    //Fin de la page
    echo "</body></html>";
    ?>
    Ensuite j'ai un fichier qui vérifie la connexion :

    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
    <?
    session_start();
     
    include("page/fonctionsadmin.php");
     
    connexion();
     
    //Recuperation des variables postées
    $pseudo=$_POST["pseudo"];
    $pass=$_POST["pass"];
     
    $listeU= mysql_query ("SELECT * from user WHERE LoginUser='$pseudo';",connexion());
    $nbU=mysql_num_rows($listeU);
     
    //cryptage du mot de pass
    $pass=md5($pass);
     
    if ($nbU==0) {
    		echo "L'utilisateur n'existe pas.<br /><a href='index.html'>Retour</a>";
    	}
     
    	else {
    		while ($ad=mysql_fetch_object($listeU))
    			{
    			$mdp=$ad->MdpUser;
    			$stat=$ad->Admin;
    			}
     
    		if ($mdp==$pass) {
     
    				//Creation de la session
    				$_SESSION["login"] = $pseudo;
    				$_SESSION["passwd"] = $pass;
    				$_SESSION["registered"]= "ok";
     
    				echo "Vous êtes connecté en tant que"
    				. $_SESSION["login"];
     
    				if ($stat==0)
    				{	
    					echo "<META http-equiv=\"refresh\" content=\"1.5; URL=redacteur.php\">";
    				}
    				else
    				{
    					echo "<META http-equiv=\"refresh\" content=\"1.5; URL=admin.php\">";
    				}
    		}
    		else {
    			//Mot de passe incorrect
    			echo "Mauvais mot de passe<br /><a href='index.php'>Retour à la page précédente</a>";
    		}
    	}
    //Fin de la page
    echo "</body></html>";
    ?>
    Ici les sessions se créent et j'affiche même le contenu de la variable $session pseudo juste avant la redirection.

    Le problème se situe au niveau des pages admin.php et redacteur.php qui ne peuvent prendre en compte les session_start().

    Code d'admin.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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
     
    session_start();
    //Si il n'y a pas de session on redirige sinon on affiche le menu
    if(!session_is_registered("registered"))
    {
    		//En-tête
    		echo "<html>"
    			."<head>"
    			."<title>Admin</title>"
    			."<link rel=\"stylesheet\" type=\"text/css\" href=\"../style.css\">"
    			."</head><body>";
    		echo "<br><center><font style=\"font-family:Arial,sans-serif;font-size:12\">Connectez-vous afin d'accéder à cette partie <a href=\"index.php\"><br><br>Réessayer</a></font>";
    }
    else
    {
    ?>
    <!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=utf-8" />
     
    <title>Admin</title>
    <link rel="stylesheet" type="text/css" href="styleadmin.css" />
    </head>
     
    <body>
    <div id="top_nav">
    <p id="titre2">Administration générale
    <br /><br />
    </p>
     
     
    <div id="container">
    	<div id="left_col">
    	<a href="./admin.php?page=accueil">Accueil</a><br />
    	<br />
    	</div>
     
    	<div id="left_col1">
    	<a href="./admin.php?page=ajoutuser">Ajouter un utilisateur</a><br />
    	<br />
    	<a href="admin.php?page=deleteuser">Supprimer un utilisateur</a><br />
    	<br />
    	</div>
     
    	<div id="left_col2">
    	<a href="admin.php?page=ajoutbillet">Ajouter un billet</a><br />
    	<br />
    	<a href="admin.php?page=modifbillet">Modifier un billet</a><br />
    	<br />
    	<a href="admin.php?page=deletebillet">Supprimer un billet</a>
    	</div> 
     
    	<div id="left_col3">
    	<a href="admin.php?page=ajoutcateg">Ajouter une catégorie</a><br />
    	<br />
    	<a href="admin.php?page=modifcateg">Modifier une catégorie</a><br />
    	<br />
    	<a href="admin.php?page=deletecateg">Supprimer une catégorie</a>
    	</div>
     
    	<div id="left_col4">
    	<a href="admin.php?page=deletecom">Supprimer un commentaire</a><br />
    	</div>
     
    	<div id="page_content">
    		<?php
     
    		//Inclusion des autres pages
    		if (isset($_GET['page']))
    		{
    			// On affiche une phrase résumant les infos sur l'utilisateur courant
    			$p=$_GET['page'];
    			require("page/$p.php");
    		}
    		else
    		{
    			// On affiche une phrase résumant les infos sur l'utilisateur courant
    			$p="accueil";
    			require("page/$p.php");
    		}
    		?>
    	</div>
    </div>
     
     
    </body>
     
    </html>
    <?php
    }
    ?>
    Je dois avoir un problème dans mon code qui m'empeche de faire des session_start mais ou?

    Le message d'erreur est :

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\blog\admin\admin.php:1) in c:\program files\easyphp1-8\www\blog\admin\admin.php on line 2
    Merci de m'aider

  8. #8
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    bonjour je pense que tu dois aller sur le fichier php.ini qui se trouve :

    Program Files ==> EasyPHP1-7 ==> apache ==> php.ini

    et de mettre

    session.cache_limiter = nocache

    et j'espere que sa marchera

    tiens moi au courant

  9. #9
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    la valeur que tu me proposes pour session.cache-limiter est déjà à nocache.

    Le pire c'est que j'ai un autre site avec des sessions qui fonctionne très bien avec Easy Php. Donc à mon avis j'ai une erreur dans mon code.. merci de ton aide

  10. #10
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    si tu vx faire une petite viste sue ce lien:
    http://php.developpez.com/faq/?page=...s_already_sent
    peut etre qu'il t'aidera

  11. #11
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    merci pour le lien, mais je comprend toujours pas pourquoi j'ai ce problème, c'est trop bizarre

  12. #12
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    est ce que je px recuperer la redacteur.php

  13. #13
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    Voilà la partie, j'obtiens la même erreur qu'avec un admin si l'utilisateur loggé est un rédacteur

    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
    <?
    session_start();
    ?>
     
    <!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=utf-8" />
     
    <title>Admin</title>
    <link rel="stylesheet" type="text/css" href="styleadmin.css" />
    </head>
     
    <body>
     
    <div id="top_nav">
    <p id="titre2">Administration
    pour rédacteurs<br /><br />
    </p>
     
     
    <div id="container">
    	<div id="left_col">
    	<a href="redacteur.php?page=ajoutbillet">Ajouter un billet</a><br />
    	<br />
    	<a href="redacteur.php?page=modifbillet">Modifier un billet</a><br />
    	<br />
    	<a href="redacteur.php?page=deletebillet">Supprimer un billet</a>
    	</div> 
     
    	<div id="page_content">
    	<?php
     
    		//Inclusion des autres pages
    		if (isset($_GET['page']))
    		{
    			$p=$_GET['page'];
    			require("page/$p.php");
    		}
    		else
    		{
    			$p="accueil";
    			require("page/$p.php");
    		}
    	?>
    	</div>
    </div>
     
     
    </body>
     
    </html>

  14. #14
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    sincerement le code marche a merveille je pense que t'as un probleme de php.ini donc si tu veux le modifier par celui-ci.
    copier le contenu et coller le dans php.ini
    Fichiers attachés Fichiers attachés

  15. #15
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    Alors là je te dis un grand MERCI !!!

    Ca marche enfin ! Merci de ton aide, ça me fait très plaisir...

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

Discussions similaires

  1. [PHP 5.4] Impossible de créer des sessions en local
    Par Darkh62 dans le forum Langage
    Réponses: 2
    Dernier message: 25/03/2014, 09h17
  2. Impossible de créer des clés étrangères
    Par beegees dans le forum Débuter
    Réponses: 2
    Dernier message: 11/11/2008, 15h02
  3. Impossible de créer des fichiers dans un répertoire
    Par isabelle674 dans le forum Solaris
    Réponses: 11
    Dernier message: 24/01/2008, 00h04
  4. user apache (w-data) créer des sessions sans aucun droits
    Par speedev dans le forum Sécurité
    Réponses: 1
    Dernier message: 20/09/2007, 17h42
  5. Impossible de créer des procedures stockée ==> ERREUR 106
    Par JMS_PCO dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/02/2006, 17h33

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