Problème authentification PHP MySQL

Résolu/Fermé
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 1 avril 2012 à 15:33
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 1 avril 2012 à 17:18
Bonjour,

J'ai un petit souci concernant mon module d'authentification simple.
Si l'utilisateur entre ses bons identifiants, une variable de session est censé contenir l'id de l'utilisateur se crée et l'utilisateur doit être redirigé vers sa page perso.

Cependant, ma session ne se crée pas mais la redirection a lieu.

J'ai effectué des tests sans redirection dans le but de faire afficher ma variable de session. Le test est positif : ma variable de session contient l'id user.

Pourriez-vous m'aider s'il vous plaît ?

Merci d'avance.


if (isset($_POST['connexion']))
	{
		$email = $_POST["email"];
		$mdp = $_POST["mdp"];
		
		//initialise la variable de messages d'erreurs à vide
		$msg = '';
		
		//requete de verification de l'enregistrement
		$requete = ("SELECT no_user, email, mdp FROM 'users'
					WHERE email = ('$email')
					AND mdp = ('$mdp')");
		$resultats = mysql_query($requete,$connexion) or die("Une erreur est survenue : " . mysql_error());
		if(mysql_num_rows($resultats))
		{
			while ($ligne = mysql_fetch_array($resultats))
			{
				$no_user = htmlentities($ligne['no_user'],ENT_QUOTES, "UTF-8");
			}
		}
		else 
			$no_user = '';
		
		//initialise la variable de messages d'erreurs à vide
		$msg = '';

		//si le no user n'existe pas ou que les champs sont vides donc message d'erreur
		if($no_user == '' OR empty($email) OR empty($mdp))
			$msg .= 'Identifiants incorrects<br />';

		//si aucun message d'erreur
		if (empty($msg))
		{
			$_SESSION['user'] = $no_user;
			header('Location:compte.php');
			//echo $_SESSION['user'];
		}

		else
		{
			//garde le formulaire affiché et affiche les messages d'erreurs
			echo "<p>$msg<p>";
			include('form_conn.php');
		}
	}
	else
	{
		//formulaire connexion
		include('form_conn.php');
	}

A voir également:

2 réponses

Bonjour,
Si tu ne démarres pas une session avec session_start(), tu pourras essayer de créer toutes les variables de session que tu voudras, aucune ne s'enregistrera... Donc :
<?php
//si aucun message d'erreur
if (empty($msg)) {
      session_start();
      $_SESSION['user'] = $no_user;
      header('Location:compte.php');
      //echo $_SESSION['user'];
}
?>
0
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015
1 avril 2012 à 16:16
Bonjour,

J'avais déjà testé cela, mais en vain...

Merci quand même.
0
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015
1 avril 2012 à 17:18
J'ai finalement réussi à résoudre mon problème. En effet, sur le nom de ma variable était différent sur la page de redirection... Oui, c'est très stupide...

Merci quand même !

Au revoir !
0