Problème Espace membre.

Bonjour à tous,

Voila, j'ai créer un espace membre a l'extérieur de mon site avant de l'intégrer a celui ci;
Il se constitue en plusieurs étapes:

-Inscription (Id + Pw sans confirmation via mail)
-Connexion (On rentre Id + pw normalement)
-Membre
-Deconnexion

En fait j'aimerais que quand le membre se connecte il arrive sur une page qui lui dit
"Bonjour $_nom"

Donc je me suis servit d'une petite aide sur internet, cependant, j'ai plein d'erreurs lorsque j'essaye d'accéder à cette page membre!

Warning: session_start() [function.session-start]: open(/mnt/143/sdb/c/2/frelaud.kevin/sessions/sess_71e0a2750c1979126e89326c0b13d90d, O_RDWR) failed: No such file or directory (2) in /mnt/143/sdb/c/2/frelaud.kevin/membre.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/143/sdb/c/2/frelaud.kevin/membre.php:2) in /mnt/143/sdb/c/2/frelaud.kevin/membre.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/143/sdb/c/2/frelaud.kevin/membre.php:2) in /mnt/143/sdb/c/2/frelaud.kevin/membre.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /mnt/143/sdb/c/2/frelaud.kevin/membre.php:2) in /mnt/143/sdb/c/2/frelaud.kevin/membre.php on line 4

Warning: Unknown(): open(/mnt/143/sdb/c/2/frelaud.kevin/sessions/sess_71e0a2750c1979126e89326c0b13d90d, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/143/sdb/c/2/frelaud.kevin/sessions) in Unknown on line 0

Voici le code de ma page php "Membre.php"
<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: index.html');
	exit();
}
?>

<html>
<head>
<title>Espace membre</title>
</head>

<body>
Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>


Et pour la page de deconnexion, je continue a chercher, mais vu que la page membre ne marche pas, autant tout faire dans l'ordre hein :D
Merci par avance pour votre aide

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Peut tu nous copier le code de ta page de login (connection).
    Merci
    1. Bonjour,

      voici la page de connection
      <?php
      // on teste si le visiteur a soumis le formulaire de connexion
      if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
      	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
      
      		$base = mysql_connect ('sql.free.fr', '****', '***');
      		mysql_select_db ('frelaud.kevin', $base);
      
      		// on teste si une entrée de la base contient ce couple login / pass
      		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
      		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      		$data = mysql_fetch_array($req);
      
      		mysql_free_result($req);
      		mysql_close();
      
      		// si on obtient une réponse, alors l'utilisateur est un membre
      		if ($data[0] == 1) {
      			session_start();
      			$_SESSION['login'] = $_POST['login'];
      			header('Location: membre.php');
      			exit();
      		}
      		// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
      		elseif ($data[0] == 0) {
      			$erreur = 'Login ou mot de passe non reconnu.';
      		}
      		// sinon, alors la, il y a un gros problème :)
      		else {
      			$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
      		}
      	}
      	else {
      		$erreur = 'Au moins un des champs est vide.';
      	}
      }
      ?>
      <html>
      <head>
      <title>Accueil</title>
      </head>
      
      <body>
      Connexion à l'espace membre :<br />
      <form action="index.html" method="post">
      Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
      Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
      <input type="submit" name="connexion" value="Connexion">
      </form>
      <a href="inscription.php">Vous inscrire</a>
      <?php
      if (isset($erreur)) echo '<br /><br />',$erreur;
      ?>
      </body>
      </html>
      1. session_start() ne se met qu'au début de la page!!
      2. Je ne vois pas de changement en le mettant au début de page :(
      3. essaie de mettre session_start() dans la 1ère ligne dans membre.php comme ceci
        <?php session_start();
    2. Lorsque je met le session start en première ligne regardez les erreurs de la page connect
      http://frelaud.kevin.free.fr/connect
      1. Essai de changer sur ta page de connexion :

        <form action="index.html" method="post">

        par :

        <form action="connect.php" method="post">
      2. faut pas mettre session_start() dans la page connect mais dans la page membre.php
      3. Malgrès toutes vos explications j'ai toujours autant d'erreur :(

        Membre.php
        <?php
        session_start();
        if (!isset($_SESSION['login'])) {
        	header ('Location: index.html');
        	exit();
        }
        ?>
        
        <html>
        <head>
        <title>Espace membre</title>
        </head>
        
        <body>
        Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
        <a href="deconnexion.php">Déconnexion</a>
        </body>
        </html>


        Connect.php
        <?php
        // on teste si le visiteur a soumis le formulaire de connexion
        if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
        	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
        
        		$base = mysql_connect ('sql.free.fr', 'frelaud.kevin', '******');
        		mysql_select_db ('frelaud.kevin', $base);
        
        		// on teste si une entrée de la base contient ce couple login / pass
        		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
        		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        		$data = mysql_fetch_array($req);
        
        		mysql_free_result($req);
        		mysql_close();
        
        		// si on obtient une réponse, alors l'utilisateur est un membre
        		if ($data[0] == 1) {
        			session_start();
        			$_SESSION['login'] = $_POST['login'];
        			header('Location: membre.php');
        			exit();
        		}
        		// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
        		elseif ($data[0] == 0) {
        			$erreur = 'Login ou mot de passe non reconnu.';
        		}
        		// sinon, alors la, il y a un gros problème :)
        		else {
        			$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        		}
        	}
        	else {
        		$erreur = 'Au moins un des champs est vide.';
        	}
        }
        ?>
        <html>
        <head>
        <title>Accueil</title>
        </head>
        
        <body>
        Connexion à l'espace membre :<br />
        <form action="connect.php" method="post">
        Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
        Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
        <input type="submit" name="connexion" value="Connexion">
        </form>
        <a href="inscription.php">Vous inscrire</a>
        <?php
        if (isset($erreur)) echo '<br /><br />',$erreur;
        ?>
        </body>
        </html>


        Et toujours ces erreurs lorsque j'esaye de me connecter

        Warning: session_start() [function.session-start]: open(/mnt/143/sdb/c/2/frelaud.kevin/sessions/sess_f853c713ff5abcd08371824ea46ffecc, O_RDWR) failed: No such file or directory (2) in /mnt/143/sdb/c/2/frelaud.kevin/connect.php on line 19

        Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/143/sdb/c/2/frelaud.kevin/connect.php:19) in /mnt/143/sdb/c/2/frelaud.kevin/connect.php on line 19

        Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/143/sdb/c/2/frelaud.kevin/connect.php:19) in /mnt/143/sdb/c/2/frelaud.kevin/connect.php on line 19

        Warning: Cannot modify header information - headers already sent by (output started at /mnt/143/sdb/c/2/frelaud.kevin/connect.php:19) in /mnt/143/sdb/c/2/frelaud.kevin/connect.php on line 21

        Warning: Unknown(): open(/mnt/143/sdb/c/2/frelaud.kevin/sessions/sess_f853c713ff5abcd08371824ea46ffecc, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

        Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/143/sdb/c/2/frelaud.kevin/sessions) in Unknown on line 0
      4. Malgré toutes mes explications tu insiste à écrire ça
        if ($data[0] == 1) { 
           session_start();

        session_start() mets là dans la première ligne de la page et enlève la de la ligne 19 dans connect.php
      5. Je l'ai fait dernièrement mais jai une page remplie d'erreur !
        http://frelaud.kevin.free.fr/connect

        Je vire le " session_start();" ligne 19 et je le met juste derrière le <php du début de page
    3. J'ai lu que chez free il fallait créer un dossier "sessions" a la base de mon site ...?

      <?php session_start();
      // on teste si le visiteur a soumis le formulaire de connexion
      if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
      	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
      
      		$base = mysql_connect ('sql.free.fr', 'frelaud.kevin', '****');
      		mysql_select_db ('frelaud.kevin', $base);
      
      		// on teste si une entrée de la base contient ce couple login / pass
      		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
      		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      		$data = mysql_fetch_array($req);
      
      		mysql_free_result($req);
      		mysql_close();
      
      		// si on obtient une réponse, alors l'utilisateur est un membre
      		if ($data[0] == 1) {
      			$_SESSION['login'] = $_POST['login'];
      			header('Location: membre.php');
      			exit();
      		}
      		// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
      		elseif ($data[0] == 0) {
      			$erreur = 'Login ou mot de passe non reconnu.';
      		}
      		// sinon, alors la, il y a un gros problème :)
      		else {
      			$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
      		}
      	}
      	else {
      		$erreur = 'Au moins un des champs est vide.';
      	}
      }
      ?>
      <html>
      <head>
      <title>Accueil</title>
      </head>
      
      <body>
      Connexion à l'espace membre :<br />
      <form action="connect.php" method="post">
      Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
      Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
      <input type="submit" name="connexion" value="Connexion">
      </form>
      <a href="inscription.php">Vous inscrire</a>
      <?php
      if (isset($erreur)) echo '<br /><br />',$erreur;
      ?>
      </body>
      </html>


      Merci à toi pour ton aide.