新聞中心
解決php源碼程序自定義首頁后點(diǎn)擊每個(gè)頁面都會(huì)跳轉(zhuǎn)到自定義頁面
小編常談玩轉(zhuǎn)php程序,必須擁有一個(gè)自己的php空間,這樣寫出來的程序的兼容性是更大的,廣告已經(jīng)過了,那么就來說說今天無憂主機(jī)小編遇到的問題,啥問題呢? 說難也不難,說簡(jiǎn)單也不簡(jiǎn)單,沒有一定的基礎(chǔ)的站長(zhǎng)朋友可能是弄不出來的,只是說可能哈,不是說的一定。今天小編在上班的遇到一位站長(zhǎng)朋友,他需要訪問站點(diǎn)的時(shí)候默認(rèn)訪問自定義的一個(gè)動(dòng)畫頁面,然后點(diǎn)擊才進(jìn)入到主站,剛開始小編認(rèn)為非常的簡(jiǎn)單,怎么樣的簡(jiǎn)單方法呢,就是把這個(gè)動(dòng)畫頁面設(shè)置為默認(rèn)首頁不就可以了嗎?對(duì)于其他的源碼程序這個(gè)方法可能行,但是對(duì)于每次加載一個(gè)頁面的時(shí)候或者欄目頁的時(shí)候都要進(jìn)過index.php去加載的時(shí)候,那么這個(gè)時(shí)候問題來了,不管您怎么樣的去點(diǎn)擊,都是訪問到的是默認(rèn)的自定義頁面,那么這個(gè)問題也是花了小編數(shù)分鐘的時(shí)間才解決的,主要是經(jīng)驗(yàn)不足導(dǎo)致的,也是沒有想到這方面去,但是最后還是完美的解決了。 解決思路: 當(dāng)遇到這個(gè)問題的時(shí)候,我們就需要用到我們的session和cookie了,為什么需要這樣的方法呢,原理其實(shí)很簡(jiǎn)單的,當(dāng)我們?cè)L問的第一次的時(shí)候?yàn)g覽器中沒有任何的緩存,那么默認(rèn)調(diào)轉(zhuǎn)到自定義首頁去,當(dāng)點(diǎn)擊第二次的時(shí)候已經(jīng)記錄緩存了,那么就讓程序自動(dòng)執(zhí)行index.php頁面。這樣的思路是不是就很清晰了呢,那么小編這里以cookie的判斷來解決這個(gè)問題。 首先我們要把index.php中的代碼就是去除掉<?php ?> 然后保存在一個(gè)文本里面,留起來后面使用,那么這個(gè)時(shí)候index.php文件里面已經(jīng)是空文件了,那么再次加入以下代碼:
<?php //第一次訪問該站點(diǎn)的時(shí)候?yàn)g覽器沒有記錄緩存,默認(rèn)調(diào)轉(zhuǎn)的是自定義頁面home.html if( !isset($_COOKIE['visited']) ) { setcookie("visited", "one", time()+3600*24, "/") or die("客戶端禁止COOKIES"); header('Location: /home.html'); } //當(dāng)COOKIE="one" 也就是說瀏覽器中已經(jīng)有了緩存,那么這個(gè)時(shí)候讓程序執(zhí)行的是index.php elseif( $_COOKIE['visited'] == "one" ) { setcookie("visited", "two", time()+3600*24, "/") or die("客戶端禁止COOKIES"); header('Location: /index.php'); } //當(dāng)COOKIE="two" 這個(gè)時(shí)候就讓程序執(zhí)行index.php之前拿出來的代碼了 elseif( $_COOKIE['visited'] == "two" ) { //放入的是index.php源文件中的代碼,復(fù)制到這里即可。 } ?>就這樣簡(jiǎn)單的幾步完美解決掉了這個(gè)問題,希望這篇文章能幫助到還沒有實(shí)現(xiàn)的站長(zhǎng)朋友,轉(zhuǎn)載的時(shí)候請(qǐng)注明出處,謝謝?。╬s:這個(gè)代碼還可以優(yōu)化,能力有限也只能是這樣,如您有不同的看法,請(qǐng)聯(lián)系我們進(jìn)行改正,謝謝?。?/p>
本文地址:http://www.gle-technology.com/others/21077.html