台灣最大程式設計社群網站
線上人數
785
 
會員總數:244894
討論主題:188887
歡迎您免費加入會員
討論區列表 >> PHP >> 有關SESSION的問題
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有關SESSION的問題
價值 : 100 QP  點閱數:484 回應數:23

樓主

Yueh-tsung YU
門外漢
0 2
44 10
發送站內信

各位大大好,小弟目前在做權限判斷的程式,現在做到登入以後判斷權限,但是不管使用者(user_id)有幾組卡號(card_id)都只會顯示第一筆卡號,我想要讓他全部都顯示,但是目前不管我怎麼打都只會跑最後一筆卡號出來,我試過好多辦法都不行,請問我程式碼改怎麼改才會全部顯示??
請各位高手幫幫忙感激不盡


搜尋相關Tags的文章: [ PHP ] , [ MySQL ] , [ SESSION ] ,
本篇文章發表於2019-03-21 18:01
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
1.首先你需要先了解陣列
2.下面這個範例,能讓你知道為什麼都只會顯示最後一筆資料

本篇文章回覆於2019-03-21 20:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

彩虹
檢舉此回應
然後再試試
<pre lang="php"> while($con=mysqli_fetch_array($result)){ $_SESSION['nc_card_id'][]=substr($con['card_id'],0,1); } // 迴圈內展開大概會是這樣 $_SESSION['nc_card_id'][]=1; $_SESSION['nc_card_id'][]=2; $_SESSION['nc_card_id'][]=3; $_SESSION['nc_card_id'][]=4; // 最後印出來看 echo "
";
print_r($_SESSION['nc_card_id']);
echo "";
</pre>
本篇文章回覆於2019-03-21 20:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

彩虹
檢舉此回應
然後再試試陣列的方式


本篇文章回覆於2019-03-21 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Yueh-tsung YU
檢舉此回應
彩虹大大您好,您舉的第一個例子來說,echo出來結果會是最後一個前面的會被蓋過去,但是我有試著執行你後來舉的例子可是還是會錯誤欸
本篇文章回覆於2019-03-21 23:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Yueh-tsung YU
檢舉此回應
沒事,我後來有執行你後來的範例然後implode分割以後ABCDEFGGGABCDEFABCDEF他會一直重複執行,因為我是要依卡號的第一個字母去判斷權限,那這樣的話我應該要怎麼讓她只跑第一個字母出來就好
本篇文章回覆於2019-03-21 23:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

彩虹
檢舉此回應
我不太懂你意思,能再多補充一下嗎?

1. 你可以把資料表的資料,稍微列出範例嗎
2.以及列出你預計期望的輸出結果
3.你目前修改後的程式碼
4.為什麼需要 implode?重複執行以及只跑第一個字母,是什麼意思?
本篇文章回覆於2019-03-22 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Yueh-tsung YU
檢舉此回應
彩虹大大您好這是我的資料表

我預期的結果是使用者登入以後,依據該使用者(user_id)所擁有的卡號(card_id)的第一個字母來判斷是哪個網站的權限並且依照卡號(card_id)第一個字母全部顯示該網站出來,我現在做到登入以後都只能顯示一個網站,沒辦法顯示所有字母的權限網站,然後程式碼我貼在下面
這是豋入之後資料庫判斷頁loginQ.php



這個是預期結果頁loginI.php

在麻煩彩虹大大了,如果還有需要補充的請您在告知我,感激不盡
本篇文章回覆於2019-03-22 14:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Yueh-tsung YU
檢舉此回應
資料庫我補在這
card_id user_id
A00382 13191006723
B00424 13191006723
C00432 13191006723
D00476 13191006723
E00445 13191006723
F00455 13191006723
本篇文章回覆於2019-03-22 15:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

彩虹
檢舉此回應
我看不太懂 你switch 裡的判斷,如下:
preg_match("/^[G]*$/", .....)
preg_match("/^[LMN]*$/", ......):
preg_match("/^[ABCD]*$/", .....):

如果卡號總共有 ABCDEFGH,當使用者登入時,能進去 G 的入口嗎?
ABCD又能進去嗎?
本篇文章回覆於2019-03-22 16:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

彩虹
檢舉此回應
另外我覺得你好像不太懂「/^[ABCD]*$/」這邊的意思

preg_match("/^[ABCD]*$/", .....):
這邊代表使用者只能有 A、B、C、D 四張卡,不能有這四張額外的卡

例如:


看完上面的範例之後,你在回想一下這邊是不是你要的判斷


我覺得你要在清楚描述一下你的需求,如果無法描述的話,程式也寫不出來
本篇文章回覆於2019-03-22 16:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
說真的,實在不知道該叫你從哪邊改起。

我就說說一些問題點讓你去先理解一下好了

首先就是陣列的多維應應。這邊其實我會建議你不要直接用$_SESSION來做直接KEY對應值。
我會建議你先用一個如$data的變數先將值給定值好。

最後再用個
$_SESSION['data'] = $data;
處理,盡量不要用session的一維key太多。操作起來也不方便。

再來就是資料多維應用。你已經有照彩虹的做法了解到如何多維資料讀取了。
可惜後續的程式碼沒說到的,你就不會了。

其一,你要的是卡號陣列值的判斷。可是你居然沒用for或是foreach來跑你的卡號陣列值。
你只用了 $_SESSION['nc_card_id'][0] 等於是只取第一筆卡號資料??
那你取得多維資料卡號的目的是啥??這是我第一個不解的地方

再來。用switch內放isset($_SESSION['nc_card_id'])?????
你想不想知道 isset($_SESSION['nc_card_id']) 的值是什麼??它不是真值就是偽值。
並不是你所想像中的$_SESSION['nc_card_id']值。
你拿一個真或偽值去做case???這我真的搞不懂。

再來,case內的值。居然用正則處理?這~~~~是有點大膽了。
你為何不要在取資料的時候,就將要判斷的值直接正則判斷出來了?搞不好還比較方便處理。
不需要用到switch就可以了。
==========================
其實還有一些小細節,但實在沒辦法一一再細說。
大致上只能說你的邏輯非常不好。所以你可能是用硬拼的方式拼起來。
還有問題就再問一下。但希望你基本的東西先了解一下。
本篇文章回覆於2019-03-22 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

Yueh-tsung YU
檢舉此回應
彩虹大大好我需求是這樣以13191006723這個使用者做例子
13191006723這個使用者登入以後依據他所擁有的卡號第一個字母判斷權限進入到該權限的網站
gle網站 L M N
littleonline網站 A B C D
corner網站 I J K
live網站 E F
pbls網站 H
ecedu網站 P Q R S
所以13191006723這位使用者登入以後會出現littleonline網站和live網站這兩個
你舉了例子後我想了想好像不是我所想要的判斷結果那我真的不知道該怎麼做了
再麻煩彩虹大大了,感激不盡
本篇文章回覆於2019-03-23 00:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

Yueh-tsung YU
檢舉此回應
版主大大好,您所說的我真的都沒有想到您說的先用一個如$data的變數先將值給定值好,這邊不太懂意思
其一,你要的是卡號陣列值的判斷。可是你居然沒用for或是foreach來跑你的卡號陣列值。
這邊版主的意思是說先用for或是foreach來跑你的卡號陣列值然後再來做IF或SWITCH的判斷是來判斷嗎?
然後您們這樣一講解以後,我覺得我好像把一個不會太困難的點越搞越複雜,我真的邏輯不太好
我常常都把不是很難理解的地方越搞越複雜
本篇文章回覆於2019-03-23 00:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

彩虹
檢舉此回應
如果 13191006723 使用者只有「A B」,那能進入「littleonline 網站 A B C D 」嗎?
本篇文章回覆於2019-03-23 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

Yueh-tsung YU
檢舉此回應
彩虹大大可以
本篇文章回覆於2019-03-23 23:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.