Re: [請益] php後台登入問題
※ 引述《tingjk (此為必填欄位)》之銘言:
: 至於大家說的header()前面不能有東西這個事情我很苦惱,因為前面就是判斷帳號密碼
: 的程式碼,把header上面訊息所說的38行移到前面也沒用(而且邏輯好像也怪怪的)
哪裡邏輯怪?
判斷帳號密碼或是去資料庫撈資料的 php 程式碼,
寫在最開始的地方很常見。
像你 admin.php 那個
已經先出現 DOCTYPE, html, head,
然後才開始 php 程式碼
<?php
session_start();
if(!isset($_SESSION['U_NAME'])){
header("Location:index.html");
}
?>
其實這一段應該要放在最前面才對。
一開始判斷沒有U_NAME就應該重新導向了。
前面輸出的那些 html 碼都是多餘的。
echo_login.php 這支檔案也是一樣。
都已輸出 DOCTYPE, html, head, body
才開始判斷帳號密碼,然後才送出 header。
這是錯的。
大家說的沒錯,header之前不能送出其它資訊。
準備好要停留在某一頁了,不轉址了,開始要送出資訊了,
再給它 DOCTYPE, html, head, body。
PHP是伺服器端語言,HTML, Javascript 是客戶端語言。
PHP在網頁走出伺服器大門之前,要先把資料準備好,然後送出。
接下來才是 HTML, Javascript 接手。
所以如果一開始帳號密判斷有問題,PHP 就會直接發出轉址的要求。
但是你卻先送出 DOCTYPE, html, head, body,
你先宣告某一頁要開始了,然後才做帳號密碼的判斷,
然後又要用 PHP 的 header 轉址。這樣的流程才是有問題。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.214.220
推
08/01 12:41, , 1F
08/01 12:41, 1F
→
08/02 01:09, , 2F
08/02 01:09, 2F
→
08/02 10:31, , 3F
08/02 10:31, 3F
推
08/04 12:03, , 4F
08/04 12:03, 4F
→
08/07 20:40, , 5F
08/07 20:40, 5F
→
08/07 20:40, , 6F
08/07 20:40, 6F
→
08/07 20:41, , 7F
08/07 20:41, 7F
推
08/10 03:44, , 8F
08/10 03:44, 8F
※ 編輯: anawak 來自: 114.45.88.249 (08/16 00:59)
推
07/08 22:13, , 9F
07/08 22:13, 9F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章