ユーザーが過去の注文を確認できるように、サイト上で単純な整数を使用して URL を生成しています。
http://site.com/order_id/145323
問題は、その番号を変更して他の人の注文を表示するのが非常に簡単なことです。この番号をURLでエンコードし、phpでデコードしてコントローラーを実行できるようにする簡単な方法は何でしょうか? 非常に安全である必要はありません。誰かが番号を変更してデータを表示するのが簡単ではないものを使用してください。私は次のようなことを試みました:
order_id/<?php echo base64_encode($theOrder); ?>
そして、私が試したコントローラーアクションで:
if($orderId = (int) $this->getRequest()->getParam('order_id') && Mage::getSingleton('customer/session')->isLoggedIn()){
$orderId = (int) $this->getRequest()->getParam('order_id');
$orderId = base64_decode($orderId);
$order = Mage::getModel('sales/order')->load($orderId);
Mage::register('current_order', $order);
$this->loadLayout();
$this->renderLayout();
}
しかし、これはうまくいきません。url でこのパラメータを隠すにはどうすればよいでしょうか?