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
A voir également:

4 réponses

Mr.Francix Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   8
 
Peut tu nous copier le code de ta page de login (connection).
Merci
0
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
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
session_start() ne se met qu'au début de la page!!
0
pazoo
 
Je ne vois pas de changement en le mettant au début de page :(
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
essaie de mettre session_start() dans la 1ère ligne dans membre.php comme ceci
<?php session_start();
0
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
chris05 Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   28
 
Essai de changer sur ta page de connexion :

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

par :

<form action="connect.php" method="post">
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
faut pas mettre session_start() dans la page connect mais dans la page membre.php
0
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
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   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
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
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