小编常谈玩转php程序,必须拥有一个自己的php空间,这样写出来的程序的兼容性是更大的,广告已经过了,那么就来说说今天无忧主机小编遇到的问题,啥问题呢?
说难也不难,说简单也不简单,没有一定的基础的站长朋友可能是弄不出来的,只是说可能哈,不是说的一定。今天小编在上班的遇到一位站长朋友,他需要访问站点的时候默认访问自定义的一个动画页面,然后点击才进入到主站,刚开始小编认为非常的简单,怎么样的简单方法呢,就是把这个动画页面设置为默认首页不就可以了吗?对于其他的源码程序这个方法可能行,但是对于每次加载一个页面的时候或者栏目页的时候都要进过index.php去加载的时候,那么这个时候问题来了,不管您怎么样的去点击,都是访问到的是默认的自定义页面,那么这个问题也是花了小编数分钟的时间才解决的,主要是经验不足导致的,也是没有想到这方面去,但是最后还是完美的解决了。
解决思路:
当遇到这个问题的时候,我们就需要用到我们的session和cookie了,为什么需要这样的方法呢,原理其实很简单的,当我们访问的第一次的时候浏览器中没有任何的缓存,那么默认调转到自定义首页去,当点击第二次的时候已经记录缓存了,那么就让程序自动执行index.php页面。这样的思路是不是就很清晰了呢,那么小编这里以cookie的判断来解决这个问题。
首先我们要把index.php中的代码就是去除掉<?php ?> 然后保存在一个文本里面,留起来后面使用,那么这个时候index.php文件里面已经是空文件了,那么再次加入以下代码:<?php
//第一次访问该站点的时候浏览器没有记录缓存,默认调转的是自定义页面home.html
if( !isset($_COOKIE['visited']) ) {
setcookie("visited", "one", time()+3600*24, "/") or die("客户端禁止COOKIES");
header('Location: /home.html');
}
//当COOKIE="one" 也就是说浏览器中已经有了缓存,那么这个时候让程序执行的是index.php
elseif( $_COOKIE['visited'] == "one" ) {
setcookie("visited", "two", time()+3600*24, "/") or die("客户端禁止COOKIES");
header('Location: /index.php');
}
//当COOKIE="two" 这个时候就让程序执行index.php之前拿出来的代码了
elseif( $_COOKIE['visited'] == "two" ) {
//放入的是index.php源文件中的代码,复制到这里即可。
}
?>
就这样简单的几步完美解决掉了这个问题,希望这篇文章能帮助到还没有实现的站长朋友,转载的时候请注明出处,谢谢!(ps:这个代码还可以优化,能力有限也只能是这样,如您有不同的看法,请联系我们进行改正,谢谢!)
本文地址:https://www.51php.com/others/21077.html