Accueil phpBB News phpBB Forum phpBB & support Mods Module Modification phpBB-Power Tutoriaux Tutoriel phpBB-Power Conseil personalisation phpBB-Power Conseil optimisation phpBB-Power Partenaires phpBB-Power



PhpBB-Power
Communauté francophone de support et de mods pour phpBB
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

[Résolu] Probleme de session je croit

 
Poster un nouveau sujet   Répondre au sujet    PhpBB-Power Index du Forum » Support
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Gernouille
Esprit servant


Inscrit le: 28 Déc 2004
Messages: 156

MessagePosté le: Lun 07 Mar 2005 à 20:30    Sujet du message: Probleme de session je croit Répondre en citant

Bonjour,voila j'ai un message d'erreur qui est affichez sur tout mes pages:


Code:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/**/login.php:9) in /home/**/em-connexion.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/**/login.php:9) in /home/**/em-connexion.php on line 2


Certainement a cause de sa:
Code:
session_start();


Voila en faite j'ai une page en php et pour me simplifiez la vie dans l'endroit ou je veut affichez ma page j'y fait appel avec un include:
Ma page php:
Code:
mon code en php du site
<?
include('em-connexion.php');
?>
fin du code du site


et voila la page em-connexion (sortie du mod EspacemembrephpBBv.0.5.0)
Code:
<?
session_start();
include('em-config.php');

// Vérification de la connexion
if (isset($_SESSION['username']))
{
   // Si l'utilisateur est connécté, on le redirige vers l'index
   header("Location: "."index_co.php");
}
if (isset($_COOKIE['userid']))
{
   if($_COOKIE['userid'] != "0")
   {
      $userid = $_COOKIE['userid'];
      
      // Connexion à la bdd
      mysql_connect($dbhost, $dbuser, $dbpasswd);
      mysql_select_db($dbname);
      
      // Requete vérifiant l'utilisateur et le mot de passe
      $sqlverif = "SELECT * FROM `" . $table_prefix . "users` WHERE `user_id`='" . $userid . "'";
      $queryverif = mysql_query($sqlverif);
      echo mysql_error();

               // On créer les variables de session ( je ne sais pas l'utilité de la boucle, mais sans, ca ne marche pas...)
               $membre = mysql_fetch_array($queryverif);
               
               // Création des sessions
               $_SESSION['user_id'] = $userid;
               $_SESSION['username'] = $membre['username'];             
               $_SESSION['user_password'] = $membre['user_password'];
               $_SESSION['user_level'] = $membre['user_level'];
               $_SESSION['user_lang'] = $membre['user_lang'];
               $_SESSION['user_email'] = $membre['user_email'];
               $_SESSION['user_aim'] = $membre['user_aim'];
               $_SESSION['user_icq'] = $membre['user_icq'];
               $_SESSION['user_msnm'] = $membre['user_msnm'];
               $_SESSION['user_yim'] = $membre['user_yim'];
               $_SESSION['user_website'] = $membre['user_website'];
               $_SESSION['user_from'] = $membre['user_from'];
               $_SESSION['user_occ'] = $membre['user_occ'];
               $_SESSION['user_interests'] = $membre['user_interests'];
               $_SESSION['user_avatar'] = $membre['user_avatar'];
         
   // On le redirige vers l'index
   header("Location: "."index_co.php");
   }
}
         
      /* Requete vérifiant l'utilisateur
      $sqlverif = "SELECT * FROM `" . $table_prefix . "users` WHERE `username`=" . $username . "";
      $queryverif = mysql_query($sqlverif);       
      
      echo mysql_error();
         
         // On créer les variables de session ( je ne sais pas l'utilité de la boucle, mais sans, ca ne marche pas...)
         $membre = mysql_fetch_array($queryverif);
      
         // Création des sessions
         $_SESSION['user_id'] = $membre['user_id'];
         $_SESSION['username'] = $membre['username'];             
         $_SESSION['user_password'] = $membre['user_password'];
         $_SESSION['user_level'] = $membre['user_level'];
         $_SESSION['user_lang'] = $membre['user_lang'];
         $_SESSION['user_email'] = $membre['user_email'];
         $_SESSION['user_aim'] = $membre['user_aim'];
         $_SESSION['user_icq'] = $membre['user_icq'];
         $_SESSION['user_msnm'] = $membre['user_msnm'];
         $_SESSION['user_yim'] = $membre['user_yim'];
         $_SESSION['user_website'] = $membre['user_website'];
         $_SESSION['user_from'] = $membre['user_from'];
         $_SESSION['user_occ'] = $membre['user_occ'];
         $_SESSION['user_interests'] = $membre['user_interests'];
         $_SESSION['user_avatar'] = $membre['user_avatar'];*/

 
   // Vérification du formulaire
   if (isset($_POST['password']) )
   {       
      // Connexion à la bdd
      mysql_connect($dbhost, $dbuser, $dbpasswd);
      mysql_select_db($dbname);
      
      // Récupération des variables
      $username = htmlentities($_POST['username']);
      $pass = htmlentities($_POST['password']);
      
      // Cryptage du mot de passe
      $user_pass_crypt = md5($pass);
         
      // Requete vérifiant l'utilisateur et le mot de passe
      $sqlverif = "SELECT * FROM `" . $table_prefix . "users` WHERE `username`='" . $username . "' AND `user_password`='" . $user_pass_crypt . "'";
      $queryverif = mysql_query($sqlverif);       
      $rowsverif = mysql_num_rows($queryverif);
   
         // S'il n'y a pas d'erreurs
         if ( $rowsverif != 0 )
         {
             
            // On créer les variables de session ( je ne sais pas l'utilité de la boucle, mais sans, ca ne marche pas...)
            while( $membre = mysql_fetch_array($queryverif) )
            {
               // Création des sessions
               $_SESSION['user_id'] = $membre['user_id'];
               $_SESSION['username'] = $membre['username'];             
               $_SESSION['user_password'] = $membre['user_password'];
               $_SESSION['user_level'] = $membre['user_level'];
               $_SESSION['user_lang'] = $membre['user_lang'];
               $_SESSION['user_email'] = $membre['user_email'];
               $_SESSION['user_aim'] = $membre['user_aim'];
               $_SESSION['user_icq'] = $membre['user_icq'];
               $_SESSION['user_msnm'] = $membre['user_msnm'];
               $_SESSION['user_yim'] = $membre['user_yim'];
               $_SESSION['user_website'] = $membre['user_website'];
               $_SESSION['user_from'] = $membre['user_from'];
               $_SESSION['user_occ'] = $membre['user_occ'];
               $_SESSION['user_interests'] = $membre['user_interests'];
               $_SESSION['user_avatar'] = $membre['user_avatar'];
               $expir = 31*24*3600; // Pendant un an
               $user_id = $_SESSION['user_id'];
               setcookie("userid","$user_id",time()+$expir); // Création du cookie
         
            }
         
            // Si l'utilisateur à entré un bon pseudo et un bon mdp, on le redirige vers l'index
            header("Location: "."index_co.php");
         }
         else // en cas d'erreur
         {
            echo $langconnectfall;
            echo $langreconnect;
         }
   // On coupe la connexion à la bdd
   mysql_close();
    }
   
   // Si le formulaire n'a pas été validé, on l'affiche
   else
   {
?>
<form action="em-connexion.php" method="post">
<p align="left"><font size="4"><? echo $langconnect ?></font></p>         
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
   <tr>
      <td width="13%">
<p align="left"><span class="Style1"><font size="2"><? echo $langusername ?> :</font></span><font size="2">&nbsp;&nbsp;&nbsp;</font>
      </td>
      <td width="87%">             
         <input name="username" type="text" size="15" maxlength="50">
      </td>
   </tr>
   <tr>
      <td width="13%">
<p align="left"><span class="Style1"><font size="2"><? echo $langpassword ?> :</font> </span>
      </td>
      <td width="87%">
         <input name="password" type="password" size="15" maxlength="50"></td>
   </tr>
</table>
<p align="center">
         <input type=submit value=<? echo $langconnectbouton ?> name=login style="float: left">&nbsp;&nbsp;&nbsp;
</p>
</form>
<br /><a href="em-inscription.php"><? echo $langregister ?></a>
<?
   }
?>


Que faire?Merci
Note:(je trouve pas Very Happy)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Aramiil
Membres actifs


Inscrit le: 30 Nov 2004
Messages: 368
Localisation: Dans les limbes de mon imagination

MessagePosté le: Lun 07 Mar 2005 à 21:05    Sujet du message: Répondre en citant

Le problème que tu à est très simple: les sessions en PHP doivent être démarrées avant tout envoi d'header au navigateur.

En d'autres termes, il faut que tu execute session_start() avant toute autre choses. Donc plutot que

Code:
code html
<? include(...) ?>
fin du code


Tu dois obligatoirement faire:

Code:
<? session_start() ?>
code html
<?include(...) ?>
fin du code


Et bien sur, inutile de redemarrer la session dans ton fichier inclu. Mais les sessions doivent toujours êtres ouvertes en premier car elles utilisent les informations transmises dans le header (en-tête) de la page, et donc ne peuvent être démarrées si ce header est déjà parti (en d'autres termes, si tu à déjà fait afficher quelque chose à ta page).

Note: C'est également le cas des cookies. Tu ne peut normalement pas utiliser avec succès la fonction setcookie si tu à déjà fait afficher quelque chose.
_________________

Jeu en ligne .:. Mon blog
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
Gernouille
Esprit servant


Inscrit le: 28 Déc 2004
Messages: 156

MessagePosté le: Lun 07 Mar 2005 à 21:35    Sujet du message: Répondre en citant

Oui merci
Sa marche impec
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PhpBB-Power Index du Forum » Support Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers


Powered by phpBB v2 © 2001, 2005 phpBB Group ¦ Theme: subSilver++
Traduction par : phpBB-fr.com