Re: [請益] 頁框header之問題(重新整理)
※ 引述《kazamisie (kazamisie)》之銘言:
: <? if( session_is_registered("login_session") )
: {
: echo "<a href=\"logout.php\" target=\"mainFrame\">登出</a>";
: }
: else
: {
: echo "<a href=\"login.php\" target=\"mainFrame\">登入</a>";
: }
: ?>
: 當點了登出 上面只剩登入
: 然後如果在if裡面或else裡面加入Refresh 則會無窮的重新整理
: 如果在logout.php裡面加Refresh只會更新logout.php的頁框
: 如果在logout.php裡面加header(location:index.php)只是把整個在塞進頁框= =
: 我有爬文和google 都是寫用超連結來重新整理
: 該怎麼辦= =
先不管你的功能,但是光是看到你的程式有重覆的東西。
我實在就很想給他重構下去。
因為程式需要改的地方越少,越容易看清楚他的架構。
你的程式因為是絕對性的二擇,所以可以寫成下面這樣:
<?php
echo login_program();
function login_program(){
$ex_target = ex_target("login.php","登入");
if (session_is_registered("login_session")){
$ex_target = ex_target("logout.php","登出");
}
return $ex_target;
}
function ex_target($ex_app,$ex_text){
return "<a href='$ex_app' target='mainFrame'>$ex_text</a>";
}
?>
不要看到程式碼變多就以為我這麼做不是複雜化了?
請看仔細二個函式中都只各負責一個功能。
一個負責判斷,一個負責回應字串。
而主程式就只有echo login_program();
看懂了嗎?知道的人就只到這個程式實際上就只有一行而不是11行(連「{」和「}」
都一起算進去的話)
也就是一行程式去呼叫二個功能。
而這個好處是說,如果你能確保你的函式功能是正確的。
那你就可以不用再去改他。
如果你的問題就出在函式,那你也不用去改其他的地方。只要專心去修正這個函式
就行了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.131.233
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):