Nothing 發問時間: 電腦與網際網路程式設計 · 1 0 年前

PHP Session,字串問題

請問Session有兩種方式,一種是網址,一種是cookie,那如果把cookie關掉,那方法還可行嗎?那網址傳遞呢?請問分別差在哪呢?SID又是??再來,我寫個程式,分別唯gb.php和add.phpgb.php接收act變數,act為add,則require("add.php")寫法是這樣gb.phpswitch($_GET['act']) {  case "add":   session_register("ADD");   require("add.php");   session_unregister("ADD");   break;add.phpif(!$_SESSION['ADD']){  header("HTTP/1.0 404 Not Found");  exit;}如果是這樣,session會被做假吧,那該怎麼做呢?還有請問,if(empty($var1))、if($var1= ="")、if(strlen($var1)==0)if($var1==NULL),分別差在哪呢?感謝各位回答

已更新項目:

作假是指 不適用session的cookie模式嗎?

那去改cookie不就得?

多加一個if(!isset($var1))

2 個解答

評分
  • 1 0 年前
    最佳解答

    第一個部分

    不知道您是刻意這樣寫的,還是您本身已經有遺漏

    我將你原本的程式碼加上了行號比較容易解說

    如果以您最原始的程式碼這樣是得不到SESSION變數的

    照此例,您註冊了一個ADD的SESSION變數,但他並不存在,

    因為他沒東西,所以當 if(!$_SESSION['ADD']) 的時候

    這個條件會是成立的

    <?

    1 switch($_GET['act'])

    2 {

    3 case "add":

    4 session_register("ADD");

    5 require("add.php");

    6 session_unregister("ADD");

    7 break;

    8 }

    ?>

    照此例,若是在第4與5行間加上例如 $ADD=$_GET['act'];

    則這個程式在 require("add.php"); 的時候,$_SESSION['ADD'] 就會是存在

    且if(!$_SESSION['ADD']) 的時候就會不成立

    經過加了這一行是會變成這樣

    session_register("ADD");

    $ADD=$_GET['act'];

    這兩行也可以寫成

    session_start();

    $_SESSION['ADD']=$_GET['act'];

    我不知道這回答有沒有符合你原本問的,

    在下僅以我的了解及對你的問題的解讀回答

    若是題意解讀錯誤,那就很抱歉

    第二個部分

    if(empty($var1))

    if($var1=="")

    if(strlen($var1)==0)

    if($var1==NULL)

    除此之外,您可能還要抓一個進來討論

    if($var1==0)

    事實上,這五個條件,某種(應該說很多)情況下都是一樣的

    只有例如 $var1=0; 時

    if(empty($var1)) 成立

    if($var1=="") 成立

    if(strlen($var1)==0) 不成立

    if($var1==NULL) 成立

    if($var1==0) 成立

    但是 $var1=""; 時

    if(empty($var1)) 成立

    if($var1=="") 成立

    if(strlen($var1)==0) 成立

    if($var1==NULL) 成立

    if($var1==0) 成立

    那 $var1=null; 呢??

    也是五個都成立

    至於差在哪裡,說實在,真要說差別

    只能說應用方式,跟優先選擇問題

    您可以參考一下我曾回答過的另一個問題

    http://tw.knowledge.yahoo.com/question/?qid=140609...

    參考資料: 自己~~~
  • 忠明
    Lv 4
    1 0 年前

    你session可以作假那邊是什麼意思

還有問題?馬上發問,尋求解答。