У меня есть пользовательская таблица со столбцом с именем id_role
.Всем новым пользователям по умолчанию присваивается значение id_role
, равное 3
.
Любым пользователям, которым требуются привилегии более высокого уровня, я вручную обновляю их до 2
для administrator
и 1
для super_admin
.
Проблема в том, что id_role
все еще стоит стоимости последней зарегистрированной, и я не понимаю, почему.
Если я не добавлю нового пользователя id_role
, это всегда будет 1, и все будут входить в систему superadmin
, если я добавляю нового пользователя, id_role
будет 3, и каждый (даже администратор) будетвойдите в систему как обычный пользователь.
Вот мой основной код:
<?php
session_start();
$Nom = $_POST["Nom"];
$mdp = $_POST["mdp"];
//$id_role = $_POST["id_role"];
try{
$bdd = new PDO('mysql:host=localhost;dbname=azer', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch(Exception $e) {
die("acces imlpossible");
}
$st = $bdd->query("SELECT * FROM membre WHERE Nom='".$Nom."'")->fetch();
$mangetesmorts = $bdd->query("SELECT * FROM membre WHERE id_role");
if (password_verify($mdp, $st['mdp'])) {
$_SESSION['Nom'] = $Nom;
$_SESSION['activite'] = $st['activite']; //$_SESSION['id_role'] = $mangetesmorts['id_role'];
//var_dump($_SESSION['id_role']);
//print_r($id_role);
while ($donne = $mangetesmorts->fetch()) {
if ($_SESSION['activite'] =='cricket') {
header("Location: cricket.php");
} elseif ($_SESSION['activite'] == 'foot') {
header("Location: foot.php");
} elseif (($donne['id_role'] == 2)) {
header("Location: admin.php");
} elseif ($donne['id_role'] == 1) {
header("Location: admin_super.php");
} else {
header("Location: index2.php");}
}
}
и вот что я попробовал после:
<?php
session_start();
$Nom = $_POST["Nom"];
$mdp = $_POST["mdp"];
//$id_role = $_POST["id_role"];
try{
$bdd = new PDO('mysql:host=localhost;dbname=azer', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (Exception $e) {
die("acces imlpossible");
}
$st = $bdd->query("SELECT * FROM membre WHERE Nom='".$Nom."'")->fetch();
$mangetesmorts = $bdd->query("SELECT * FROM membre WHERE id_role");
if (password_verify($mdp, $st['mdp'])) {
$_SESSION['Nom'] = $Nom;
$_SESSION['activite'] = $st['activite'];
//$_SESSION['id_role'] = $mangetesmorts['id_role'];
//var_dump($_SESSION['id_role']);
//print_r($id_role);
while ($donne = $mangetesmorts->fetch()) {
$_SESSION['id_role']=$donne['id_role'];
if ($_SESSION['activite'] =='cricket') {
header("Location: cricket.php");
} elseif ($_SESSION['activite'] == 'foot') {
header("Location: foot.php");
} elseif ($_SESSION['id_role'] == 2) {
header("Location: admin.php");
} elseif ($_SESSION['id_role'] == 1) {
header("Location: admin_super.php");
} else {
header("Location: index2.php");
}
}
}