看板 PHP 關於我們 聯絡資訊
※ 引述《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