作者sin282 (@兴...)
看板PHP
标题Re: [请益] 使用include模拟 框架frame问题
时间Thu Mar 14 15:47:18 2013
补充一个问题($_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)
1F:→ MOONRAKER:你可以把管理页写成另外一页 如admin_gutter.php 03/14 16:04
2F:→ MOONRAKER:在if()为真时才include进来 03/14 16:06
3F:→ MOONRAKER:这种简单架构有很多作法 也可以在输出重导後直接die() 03/14 16:07
4F:→ MOONRAKER:当然长远而言最好可以转到MVC架构 03/14 16:07
5F:→ sin282:谢谢您提供的方法 03/14 16:12
6F:→ sin282:以前很排斥使用程式写任何网页,总觉得自己做的很容易被钻 03/14 16:14
7F:→ MOONRAKER:是很容易被钻没错,但是不写就什麽都没有。 03/14 18:30