2012-11-02 95 views
-2

我知道...還有就是做這個邏輯比我到目前爲止已經試過一個最好的辦法???創建邏輯在最佳途徑

這是我的代碼...

//------------ Check code search bar form submission ---------------// 
if (isset($_POST['code_search_submitted'])) { 
    if (isset($_POST['searchCode']) && !empty($_POST['searchText'])) { 
    if (is_numeric($_POST['searchText']) && (strlen($_POST['searchText']) == 4)) { 

     $searchCode = $_POST['searchCode']; 
     if ($searchCode == 1) { 
      $_SESSION['searchCode'] = 'TutorCode'; 
     } elseif ($searchCode == 2) { 
      $_SESSION['searchCode'] = 'InstituteCode'; 
     } 

     $_SESSION['searchText'] = $_POST['searchText']; 

    } else { 
     $searchingError= 'Ennter four digits for code!'; 
     echo '<script type="text/javascript">'; 
     echo "alert('" . $searchingError . "')"; 
     echo "</script>"; 
    } 


     $url = BASE_URL . 'search/searching.php'; // Define the URL: 
     ob_end_clean(); // Delete the buffer. 
     header("Location: $url"); 
     exit(); // Quit the script. 

    } else { 
     $searchingError= 'Enter Tutor or Institute Code!'; 
     echo '<script type="text/javascript">'; 
     echo "alert('" . $searchingError . "')"; 
     echo "</script>"; 
    } 
    } //---- Check code search bar form submission ----// 

任何意見是極大的讚賞...

謝謝...

+1

首先,你應該正確地縮進代碼 – dynamic

+0

難從這段代碼說。如果沒有'ob_start' –

回答

2

OMG!是!這是我見過的最好的邏輯!

+0

確定??我不確定'ob_end_clean'嗎?感謝你的回答 –

0

我不知道,如果這樣做,你是想還是不想什麼,但我想你可以從史蒂夫·麥康奈爾讀的書「代碼大全」中獲益。任何需要了解這些代碼的人都必須非常非常努力地理解其意圖,而深層嵌套的邏輯陳述使得很難看出發生了什麼。

首先,@職場英語對話說,壓痕幫助。

其次,意見將是很好。

第三,降低了複雜性將真正幫助。例如,而不是

if (isset($_POST['code_search_submitted'])) { 

你可能會說:如果 (isValidSearch($ _ POST)){

} 
if (isCodeSearch($_POST)) { 

和包裝你的職位VAR檢查到一個單獨的功能。

接下來,你可能會包裹內體的IF語句插入功能太 - 例如,更換 如果(is_numeric($ _ POST [ 'SEARCHTEXT'])& &(strlen的($ _ POST [ 'SEARCHTEXT']) == 4)){

$searchCode = $_POST['searchCode']; 
    if ($searchCode == 1) { 
     $_SESSION['searchCode'] = 'TutorCode'; 
    } elseif ($searchCode == 2) { 
     $_SESSION['searchCode'] = 'InstituteCode'; 
    } 

    $_SESSION['searchText'] = $_POST['searchText']; 

} 

if (isValidSearch($_POST)) { 

    handleSearch($POST) 
} 

接下來,我會鼓勵你從顯示的邏輯在你的應用程序拆分業務邏輯 - 你的業務邏輯裏面包裹HTML語句(如Javascript錯誤)使其很難維護。考慮一個MVC框架。這也適用於將業務邏輯從應用程序邏輯中分離出來(例如輸出緩衝) - 對於非平凡的應用程序,您希望能夠修改業務邏輯而不必擔心會中斷應用程序邏輯,反之亦然。你的示例代碼表明,在業務邏輯簡單的改變(例如添加新的搜索類型)易造成有人忘記重新設置輸出緩衝...