2013年9月30日 星期一

作業上傳程式問題與修正 1-1

上一篇修正可以避免直接輸入檔案的 URL 下載的問題,但也有點小問題:學生輸入密碼後,下一個頁面會列出檔案資訊,包含該檔案的 URL 連結,用意是如果瀏覽器沒有自動下載檔案時手動下載之用。但是經過上一篇修正之後,這個連結也就失效了。以下的方法可以兩者兼顧。

一樣透過 .htaccess 設定,所以 AllowOverride 一樣要改,請參考上一篇。這次是運用 mod_rewrite 模組,所以此模組一定要啟用(sudo a2enmod rewrite)。

2013年9月29日 星期日

為作業上傳程式加入查詢 / 重設學生密碼功能

原始程式並沒有這樣的功能,學生如果忘記密碼,要查或改只能直接操作資料庫,對於一般老師不太可行,於是就自己加囉。(註:經原作者提醒,原來的程式本來就有查看密碼的功能。)

新增功能:

  1. 查詢密碼

  2. 重設密碼,可直接採用系統預設值或自訂新密碼。


步驟如下:

  1. init.php 中新定義一個常數,作為預設的新密碼

  2. 修改樣板檔 ManageUpHw.mtpl

  3. 修改 manage.php


2013年9月27日 星期五

作業上傳程式目前發現的問題

作業上傳程式還算不錯用,但還是有一些問題,說大不大,卻也有點困擾。

發現的問題如下:

  1. PHP 5.4 版遇到的問題(已解決

  2. 繞過程式直接下載的問題(已解決更新

  3. 上一個問題解決後衍生的新問題(已解決

  4. 作業已逾期,開放參觀(展示)時,仍然出現[下載],容易讓人誤會無法下載檔案(仍需要密碼)(已解決

  5. 學生忘記密碼,重設密碼不方便(需直接操作資料庫)(已解決

  6. 打包下載時檔名非原始檔名

  7. 打包產生的 zip 檔似乎要手動清除

  8. 各項作業無法分別設定上傳的檔案類型

  9. 繞過程式直接下載 Part 2 (f=View 或 DlHwIframe)

  10. 前後台檔案列表顯示時間為檔案第一次上傳時間,應為更新時間較合理(2013.10.21,已解決

作業上傳程式問題與修正 3

症狀:

作業已逾期,若開放參觀時仍出現  [下載],點下去之後會詢問密碼,若點圖示則可正常下載,容易造成誤會。

修正:

於樣板檔加入判斷式,視情況設定  [下載]  的超連結。

作業上傳程式問題與修正 2

經過這一篇的修正後,已無法繞過程式下載檔案,但對老師而言卻也製造了一個新的問題:後台作業管理點圖示無法下載檔案,只能點某個檔案下方的  [下載]  。

察看了一下原始碼,發現原來的超連結直接連結到檔案,當然無法再直接下載啦,所以解決方法也很簡單:換個超連結,經由程式下載。

作業上傳程式問題與修正 1

upload下的子目錄有兩種:

  1. hwxxxx為該項作業之序號),存放作業檔案

  2. temp 存放作業檔案的 zip 檔,老師從後台針對某項作業  [下載整包]  時產生


預設位置若未修改,因此只要知道 url 即可繞過程式直接下載。如果將位置移出 web 根目錄之外即可避免,不過可能要修改程式(主要是 temp 下的 zip 檔的下載方式),比較麻煩啦(好啦,其實是我懶,等有空再說 ^_^)。所以以下採取的是比較簡單的作法:限制存取範圍(運用 .htaccess )。

2013年9月5日 星期四

精讚部落之作業上傳程式安裝問題修正

安裝環境:XAMPP  ver1.82 for Windows

XAMPP 1.82 版的 PHP 是 5.4 版,當進入某個作業之後,畫面上方會出現如下之訊息,雖不影響操作卻很礙眼:

Notice: String offset cast occurred in D:\xampp\htdocs\hw\includes\base.class.php on line 565

該訊息似乎是 PHP 5.4 開始才有的,原因是使用了非整數型態的索引值(參考資料),例如字串型態的整數,所以解決方法有二: