Re: [請益] 使用include模擬 框架frame問題

看板PHP作者 (@興...)時間12年前 (2013/03/14 15:47), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串2/3 (看更多)
補充一個問題($_SESSION) 我有用下列的方式採include各頁面精簡了SearchA.php的程式碼 但因為這個應用是在「管理後台」的頁面,登入的人才看的見 先前參考了 http://tinyurl.com/3t2trwy 這位大大的範例方式建立登入後台 且可以正常的取得$_SESSION['username'] 問題:當我用下列方式撰寫html時,如果有個人在沒有登入的狀態下 直接造訪SearchA.php,會在踢除使用者時 展示了結果內容出來(約一秒) 這樣子很抖啊~ 原理上知道應該是要把我以下的這些東西塞進去if成功判斷式內, 但這樣就要把我的那一些程式碼都用echo產生,如下: echo "<body>" echo "<div class='~.~單雙引號真麻煩~.~'>XXX</div> 一定要全部把html用echo的方式產生嗎~~~~~~~~~ Help~~ SearchA.php的程式碼如下: <?php //判斷SESSION不存在就導回登入頁 @session_start(); if($_SESSION['username'] != null) { //這裡什麼都沒寫 } else{ echo '<meta http-equiv=REFRESH CONTENT=2;url=login.php>';} ?> <!DOCTYPE......> <html> <head> <meta> <script src="global.js"><script> <link rel="StyleSheet" href="css/global.css" type="text/css" /> </head> <body> 這裡是一些DIV+CSS+ Include PHP的語法 (include top.php menu.php content.php footer.php) </body> </html> ※ 引述《sin282 (@興...)》之銘言: : 各位前輩好,我有往上爬了include和頁面的文章,但還是不太理解以下的方法怎麼實作 : SearchA.php : ┌────────────┐ : │ top.php │ : │---------------------- │ : │menu.php |content.php │ : │ | │ : │ a link | │ : │ b link | │ : │ c link | │ : │ | │ : │------------------------│ : │ footer.php │ : └────────────┘ : 一直有個概念就是重複的東西可以一次修改全部受用 : 學生時期採用的是「框架」frame去做切割,各頁面就單純做自己的事就好了 : 但現在frame會影響到SEO的排名&其它~不好的因素,似乎快被淘汰了 : 所以想要請教一下大家PHP Include各頁的實作方法 : 假設上圖中「top」、「menu」、「footer」的內容會一直被使用 : 只有content的部份是會變化的 : 自己實作的方法原理是 : 1、建立SearchA.php : 2、各自建立top menu footer.php的內容 : 3、content.php因為需要依照menu a b c 的link改變,所以我做了SearchA B C.php三個 : 母頁面。 : 只有include content.php部份依ABC頁面放入不同的頁面EX:contentA B C.php : 我的問題來了.... : 1、每頁都有<html><head><body></body></head></html>有問題嗎? : 原先單頁時都會加入如!DOCTYPE 、title、Meta等宣告 : 各頁也有獨自的html head body,那是不是我只要在top.php加入上述內容至<html><body> : 而最後在footer再加上</body></html>是正確的做法 @.@ : 或者每頁都有其實沒差... 實際Run起來沒什麼差別... : 2、include 的內容如何呈現「menu.php」「content.php」左右分頁的效果 : top.php只要放在最上方,他就會自己放上去 : 是否是需要在SearchA.php先切好DIV+CSS(float切版) : 然後中間那塊就是把include放在div裡...如下 : <div class="menu"><?php include("menu.php"); ?></div> : 3、接上,這樣子感覺php就會和html混在一塊了 : 謎之音都說html 最好是透過AJAX去將php>DB的東西拿出來用, : 最好html裡不要有加一堆<div><?echo "something"; ?></div> : .....感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.210.231.212 ※ 編輯: sin282 來自: 218.210.231.212 (03/14 15:56)

03/14 16:04, , 1F
你可以把管理頁寫成另外一頁 如admin_gutter.php
03/14 16:04, 1F

03/14 16:06, , 2F
在if()為真時才include進來
03/14 16:06, 2F

03/14 16:07, , 3F
這種簡單架構有很多作法 也可以在輸出重導後直接die()
03/14 16:07, 3F

03/14 16:07, , 4F
當然長遠而言最好可以轉到MVC架構
03/14 16:07, 4F

03/14 16:12, , 5F
謝謝您提供的方法
03/14 16:12, 5F

03/14 16:14, , 6F
以前很排斥使用程式寫任何網頁,總覺得自己做的很容易被鑽
03/14 16:14, 6F

03/14 18:30, , 7F
是很容易被鑽沒錯,但是不寫就什麼都沒有。
03/14 18:30, 7F
文章代碼(AID): #1HGO29BZ (PHP)
文章代碼(AID): #1HGO29BZ (PHP)