我在网站上用一个简单的整数生成了 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 中隐藏此参数的好方法?