亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據用戶,管理員更改變量

如何根據用戶,管理員更改變量

PHP
qq_遁去的一_1 2021-04-02 14:15:20
我有一個名為的用戶表id_role。默認情況下id_role,3為所有新用戶分配值。任何需要更高級別特權的用戶,我都會手動將它們更新為2foradministrator和1for super_admin。問題是id_role仍然值得上次注冊的價值,我不明白為什么。如果我不添加新用戶id_role,它將始終為1,每個人都將登錄superadmin;如果我添加新用戶,id_role則將為3,每個人(甚至是admin)都將以基本用戶身份登錄。這是我的基本代碼:<?phpsession_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");}        }   }這就是我嘗試過的:<?phpsession_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']);
查看完整描述

1 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您的條件重定向塊基于第二個查詢,該查詢不引用已成功登錄的用戶。(如果該查詢完全起作用)。


換句話說,while ($donne = $mangetesmorts->fetch()) {將要從表中拉出所有行,然后僅迭代第一行,因為重定向將結束腳本。


因為您的第一個SELECT查詢正在為用戶返回完整的數據行,因為該數組$st僅用于確定重定向。


if (in_array($st['activite'], ['cricket', 'foot'])) {

    header("Location: {$st['activite']}.php");

} elseif ($st['id_role'] == 2) {

    header("Location: admin.php");

} elseif ($st['id_role'] == 1) {

    header("Location: admin_super.php");

} else {

    header("Location: index2.php");

}

您可以聲明任何$_SESSION您喜歡的元素,為了清楚/一致起見,我將它們排除在此條件塊之外。


查看完整回答
反對 回復 2021-04-23
  • 1 回答
  • 0 關注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號