Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/10/2012, 02h24   #1
mano2003
Invité de passage
 
Inscription : avril 2012
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 17
Points : 2
Points : 2
Par défaut Problème de variables de session dans mon serveur

Bonjour les amis,

J'ai un problème avec les variables de session quand je mets mon code dans un serveur web j'ai les erreurs suivantes:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\Academie\Front-Office\haut_de_page.html:10) in C:\wamp\www\Academie\Front-Office\fonctions.php on line 53

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Academie\Front-Office\haut_de_page.html:10) in C:\wamp\www\Academie\Front-Office\fonctions.php on line 85

alors qu'en localhost ca marche très bien.

Voici mon fichier qui contient mes fonctions de validation d'une connexion et de démarrage d'une session que j'appelle dans la page menu_membre.php
Code :
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
95
96
97
98
99
100
 
<?php
 
   //Fonction de connexion a la base de données
   function connexionBD()
   {
      $nom_serveur = "localhost";
      $utilisateur = "xxx";
      $mot_de_passe = "xxx";
      $base_de_donnees = "xxx";
 
      //Connexion au serveur
      mysql_connect($nom_serveur, $utilisateur, $mot_de_passe) or die("ECHEC CONNEXION AU SERVEUR !!!");
 
      //Sélection de la Base de données
      mysql_select_db($base_de_donnees) or die("ERREUR IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES !!!");
 
      mysql_query('SET NAMES utf8');
   }
 
   //Fonction de démarrage d'une session
   function demarrage()
   {
      session_start();
 
      if(!isset($_SESSION["id"]))
      echo"
         <script language='javascript'>
            alert('Veuillez vous connecter SVP...');
            document.location='../connexion.php';
         </script>
         ";
   }
 
   //Fonction de fermeture d'une session
   function fermeture()
   {
      session_start();
      session_destroy();
      echo"
         <script language='javascript'>
            alert('Au revoir!!!')
            document.location='../connexion.php';
         </script>";
   }
 
   //Fonction de vérification du login et du mot de passe
   function valid_connexion()
   {
      session_start();
 
      $login = $_POST['login'];
      $password = $_POST['password'];
 
      //Phase d'interrogation de la BD
      if(!(empty($login)) && !(empty($password)))
      {
         connexionBD();
         $requete = "SELECT * FROM users NATURAL JOIN profils WHERE user_nom='$login' and user_password='$password'";
         $resultat = mysql_query($requete) or die("Erreur execution requete:: $requete");
         $nb = mysql_num_rows($resultat); // Nombre de lignes retournées par la requete
         if($nb>0)// Utilisateur Authentifié...
         {
            echo"
               <script type='text/javascript' language='javascript'>
                  var temp='CONNEXION REUSSIE! Vous allez être redirigé selon votre profil...'
                  alert(temp)
               </script>";
 
            $user = mysql_fetch_array($resultat);
            $_SESSION["id"]=$user["user_code"];
            $_SESSION["login"]=$user["user_nom"];
            $_SESSION["mdp"]=$user["user_password"];
            $_SESSION["profil"]=$user["profil"];
 
            //Redirection selon le resultat
            if(($user['user_password']==$password) && ($user['user_nom']==$login) && ($user['profil']=="Administrateur"))
            {
               header("Location: ../Back-Office/admin.php");
            }
            elseif (($user['user_password']==$password) && ($user['user_nom']==$login) && ($user['profil']=="Etudiant"))
            {
               header("Location: Membres/index.php");
            }
         }
         else
         {
            include 'connexion.php';
            echo"
               <script type='text/javascript' language='javascript'>
                  var temp='Votre login ou votre mot de passe est invalide!'
                  alert(temp)
                  document.location='connexion.php';
               </script>";
         }
      }
      mysql_close();
   }
 
?>
La page menu_membre:
Code :
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
 
<?php
   require '../fonctions.php';
   demarrage();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    <meta name="robots" content="index, follow" />
    <meta name="generator" content="Sublime Text 2" />
    <title></title>
    <link rel="stylesheet" href="../Design/styles.css" type="text/css" media="screen" />
    <link rel="shortcut icon" href="../images/favicon.ico" type="image/x-icon" />                  
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript" src="../js/slider.js"></script>
    <script type="text/javascript" src="../js/superfish.js"></script>
    <script type="text/javascript" src="../js/custom.js"></script>
</head>
 
<body>
<div id="container">
    <div id="header">
        <h1><strong><a href="index.php"><strong>Académie de Formation</strong></a></strong></h1>
        <div class="clear"></div>
    </div>
    <div id="nav">
        <ul class="sf-menu dropdown">
            <li class="selected"><a href="index.php">Accueil</a></li>
            <li><a href="academie.php">L'Académie</a></li>
            <li><a href="informations.php">Informations Générales</a></li>
            <li><a href="emplois_du_temps.php">Emplois du temps</a></li>
            <li><a href="resultats.php">Mon Bulletin</a></li>
            <li><a href="contact.php">Contact</a></li>
            <li><a href="deconnexion.php">Déconnexion</a></li>
        </ul>
    </div>
Et dans mon fichier index.php je fais comme 1ere instruction
Code :
1
2
3
4
 
<?php 
   require 'menu_membre.php';
?>
Merci de votre aide!
mano2003 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2012, 08h40   #2
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Groenland

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2002
Messages : 2 346
Points : 3 231
Points : 3 231
Bonjour,

Enléves les espaces avant les <?php, car ils sont considérés comme du html et d'ou ton message d'erreur ...
__________________
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2012, 12h39   #3
mano2003
Invité de passage
 
Inscription : avril 2012
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 17
Points : 2
Points : 2
J'ai enlevé les espaces avant toutes mes balises php et j'ai même réenregistré mes fichiers en utf-8 sans bom avec notepad++ mais j'ai toujours le même problème Fench.
mano2003 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2012, 12h50   #4
Damien51
Membre actif
 
Homme Damien
Développeur Web
Inscription : mars 2009
Messages : 114
Détails du profil
Informations personnelles :
Nom : Homme Damien
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mars 2009
Messages : 114
Points : 158
Points : 158
Et si tu mettais ton session_start(); avant d'appeler ta fonction.

Code :
1
2
3
4
5
<?php
   session_start();
   require '../fonctions.php';
   demarrage();
?>
Damien51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2012, 13h11   #5
mano2003
Invité de passage
 
Inscription : avril 2012
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 17
Points : 2
Points : 2
Toujours les 2 mêmes erreurs Damien.
mano2003 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2012, 13h32   #6
Damien51
Membre actif
 
Homme Damien
Développeur Web
Inscription : mars 2009
Messages : 114
Détails du profil
Informations personnelles :
Nom : Homme Damien
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mars 2009
Messages : 114
Points : 158
Points : 158
Tu dois supprimer tous les autres session_start de ton code source et en garder qu'un.
Damien51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h44.


 
 
 
 
Partenaires

Hébergement Web