代數題計算式錯誤

  1. 當作答時按下「送出」或「往下」,系統會將作答內容儲存到資料庫。第一次儲存時,系統會直接存入,若只是按下「往下」繼續下一題,且儲存的代數題作答之計算式有誤,要「送出」時會產生以下錯誤訊息。且再也無法更改該題作答內容,因此也就無法「送出」。
    You have entered data outside the normal sequence. 
    This can occur if you use your browser's Back or Forward buttons; 
    please don't use these during the test. 
    It can also happen if you click on something while a page is loading. 
    Click Continue to resume.
    
  2. 原因為「送出」或「往下」系統會自動比對答案是否錯誤,但代數題的「計算式錯誤」會輸出錯誤訊息,比對答案時若查到此訊息,就輸出錯誤訊息,不再繼續。修改計算函式,不使用 check_arguments 函式,而是直接進行參數個數匹配檢查,若不匹配則直接回傳 false,如此就可跳過錯誤訊息的產生。
    [root@dywang algebra]# vim parser.php 
    .......
        function evaluate($params) {
            // First ensure that there are the correct number of arguments
            //$this->check_arguments();
            if(count($this->_arguments)!=$this->_nargs) {return false;}
    .......