Index: branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php	(revision 19911)
+++ branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php	(revision 19957)
@@ -33,4 +33,9 @@
 class LC_Page_Mypage_DownLoad extends LC_Page {
 
+	// {{{ properties
+
+    /** フォームパラメータの配列 */
+    var $objFormParam;
+
     // }}}
     // {{{ functions
@@ -53,5 +58,41 @@
     function process() {
         ob_end_clean();
-
+        parent::process();
+        $this->action();
+        $this->sendResponse();
+    }
+
+    /**
+     * Page のAction.
+     *
+     * @return void
+     */
+    function action() {
+        // ログインチェック
+        $objCustomer = new SC_Customer();
+        if (!$objCustomer->isLoginSuccess()){
+            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
+        }
+
+        // パラメータチェック
+        $this->objFormParam = new SC_FormParam();
+        $this->lfInitParam();
+        // GET、SESSION['customer']値の取得
+        $this->objFormParam->setParam($_SESSION['customer']);
+        $this->objFormParam->setParam($_GET);
+        $this->arrErr = $this->lfCheckError();
+        if (count($this->arrErr)!=0){
+            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true);
+        }
+    }
+
+    /**
+     * Page のResponse.
+     * @return void
+     */
+    function sendResponse() {
+        $this->objDisplay->noAction();
+
+        // パラメータ取得
         $customer_id = $_SESSION['customer']['customer_id'];
         $order_id = $_GET['order_id'];
@@ -59,19 +100,4 @@
         $product_class_id = $_GET['product_class_id'];
 
-        // ID の数値チェック
-        // TODO SC_FormParam でチェックした方が良い?
-        if (!is_numeric($customer_id)
-            || !is_numeric($order_id)
-            || !is_numeric($product_id)
-            || !is_numeric($product_class_id)) {
-            SC_Utils_Ex::sfDispSiteError("");
-        }
-
-        $objCustomer = new SC_Customer();
-        //ログインしていない場合エラー
-        if (!$objCustomer->isLoginSuccess()){
-            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
-        }
-
         //DBから商品情報の読込
         $arrForm = $this->lfGetRealFileName($customer_id, $order_id, $product_id, $product_class_id);
@@ -96,5 +122,7 @@
         $sdown_filename = mb_convert_encoding($arrForm["down_filename"], $encoding, "auto");
 
-        //TODO SC_Display利用に変更
+        // flushなどを利用しているので、現行のSC_Displayは利用できません。
+        // SC_DisplayやSC_Responseに大容量ファイルレスポンスが実装されたら移行可能だと思います。
+
         //タイプ指定
         header("Content-Type: Application/octet-stream");
@@ -161,4 +189,22 @@
     }
 
+
+    /* パラメータ情報の初期化 */
+    function lfInitParam() {
+        $this->objFormParam->addParam("customer_id", "customer_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK"));
+        $this->objFormParam->addParam("order_id", "order_id", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK"));
+        $this->objFormParam->addParam("product_id", "product_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK"));
+        $this->objFormParam->addParam("product_class_id", "product_class_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK"));
+    }
+
+    /* 入力内容のチェック */
+    function lfCheckError() {
+        // 入力データを渡す。
+        $arrRet = $this->objFormParam->getHashArray();
+        $objErr = new SC_CheckError($arrRet);
+        $objErr->arrErr = $this->objFormParam->checkError();
+        return $objErr->arrErr;
+    }
+
     /**
      * デストラクタ.
Index: branches/version-2_5-dev/data/class/pages/error/LC_Page_Error.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/error/LC_Page_Error.php	(revision 19860)
+++ branches/version-2_5-dev/data/class/pages/error/LC_Page_Error.php	(revision 19957)
@@ -149,4 +149,7 @@
                 $this->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。";
                 break;
+            case DOWNFILE_NOT_FOUND:
+                $this->tpl_error="ダウンロードファイルが存在しません。<br />申し訳ございませんが、店舗までお問合わせ下さい。";
+                break;
             case FREE_ERROR_MSG:
                 $this->tpl_error=$this->err_msg;
