php后台跳出框架集

在后台管理系统中,一般使用框架集来分隔显示管理页面,但是若检测到session过期需要跳出框架集时,php后台要怎么操作?

if(no_login()){
    exit("<script>top.location.href='login.php';</script>");
}

这里的top其实就是a标签的target=’_top’的对应。

补充

2015.7.28
无独有偶,今天又遇到了跳转没反应,这回是登陆跳转,怎么会,我也不信,先看代码!

<?php
if (!empty($_POST)) {
    header('location: http://blog.newbmiao.com');
    exit;
}
?>


<form method='post' target='hiddenwin'>
    <table>
        <tr>
            <th>用户名</th>
            <td><input type='text' name='account' id='account'/></td>
        </tr>
        <tr>
            <th>密码</th>
            <td><input type='password' name='password'/></td>
        </tr>
        <tr>
            <th></th>
            <td>
                <button type='submit' id='submit'>登录</button>
            </td>
        </tr>
    </table>
</form>
<iframe frameborder='0' name='hiddenwin' id='hiddenwin' scrolling='no'></iframe>

看到没,form里的那个target,请求内容要呈现的目标容器指定,所以header请求的跳转是生效了,但是放到了,那个隐藏的iframe里,所以感觉没有跳转。坑爹的iframe伪装不刷新!

要解决,还是要用top或者parent去作为目标容器。


附target列表:

  • _blank 在新窗口中打开被链接文档。
  • _self 默认。在相同的框架中打开被链接文档。
  • _parent 在父框架集中打开被链接文档。
  • _top 在整个窗口中打开被链接文档。 framename 在指定的框架中打开被链接文档。
如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : http://blog.newbmiao.com/2015/01/11/php-jump-out-of-the-frameset.html

CI加载类源码分析

今天用到CI的library加载,发现同一controller多次load同一library,并期望传入的参数(构造函数接收的参数)生效是不行的,没搞明白,就看了下他的源码

原来CI在load类初始化前,先判断CI这个全局对象已加载的类实例有无已加载过的,若有,便忽略不再加载,期望多次加载的以构造函数构造不同实例自然是不可得。
于是将构造函数修改属性替换为公有方法去操作。

总之,CI加载类只加载一次,不会重复加载,也就像单例模式了,应避免构造传参式修改类属性。

Read More

Git搭建自己的网站服务器(Linux)

弄了半天终于搞定了,还是记录下吧,不然下次有得忘了

流程:

服务器

  • 构建git目录
    • git用户,git组作为仓库管理
    • ssh授权(远程无需密码接入)
    • hook(post-receive)自动部署代码到网站目录
  • 网站目录
    • 准备接代码就行啦

客户端

  • 建立开发目录
  • ssh连接key生成
  • git操作。。。

开始实作吧!

Read More