Problème Espace membre.

pazoo -  
 pazoo -
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

  1. Mr.Francix Messages postés 12 Statut Membre 8
     
    Peut tu nous copier le code de ta page de login (connection).
    Merci
    0
  2. pazoo
     
    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>
    0
    1. tito23 Messages postés 318 Statut Membre 4
       
      session_start() ne se met qu'au début de la page!!
      0
    2. pazoo
       
      Je ne vois pas de changement en le mettant au début de page :(
      0
    3. tito23 Messages postés 318 Statut Membre 4
       
      essaie de mettre session_start() dans la 1ère ligne dans membre.php comme ceci
      <?php session_start();
      0
  3. pazoo
     
    Lorsque je met le session start en première ligne regardez les erreurs de la page connect
    http://frelaud.kevin.free.fr/connect
    0
    1. chris05 Messages postés 374 Statut Membre 28
       
      Essai de changer sur ta page de connexion :

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

      par :

      <form action="connect.php" method="post">
      0
    2. tito23 Messages postés 318 Statut Membre 4
       
      faut pas mettre session_start() dans la page connect mais dans la page membre.php
      0
    3. pazoo
       
      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
      0
    4. tito23 Messages postés 318 Statut Membre 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
      0
    5. pazoo
       
      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
      0
  4. pazoo
     
    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.
    0