Utilisation de session_start

Résolu/Fermé
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 - 8 avril 2013 à 20:06
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 - 8 avril 2013 à 23:10
Bonjour tout le monde,

Voilà, je travaille sur un script devant gérer un site complet, avec un système de connexion pour les utilisateurs. Donc j'ai mon code qui connecte mon utilisateur s'il donne bien le bon pseudo et le bon mot de passe, ici, pas de problème, ensuite, j'affiche sur la page un petit message de bienvenue avec une ligne de code: Welcome <?php echo $_SESSION['nickname']; ?>! Alors ça s'affiche bien, mais quand je change de page, ce message ne s'affiche plus car il ne trouve plus la variable $_SESSION, j'ai donc rajouté session_start() au début de la page, et là, ça marche! Alors je voudrais savoir si il faut mettre session_start() à chaque début de page ou l'on veut utiliser $_SESSION, voilà, c'est tout! Aussi, voilà mon bout de code avec session_start() au début de la page:

Le contrôleur:

<?php

session_start();

include('model/members.php');

if (isset($_POST['login'])) 
{

	$logError = '';
	
	$connectTbl = getMember($_POST['nickname'], $_POST['password']);
	
	if (!$connectTbl)
	{
		$logError .= 'The nickname or the password is invalid!<br />';	
		session_unset();
		session_destroy();
	}
	else
	{	
		$_SESSION['id'] = $connectTbl['id'];
		$_SESSION['nickname'] = $connectTbl['nickname'];
	}
	
}
elseif (isset($_POST['logoff']))
{
	session_unset();
	session_destroy();
}

include('view/login_form.php');

?>


La vue:

<?php	
if (isset($_SESSION['id']) && isset($_SESSION['nickname']))
{
?>
Welcome <?php echo $_SESSION['nickname']; ?>!
<form action="" method="post">
<input  type="submit" name="logoff" value="Logoff" />
</form>
<?php
}
else
{

if (isset($_POST['login'])) 
{
	if ($logError != '')
	{
		?>
			<?php echo $logError; ?>
		<?php
	}
}

?>
<form action="" method="post">
<table>
<tr><td>Login</td></tr>
<tr><td>Nick:</td><td><input type="text" name="nickname" placeholder='Nickname'/><td></tr>
<tr><td>Pass:</td><td><input type="password" name="password" placeholder='Password'/><td></tr>
<tr><td></td><td>
<input  type="submit" name="login" value="Login" /></td></tr>
</table>
</form>
<?php
}
?>




2 réponses

watou Messages postés 199 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 19 avril 2013 28
8 avril 2013 à 21:10
Bonjour,

Oui exactement, il faut mettre session_start() au début de chaque page php si tu veux accéder aux variables de la session !

même dans la page de déconnexion, tu dois d'abord appeler session_start(), puis session_destroy() !
1
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 14
8 avril 2013 à 23:10
Merci beaucoup, vous me rendez vraiment service car j'avais deux ou trois problèmes pour comprendre l'utilisation de session_start()! MErci encore pour votre réponse rapide et précise!
0