Pays-Froid.Net

Qu'est ce que Pays-Froid.Net

Headers Already sent

Posez vos problèmes à propos du PHP

Headers Already sent

Messagede Bartox le 08 Mai 2007 19:01

B'jour à toute la banquise, voilà j'expose mon soucis... J'ai suivi les tutos du sdz pour créer un espace membres, donc, j'ai un fichier index.php, qui intègre le formulaire pour se loguer.

Ce dernier, si bonnement rempli, renvoie vers la page membres.php, c'est ici que je bloque. Je veux que cette page soit dans le corps de ma page index...


Le code de la page membres.php

Code: Tout sélectionner
<?php
//Ne pas oublier de mettre le session_start()
session_start();

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)

{

[b]  //Mettez ici votre code xhtml (et php)[/b]
   //Exemple : affichage du lien de déconnection et du pseudo.
   echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="deconnexion.php">Déconnexion</a>';
}
else
   echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
?>



Voilà, vous me direz tout marche (comme le prouve ce site perso) mais je n'arrive pas :

à mettre le code html de index.php dans la page membres.php (là où il est marqué "mettre le code xhtml et php ici en gras) pour obtenir le même design. Ca me renvoie systématiquement une erreur.

Merci d'avance :bien:
Dernière édition par Bartox le 11 Mai 2007 19:54, édité 2 fois.
Avatar de l’utilisateur
Bartox
Papa Pinguin
Papa Pinguin
 
Messages: 567
Inscription: 22 Fév 2007 23:29

Messagede Nelson le 08 Mai 2007 19:46

j'ai pas ocmpris tu veux quoi?
Avatar de l’utilisateur
Nelson
Bébé Pinguin
Bébé Pinguin
 
Messages: 36
Inscription: 03 Mai 2007 20:37
Localisation: Chartres (28)

Messagede Geoffroy le 08 Mai 2007 20:33

tu veux inclure index.php dans menbre.php c'est ça???

déjà il y a un égal de trop a ta condition

ensuite pour inclure une page, c'est écrit dans le tuto, tu utilise ca :

include('index.php');

et ta page viens s'inclure dedans!!!

par contre je te conseil de faire autrement, parce que la tu aura le texte "Erreur : vous devez être connecté pour accéder à cette page !" qui s'affichera en bas de la page si tu est pas loggé.

je te conseil de faire tous a partir de index.php, du moins pour ces trucs la!
TIMTOWTDI
Avatar de l’utilisateur
Geoffroy
Crazy Pinguin
Crazy Pinguin
 
Messages: 1332
Inscription: 20 Jan 2007 23:11

Messagede Nelson le 08 Mai 2007 20:40

deja met {} pour else^^

et ensuite pourquoi tu inclus pas membre.php dnas l'index
Avatar de l’utilisateur
Nelson
Bébé Pinguin
Bébé Pinguin
 
Messages: 36
Inscription: 03 Mai 2007 20:37
Localisation: Chartres (28)

Messagede Bartox le 08 Mai 2007 21:00

Non c'est surtout pas index.php dans membres.php

car sinon il y aura bien sur une erreur (puisque sur index.php on se logue, et membres.php on est loggué...

Ce que je veux en fait, plus simplement, c'est que dans ce code :

Code: Tout sélectionner
<?php
//Ne pas oublier de mettre le session_start()
session_start();

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)

{

  //Mettez ici votre code xhtml (et php)
   //Exemple : affichage du lien de déconnection et du pseudo.
   echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="deconnexion.php">Déconnexion</a>';
}
else
   echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
?>



J'arrive à insérer du html et du php sans avoir d'erreurs... Voilà, ca doit être mieux dit j'espère ^^
Avatar de l’utilisateur
Bartox
Papa Pinguin
Papa Pinguin
 
Messages: 567
Inscription: 22 Fév 2007 23:29

Messagede Nelson le 08 Mai 2007 21:14

rien compris desoler
Avatar de l’utilisateur
Nelson
Bébé Pinguin
Bébé Pinguin
 
Messages: 36
Inscription: 03 Mai 2007 20:37
Localisation: Chartres (28)

Messagede Geoffroy le 08 Mai 2007 21:15

tu veux quoi?? et pourquoi il y a redirection dans le titre???

encore et toujours, il y a trois === dans ta condition, attention, ca bug a ce niveau la!!!

et les {} du else, comme dit nelson.

pour le lien de déconnection, je te conseil de faire ca dnas le menu, que tu met dans une page menu.php que tu inclut. dans cette page tu vérifie si la personne est logué ou non, et tu affihcele menu en fonction de ça (formulaire de connection, ou alors bouton de déconnection)



C'est pas exactement sur index.php que tu doiste logger, mais c'est sur menu.php que tu a le formulaire pour te loguer, et aprés toutes les pages doivent s'adapter en fonction que tu sois loguer ou non!

si tu veux qu'on règle un autre problème, explique toi plus clairement stp
TIMTOWTDI
Avatar de l’utilisateur
Geoffroy
Crazy Pinguin
Crazy Pinguin
 
Messages: 1332
Inscription: 20 Jan 2007 23:11

Messagede Bartox le 08 Mai 2007 22:04

Bon pas grave, vous n'avez pas cerné la question, mais tant pis, j'vais suivre ton truc Géo, j'pense que c'est plus simple de fonctionner en mettant le log dans un fichier menu.html qu'on inclut dans les pages.
Avatar de l’utilisateur
Bartox
Papa Pinguin
Papa Pinguin
 
Messages: 567
Inscription: 22 Fév 2007 23:29

Messagede Geoffroy le 09 Mai 2007 6:01

ouai, comme ça tu peux te logger a partir de n'importe qu'elle page!!!

et te délogger aussi a partir de n'importe qu'elle page.
TIMTOWTDI
Avatar de l’utilisateur
Geoffroy
Crazy Pinguin
Crazy Pinguin
 
Messages: 1332
Inscription: 20 Jan 2007 23:11

Messagede Bartox le 11 Mai 2007 19:58

Je relance le sujet, j'ai fait ce que vous m'avez dit, seulement je rencontre tout le temps le "Headers already sent" et quand je me connecte je ne suis plus renvoyé vers "membres.php" (je suis pourtant bien logué, car quand je m'y rend en tapant l'adresse je me déconnecter).

Vous pouvez le constater ici : butterfly.dream.free.fr

Hum, j'pense que vous aurez besoin des codes... Alors je mets les trois pages concernées :

Index.php

Code: Tout sélectionner
<?php
//Démarrage de la session (à mettre avant tout code xhtml)
session_start();

//Si la variable $_SESSION['logged'] n'existe pas on la créée.
if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;

//Inclusion du fichier contenant les identifiants de connexion à la base de données.
require("config.inc.php");

//Connexion à la base de données.
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);

?>
  <?php

      //Vérification du pseudo.
      $pseudo = htmlspecialchars($_COOKIE['pseudo']);
      $mot_passe = htmlspecialchars($_COOKIE['mot_passe']);
               
      //Requête comptant le nombre de pseudos $_POST['pseudo']
      $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
         
       //Si le pseudo existe.
       if (mysql_result($sql,0,'nb_pseudo') == 1)
       {
             //Vérification du mot de passe
             //Information sur le compte du membre.
             $sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
             $donnees = mysql_fetch_array($sql_infos);
                       
             //Comparaison du mot de passe et vérification que le compte est confirmé.
             if ($mot_passe == $donnees['mot_passe'] && $donnees['confirmation'] == 1)
             {
                   //Tout est bon, on connecte le membre.
                   $_SESSION['logged'] = true;
                   
                   //Création de 2 variables de sessio, contenant des informations sur le membre.
                   $_SESSION['id'] = $donnees['id']; //Id du membre.
                   $_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
                                       
                   //Redirection vers la page membre.
                   header("location: membres.php");
              }
        }
?>

<?php
//Si la variable $_POST['connexion'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
if (isset($_POST['connexion']) && $_SESSION['logged'] === false)
{
        //Vérification des autres variables.
        if (!empty($_POST['pseudo']) && !empty($_POST['mot_passe']))
        {
                //Vérification du pseudo.
                $pseudo = htmlspecialchars($_POST['pseudo']);
                $mot_passe = htmlspecialchars($_POST['mot_passe']);
               
                //Requête comptant le nombre de pseudos $_POST['pseudo']
                $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
               
                //Si le pseudo existe.
                if (mysql_result($sql,0,'nb_pseudo') == 1)
                {
                        //Vérification du mot de passe
                        //Information sur le compte du membre.
                        $sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
                        $donnees = mysql_fetch_array($sql_infos);
                       
                        //Hashage du mot de passe.
                        $mot_passe_hash = md5($mot_passe);

                        //Comparaison du mot de passe.
                        if ($mot_passe_hash == $donnees['mot_passe'])
                        {
                                //On vérifie que le compte est confirmé.
                                //Si $donnees['confirmation'] vaut 1.
                                if ($donnees['confirmation'] == 1)
                                {
                                        if (isset($_POST['souvenir']) && $_POST['souvenir'] == 'on')
                                        {
                                            //Temps d'expiration des cookies (1 an).
                                            $expire = time() + 3600 * 24 * 365;

                                            setcookie('pseudo', $pseudo, $expire);
                                            setcookie('mot_passe', $mot_passe_hash, $expire);
                                        }

                                        //Tout est bon, on connecte le membre.
                                        $_SESSION['logged'] = true;
                                       
                                        //Création de 2 variables de session, contenant des informations sur le membre.
                                        $_SESSION['id'] = $donnees['id']; //Id du membre.
                                        $_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
                                       
                                        //Redirection vers la page membre.
                                        header("location: membres.php");
                                }
                                else
                                        echo 'Erreur : le compte n\'est pas confirmé !';
                        }
                        else
                                echo 'Erreur : le mot de passe est incorrect !';
                }
                else
                        echo 'Erreur : le pseudo n\'existe pas !';
        }
        else
                echo 'Erreur : veuillez remplir tous les champs !';
}
   ?>

   <?php
//Déconnection de la base de données.
mysql_close();
?>



<!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="fr" >

<head>

<title>Tuto 1</title>
<link rel="stylesheet" type="text/css" href="style.css" />

</head>



<body>

<div class="global">

                                        <?php include("haut.php");?>



        <div class="contenu">

                                        <?php include("menu.php");?>



                                        <?php include("contenu.php");?>



</div>




        </div>

</body>

</html>




Membres.php

Code: Tout sélectionner
<?php
//Ne pas oublier de mettre le session_start()
session_start();

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] == true)

{





                        echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="deconnexion.php">Déconnexion</a>';



}
else
{
  echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
}
?>


Et enfin menu.php

Code: Tout sélectionner
     <div class="les_menus">


                             <div class="menu">Menu 2</div>
                                <div class="menu2">

                <form method="post" action="index.php">
                        <label for="pseudo">Pseudo : <br /> <input type="text" name="pseudo" id="pseudo" /></label>  <br />
                        <label for="mot_passe">Mot de passe :  <br /> <input type="password" name="mot_passe" id="mot_passe" /></label> <br />
                        <label for="souvenir">Se souvenir de moi ? <input type="checkbox" name="souvenir" id="souvenir" /></label>  <br /> <br />
                        <input type="submit" name="connexion" value="Se connecter" /> <br />
                        <a href="inscriptionhtm.php">Pas encore inscrit ?</a>
                </form>

                              </div>


                             <div class="menu">Menu 2</div>
                                <div class="menu2">
                                    <a href="#">ABC</a>
                                    <a href="#">DEF</a>
                                    <a href="#">GHI</a>
                                    <a href="#">JKL</a>
                                    <a href="#">MNO</a>
                                </div>


                            <div class="menu">Menu3</div>
                                <div class="menu2">
                                    <a href="#">PQR</a>
                                    <a href="#">STU</a>
                                    <a href="#">VWX</a>
                                    <a href="#">YZ</a>
                                    <a href="#">Autres</a>
                                </div>

                           

                           
                            <div class="menu">Menu 4</div>
                                <div class="menu2">
                                    <a href="#">12</a>
                                    <a href="#">34</a>
                                    <a href="#">45</a>
                                    <a href="#">67</a>
                                    <a href="#">89</a>
                                </div>



                            <div class="menu">Menu image</div>

                            <div class="menu2">
                                <img src="image/mexican.jpg" alt="Un Mexicain" />
                            </div>

</div>




Voilà, désolé que ce soit si long, mais comme je m'étais mal exprimé dans un premier temps, j'préfère assurer. Un code c'est toujours plus explicité ;)

Merci d'avance les pingouins ;)
Avatar de l’utilisateur
Bartox
Papa Pinguin
Papa Pinguin
 
Messages: 567
Inscription: 22 Fév 2007 23:29

Messagede Geoffroy le 11 Mai 2007 23:29

burrp!
trop a lrie pour une soirée!!
je vois ça demain si neslon a pas déjà rep!
TIMTOWTDI
Avatar de l’utilisateur
Geoffroy
Crazy Pinguin
Crazy Pinguin
 
Messages: 1332
Inscription: 20 Jan 2007 23:11

Messagede Bartox le 11 Mai 2007 23:37

Merci, j'ai essayé de rendre plus simple mon menu, j'ai réussi mais j'ai encore d'autres erreurs, j'vais travailler cette nuit un peu... Aller à pluche ;)
Avatar de l’utilisateur
Bartox
Papa Pinguin
Papa Pinguin
 
Messages: 567
Inscription: 22 Fév 2007 23:29

Messagede Nelson le 12 Mai 2007 8:41

oula c'est quoi tout se code? deja en le lisant comme sa j'ai l'impression qu'il pourra jamais marcher ^^

Alours se que tu devrais faire c'es mettre une condition sur index. php

Si le membre n'es pas connecter afficher le formualire
sinon afficher l'include membre.php

non c'est pas sa que tu veux?
Avatar de l’utilisateur
Nelson
Bébé Pinguin
Bébé Pinguin
 
Messages: 36
Inscription: 03 Mai 2007 20:37
Localisation: Chartres (28)

Messagede Geoffroy le 12 Mai 2007 11:07

moi je pense que c'est mieux de faire ça sur chaque partie, comme ça le menu reste toujours le même, t'a pas à en faire 50, le corps tu l'adapte aussi et c'est bon :D
TIMTOWTDI
Avatar de l’utilisateur
Geoffroy
Crazy Pinguin
Crazy Pinguin
 
Messages: 1332
Inscription: 20 Jan 2007 23:11

Messagede Patoch le 12 Mai 2007 13:13

Je te propose de rajouter ceci :

$redirect_login = "index.$phpEx";
$redirect_logout = "../index.$phpEx";

ca redirige ton visiteur la ou tu le souhaite (changer login et logout par tes variable :) )
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron

Copyright © Pays-Froid.Net

Nous contacter | Notre Histoire | Plan du site | Nos partenaires | Mentions légales | Fil RSS | XHTML 1.0 | CSS 2.0

Partenaire : Waliwaloo - Darklg - Yagoort - Meilleur du Web - Hit Parade