Besoin d'aide $_session php
Résolu
snowflakedu59
Messages postés
94
Statut
Membre
-
hub lg ,lgf b -
hub lg ,lgf b -
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
}
?>
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:
- Besoin d'aide $_session php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Salut,
QQs erreurs:
Essayes comme ça:
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
}
?>