Besoin d'aide $_session php

Résolu/Fermé
snowflakedu59 Messages postés 90 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 14 mai 2010 - 23 mai 2008 à 14:26
 hub lg ,lgf b - 20 juin 2010 à 09:48
Bonjour,
je voudrais savoir comment proceder :
j'ai ca : http://del.resto.free.fr
je suis en train de voir pour l'authentification, j'aimerais que lorsque l'on est connecté, le formulaire d'identification sois remplacé par un menu correspondant a chaque utilisateur selon le service auquel il appartient .

pour l'instant j'ai ca :

<?php
// On démarre la session
session_start();?>
<div class="element_menu1"> <!-- Cadre correspondant à un sous-menu -->
<h3>Rubriques</h3>
<ul>
<li><a href="index.php">Accueil</a></li>

<li><a href="index.php?page=carteetmenu">Cartes et menus</a></li>
<li><a href="index.php?page=news">Info' du jour</a></li><br /><br />
</ul>
</div>
<div class="element_menu2">
<h3>Contact</h3>
<ul>

<li><a href="index.php?page=contacter_delresto">Nous contacter</a></li>
<li><a href="index.php?page=livreOr">Livre d'or</a></li>
<li><a href="index.php?page=authentification">FAQ</a></li><br /><br />
</ul>
</div>

<div class="element_menu3">

<?php // cf Astuce

if (isset ($_SESSION['Login']))
{
if ($_SESSION['service'])= 'Achat'
{echo 'menu achat'
}
else if ($_SESSION['service'])= 'client'
{echo 'menu client'
}
else if ($_SESSION['service'])= 'production'
{echo 'menu production'
}
else if ($_SESSION['service'])= 'administrateur'
{echo 'menu administrateur'
}
}
else if (isset($_POST['login']))
{
// On va chercher le mot de passe afférent à ce login
$sql = "SELECT * FROM utilisateurs WHERE login = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if ($password == $data['mdp']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['Login'] = $data['Login'];
$_SESSION['Mot de passe'] = $data['Mot de passe'];
$_SESSION['Nom'] = $data['Nom'];
$_SESSION['Prénom'] = $data['Prénom'];
$_SESSION['Service'] = $data['Service'];

}
else { ?>
<form method="post" action="index.php?page=traitementauthentification">
<b>Connexion</b>
<h4>
login:<br>
<input type="text" size="8" name="nom" id="nom" tabindex="20" /><br>
mot de passe:
<input type="password" size="8" name="mot de passe" id="mot de passe" tabindex="20"/><br>
<input type="submit" name="valider" value="ok" ></h4>

<form>
</div>
<?php
}
?>
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 mai 2008 à 17:42
Salut,

QQs erreurs:

Essayes comme ça:

<?php
// On démarre la session
session_start();
$loginOK=false;
?>
<div class="element_menu1"> <!-- Cadre correspondant à un sous-menu -->
<h3>Rubriques</h3>
<ul>
<li><a href="index.php">Accueil</a></li>

<li><a href="index.php?page=carteetmenu">Cartes et menus</a></li>
<li><a href="index.php?page=news">Info' du jour</a></li><br /><br />
</ul>
</div>
<div class="element_menu2">
<h3>Contact</h3>
<ul>

<li><a href="index.php?page=contacter_delresto">Nous contacter</a></li>
<li><a href="index.php?page=livreOr">Livre d'or</a></li>
<li><a href="index.php?page=authentification">FAQ</a></li><br /><br />
</ul>
</div>

<div class="element_menu3">

<?php // cf Astuce

if (isset ($_SESSION['Login'])){
	$loginOK=true;
	if ($_SESSION['service']== 'Achat'){//tu avais des erreus sur les 4 tests  double = et ) pas à la bonne place
		echo 'menu achat'; //et le point virgule
	}
	else if ($_SESSION['service '] =='client'){
		echo 'menu client';
	}
	else if ($_SESSION['service']== 'production'){
		echo 'menu production';
	}
	else if ($_SESSION['service']== 'administrateur'){
		echo 'menu administrateur';
	}
}
elseif (isset($_POST['login'])){
	//recup des valeurs postées
	$login=htmlentities($_POST['login']);//ça c'est une protection de sécurité
	$password=htmlentities($_POST['motdepass']);//il ne faut as mettre d'espce dans les noms de variables ou les name des input
	
	// On va chercher le mot de passe afférent à ce login
	$sql = "SELECT * FROM utilisateurs WHERE login = '".addslashes($login)."'";
	$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

	// On vérifie que l'utilisateur existe bien
	if (mysql_num_rows($req) > 0) {
		$data = mysql_fetch_assoc($req);

		// On vérifie que son mot de passe est correct
		if ($password == $data['mdp']) {
			$loginOK = true;
		}
	}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['Login'] = $data['Login'];
$_SESSION['Mot de passe'] = $data['Mot de passe'];
$_SESSION['Nom'] = $data['Nom'];
$_SESSION['Prénom'] = $data['Prénom'];
$_SESSION['Service'] = $data['Service'];

}
else {
 ?>
<form method="post" action="index.php?page=traitementauthentification">
<b>Connexion</b>
<h4>
login:<br>
<input type="text" size="8" name="login" id="login" tabindex="1" /><br>
<!-- tu avait mis name="nom" et tu testes par php $_POST['login']  !!!  -->
mot de passe:<br>
<input type="password" size="8" name="motdepass" id="motdepass" tabindex="2"/><br>
<input type="submit" name="valider" value="ok" tabindex="3" /></h4>
<!-- les tabindex, c'est l'ordre de passage d'un champ à l'autre par la touche TAB -->
</form> <!-- erreur il te manquait le / -->
</div>
<?php
}
?>
0
hub lg ,lgf b
20 juin 2010 à 09:48
h;;ju:;:;:, n uiukkug,u,u;ky
0