[請益] 強制由首頁登入的判別碼

看板PHP作者 (明月盈盈)時間15年前 (2008/10/16 12:36), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
請問請問,我做了一個有會員的留言版,但不希望經由網址不登入就 進入內頁,所以我另做一個「如果沒有抓到session」就不能進入內頁的判斷 前題:在還沒寫此判斷前,可以以帳密正常登入進內頁 首頁的原始碼(連結資料庫無誤的情況下): <?php //註冊兩個session變數 // 是否有此帳密 session_register("account"); // 是否登入 session_register("login"); //帳號和密碼的處理---------------------------------------------- //取得自身表單中所傳遞過來的資料 $account=""; $password=""; //設定取得表單欄位 if(isset($_POST["uname"])){ $account = $_POST["uname"]; } if(isset($_POST["upass"])){ $password = $_POST["upass"]; } //如果帳號和密碼欄位有輸入資料 if($account != "" && $password != "") { //設定SQL字串,並送出查詢 $sql_str = "select * from member where account = '".$account."' AND password = '".$password."'"; $result = mysql_query($sql_str,$link); if(mysql_fetch_row($result) != Null) { //表示是已有的會員,登入成功並寫入Session變數 $_SESSION["login"] = true; $_SESSION["account"] = $account; //程式轉向,開啟會員專區 header ("Location:member.php"); }else{ echo "<font color=red>帳號或密碼輸入錯誤,請重新輸入!!</font>"; } } //關閉連結 require_once 'include/test_bottom.php'; ?> ============================================================ 強制經由首頁進入的原始碼 login_check.php <?php if($_SESSION["login"] != "" && $_SESSION["login"] != false && $_SESSION["account"] != "") { //不等於空值表示避免session不帶任何值即可以入。 //若條件允合,就無任何指示,因為每個動作的網頁都不一樣 }else{ header ("Location:main.php"); } ?> ============================================================ 在內頁member.php的一開頭,以include載入。 如果我在網址直接寫member.php頁,的確是被強迫進入首頁(main.php)了, 可是…我在首頁key入正確的帳密,還是無法進入內頁。 請問…我哪裡寫錯了呢?QQ -- 愛聽故事的平凡村姑(羞) 故事完的心得 http://blog.yam.com/meano -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.70.229

10/16 13:21, , 1F
前面兩個session_register拿掉改session_start();
10/16 13:21, 1F

10/16 13:21, , 2F
然後當你要讀$_SESSION的時候都要session_start()過
10/16 13:21, 2F

10/16 13:24, , 3F
有的,我一開頭有加上on_start和session_start
10/16 13:24, 3F

10/16 13:26, , 4F
疑?是只要用到session,開頭就要加上session_start嗎
10/16 13:26, 4F

10/16 13:35, , 5F
謝謝謝謝~~我明白了~~
10/16 13:35, 5F

10/17 10:57, , 6F
如果有用到session最前面都要加session_start()
10/17 10:57, 6F

10/17 10:58, , 7F
session_register可以改由$_SESSION['abc']=xxx取代
10/17 10:58, 7F

10/17 12:55, , 8F
意思是,我一開始可用$_SESSION["login"] = true來代
10/17 12:55, 8F

10/17 12:55, , 9F
替session_register("login")嗎?
10/17 12:55, 9F
文章代碼(AID): #18ziJQcZ (PHP)