Souci de get id session et affichage
damein
-
damein -
damein -
Bonjour,
je vous contact car je rencontre un problème de session plus précisément de récupération ID, j'ai une page nommée session.php et une autre page nommée profil le problème est est le suivant je me retrouve avec le même ID pour 2 utilisateur Différent en sachant qu'il y a un utilisateur admin avec certain droit et d'autre utilisateur avec des droits utilisateur.
Cela récupère bien ID dans la base de donnée sauf que quand je regarde ID de l'utilisateur admin qui est égale a 1 l'utilisateur (user) la aussi .
C'est la page session qui envoie l'ID utilisateur (admin ou user) vers la page profil.php.
ou est le problème ?
Voici la page session.php
Voici la page profil.php
je vous contact car je rencontre un problème de session plus précisément de récupération ID, j'ai une page nommée session.php et une autre page nommée profil le problème est est le suivant je me retrouve avec le même ID pour 2 utilisateur Différent en sachant qu'il y a un utilisateur admin avec certain droit et d'autre utilisateur avec des droits utilisateur.
Cela récupère bien ID dans la base de donnée sauf que quand je regarde ID de l'utilisateur admin qui est égale a 1 l'utilisateur (user) la aussi .
C'est la page session qui envoie l'ID utilisateur (admin ou user) vers la page profil.php.
ou est le problème ?
Voici la page session.php
<?php
require_once 'includes/connect.php';
echo '<br>';
echo '<div id="session_bloc">';
echo '<div id="session_text">';
if ($_SESSION['privilege'] == "admin") {
//création de la requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres order by id_user ASC";
mysql_query("SET NAMES utf8");
//exécution de notre requête SQL:
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
$date = date("d-m-Y");
$heure = date("H:i");
echo '<span class="session_texte2">Vous êtes Connecté: </span> <span class="session_pseudo">'.$_SESSION['login'];'</span>';
echo '<br/>';
if( $result = mysql_fetch_object( $requete ) ) {
echo '<span class="session_texte2_liens"><a href="profil.php?administrateur='.htmlspecialchars($result->id_user).'">Mon Profil utilisateur</a></span><br>';
}
echo '<span class="session_texte2_liens"><a href="panel/espace.php">Panneaux d\'administration</a></span><br>';
echo '<span class="session_texte2_liens"><a href="index.php?erreur=logout">Déconnection</a></span><br>';
} // laisser cel-ci
if ($_SESSION['privilege'] == "user") {
//création de la requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres order by id_user ASC";
mysql_query("SET NAMES utf8");
//exécution de notre requête SQL:
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
$date = date("d-m-Y");
$heure = date("H:i");
echo '<span class="session_texte2">Vous êtes Connecté: </span> <span class="session_pseudo">'.$_SESSION['login'];'</span>';
echo '<br/>';
if( $result = mysql_fetch_object( $requete ) ) {
echo '<span class="session_texte2_liens"><a href="profil.php?utilisateur='.htmlspecialchars($result->id_user).'">Mon Profil utilisateur</a></span><br>';
}
echo '<span class="session_texte2_liens"><a href="index.php?erreur=logout">Déconnection</a></span>';
} // laisser cel-ci
echo '</div>';
echo '</div>';
echo '<br/>';
?>
Voici la page profil.php
<?
session_start(); // On relaye la session
if (isset($_SESSION['authentification'])){ // vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location: index.php?erreur=intru"); // redirection en cas d'echec
exit;
}
echo '<!DOCTYPE html>';
echo '<html lang="en">';
echo '<head>';
echo '<title>Profil</title>';
echo '<meta charset="utf-8">';
echo '<meta name="viewport" content="width=device-width, initial-scale=1">';
echo '<script src="js/jquery.js"></script>';
echo '<script src="js/bootstrap.js"></script>';
echo '<link rel="stylesheet" href="css/style.css">';
echo '<link rel="stylesheet" href="css/profil.css">';
echo '<link rel="stylesheet" href="css/bootstrap.css">';
echo '<br/>';
echo '<br/>';
echo '<br/>';
if ($_SESSION['privilege'] == "admin") {
echo '<div id="profil_utilisateur">';
//connection au serveur:
$cnx = mysql_connect( "", "user", "h" ) ;
//sélection de la base de données:
$db = mysql_select_db( "database" ) ;
$id = $_GET["administrateur"] ;
//requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres WHERE id_user=".$id;
mysql_query("SET NAMES utf8");
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
echo '<input type="hidden" name="id" value="'.$result->id_user.'">';
echo '<br/>';
echo '<img src="image/profil-info.png" alt="image profil">';
echo '<br/>';
echo '<br/>';
echo '<div id="Profil_info_admin">';
echo '</div>';
echo '<br/>';
echo '<table>';
echo '<tr>';
echo '<td width="105" align="right">Votre Nom :</td>';
echo '<td width="150" align="center"><div id="profil_info2">'.$result->nom.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Votre Prénom :</td>';
echo '<td align="center"><div id="profil_info2">'.$result->prenom.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Type d\'accès :</td>';
echo '<td align="center"><div id="profil_info2">'.$result->privilege.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right"> Adresse E-Mail :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right"> Adresse ICQ :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Adresse IRC :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Votre site Web :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<img src="image/vos-competences.png" alt="image compétence">';
echo '<table>';
echo '<tr>';
echo '<td colspan="2">
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
</td>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<img src="image/vos-connaissances.png" alt="image connaissance">';
echo '<table>';
echo '<tr>';
echo '<td colspan="2">
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
</td>';
echo '</tr>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<a href="espace.php">Retour Sur L\'espace membre</a>';
echo '</div>';
echo '</head>';
echo '<body>';
echo '</body>';
echo '</html>';
}
}
if ($_SESSION['privilege'] == "user") {
echo '<div id="profil_utilisateur">';
//connection au serveur:
$cnx = mysql_connect( "localhost", "user", "h" ) ;
//sélection de la base de données:
$db = mysql_select_db( "database" ) ;
$id2 = $_GET["utilisateur"] ;
//requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres WHERE id_user=".$id2;
mysql_query("SET NAMES utf8");
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
echo '<input type="hidden" name="id" value="'.$result->id_user.'">';
echo '<br/>';
echo '<img src="image/profil-info.png" alt="image profil">';
echo '<br/>';
echo '<br/>';
echo '<div id="Profil_info_user">';
echo '</div>';
echo '<br/>';
echo '<table>';
echo '<tr>';
echo '<td width="105" align="right">Votre Nom :</td>';
echo '<td width="150" align="center"><div id="profil_info2">'.$result->nom.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Votre Prénom :</td>';
echo '<td align="center"><div id="profil_info2">'.$result->prenom.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Type d\'accès :</td>';
echo '<td align="center"><div id="profil_info2">'.$result->privilege.'</div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right"> Adresse E-Mail :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right"> Adresse ICQ :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Adresse IRC :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">Votre site Web :</td>';
echo '<td align="center"><div id="profil_info2"> </div></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"> </td>';
echo '</tr>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<img src="image/vos-competences.png" alt="image compétence">';
echo '<table>';
echo '<tr>';
echo '<td colspan="2">
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
</td>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<img src="image/vos-connaissances.png" alt="image connaissance">';
echo '<table>';
echo '<tr>';
echo '<td colspan="2">
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
<br/> -
</td>';
echo '</tr>';
echo '</tr>';
echo '</table>';
echo '<br/>';
echo '<a href="espace.php">Retour Sur L\'espace membre</a>';
echo '</div>';
echo '</head>';
echo '<body>';
echo '</body>';
echo '</html>';
}
}
?>
A voir également:
- Souci de get id session et affichage
- Get data back - Télécharger - Récupération de données
- Id telephone - Guide
- Affichage double ecran - Guide
- Https //id.sonyentertainmentnetwork.com/id/management/ ✓ - Forum PS4
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
1 réponse
Bonjour,
Bon... déjà .. il y a des petites choses à corriger avant de se pencher réellement sur ton souci.
Pour commencer ... ne mets pas les instructions de connexion à ta BDD un peu partout dans ton code !
Tu créés UN FICHIER contenant
puis.. dans tes pages (au début des pages) .. tu en faire un REQUIRE_ONCE
Ensuite ... dans ta page SESSION.PHP
Tu as :
Et
... tu peux m'expliquer la différence .. ou me dire pourquoi tu y a deux fois la même chose ?
N'aurais tu pas oublié d'y mettre un WHERE dans tes requêtes ? (d'où le fait que tu aies la même chose quelque soit le profil du user... )
Bon... déjà .. il y a des petites choses à corriger avant de se pencher réellement sur ton souci.
Pour commencer ... ne mets pas les instructions de connexion à ta BDD un peu partout dans ton code !
Tu créés UN FICHIER contenant
<?php
$serveur = 'localhost';
$user = 'user';
$pwd = 'h';
$database = 'database';
//connection au serveur:
$cnx = mysql_connect($serveur, $user , $pwd ) or die("Impossible de se connecter : " . mysql_error()); ;
//sélection de la base de données:
$db = mysql_select_db($database) ;
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
?>
puis.. dans tes pages (au début des pages) .. tu en faire un REQUIRE_ONCE
Ensuite ... dans ta page SESSION.PHP
Tu as :
if ($_SESSION['privilege'] == "admin") {
//création de la requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres order by id_user ASC";
Et
if ($_SESSION['privilege'] == "user") {
//création de la requête SQL:
$sql = "SELECT id_user, login, pass, nom, prenom, privilege FROM membres order by id_user ASC";
... tu peux m'expliquer la différence .. ou me dire pourquoi tu y a deux fois la même chose ?
N'aurais tu pas oublié d'y mettre un WHERE dans tes requêtes ? (d'où le fait que tu aies la même chose quelque soit le profil du user... )
ensuite dans profil.php voilà ce que j'ai fais de la requête :
et du cotée session.php comme ça :
Ensuite, c'est session.php qui envoie id vers profils.php et non l'inverse.
Et puis ... à quel moment places tu dans ton URL des variables get administrateur et/ou utilisateur ?
A quel moment également initialises tu ta variable $_SESSION['privilege'] ?
Cotée session : if ($_SESSION['privilege'] == "administrateur") { // Ont affiche tel ou tel information sur l'utilisateur si il à le statu admin } if ($_SESSION['privilege'] == "user") { // dans le cas contraire on affiche autre chose si le statu est user }coter page session.php qui envoie l'ID vers profil.php
coter profil.php
A quelle moment ... tu remplis ta variable de session
avec ... ou "user" .. ou "administrateur" ??
session_start(); // On relaye la session if (isset($_SESSION['authentification'])){ // vérification sur la session authentification (la session est elle enregistrée ?) // ici les éventuelles actions en cas de réussite de la connexion }Coter page index:
session_start(); // début de session if (isset($_POST['login'])){ // execution apres envoi du formulaire $login = mysql_real_escape_string($_POST['login']); // mise en variable du nom d'utilisateur $pass = sha1($_POST['pass']); // mise en variable du mot de passe crypté // requete sur la table administrateurs (on récupère les infos de la personne) mysql_select_db($database_dbprotect, $dbprotect); $verif_query = sprintf("SELECT * FROM $tablename_dbprotect WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs $verif = mysql_query($verif_query, $dbprotect) or die(mysql_error()); $row_verif = mysql_fetch_assoc($verif); $utilisateur = mysql_num_rows($verif); if ($utilisateur) { // On test s'il y a un utilisateur correspondant $_SESSION['authentification'] = 1; // enregistrement de la session // déclaration des variables de session $_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur) $_SESSION['nom'] = $row_verif['nom']; // Son nom $_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom $_SESSION['login'] = $row_verif['login']; // Son Login $_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)coter formulaire:
echo '<body>'; echo '<div id="page-connection">'; echo '<br/>'; echo '<div id="logo-shadownet">'; echo '<img src="data:image/png;base64,'.base64_encode(file_get_contents($image1)).'" alt="titre identification">'; echo '</div>'; echo '<div id="connection">'; echo '<br/>'; echo '<br/>'; echo '<form action="" method="post" name="login_form">'; echo '<img src="data:image/png;base64,'.base64_encode(file_get_contents($image2)).'" alt="titre identification">'; echo '<input class="form-control" name="login" type="text" id="login">'; echo '<br/>'; echo '<img src="data:image/png;base64,'.base64_encode(file_get_contents($image3)).'" alt="titre identification">'; echo '<input class="form-control" name="pass" type="password" id="pass">'; echo '<br/>'; echo '<br/>'; echo '<button type="sumbit" class="btn btn-danger btn-block">Connection !! </button>'; echo '</form>'; if(isset($_GET['erreur']) && ($_GET['erreur'] == "login")) { // Affiche l'erreur echo '<div id="session-down">Echec d\'authentification !!! <br/>login ou mot de passe incorrect</div>'; } if(isset($_GET['erreur']) && ($_GET['erreur'] == "delog")) { // Affiche l'erreur echo '<div id="session-down">Déconnexion réussie ! A bientôt '.$_SESSION['prenom'].'! </div>'; session_unset(); } if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru")) { // Affiche l'erreur echo '<div id="session-down">Aucune session n\'est ouverte ou vous n\'avez pas les droits pour afficher cette page.</div>'; }