我们有一个网站需要有几个部分是安全的。我们已经安装了 SSL 证书,对于可通过菜单项访问的区域,这没问题 - 我们只需在菜单项编辑器中使用 SSL Enabled 系统参数。但是我们有一些部分(即购物车结帐屏幕)只能通过提交按钮访问(它们没有自己的 URL,可以这么说 - 它们只是通过控制器提交给自己,并且视图发生变化基于表单操作。)现在,表单操作设置如下:
<form name="instantForm" action="/<?=$this->segment?>/" method="post" onsubmit="updateSubmitValue()">
其中段是通过 view.html.php 传递的。呈现的表单标签如下所示:
<form id = "checkoutForm" name="checkoutForm" action="/checkout/" method="post" onsubmit="updateSubmit()">
提交时,控制器获取几个提交字段的值并确定显示哪个视图(使用保存的帐户信息或匿名交易登录),然后显示正确的表单。
这是控制器显示方法的精简版:
if (JRequest::getVar('checkoutCodeSubmitBTN') != ""){
//user has clicked Checkout button; go to billing info page
JRequest::setVar('view','checkoutpay');
// JRequest::setVar('view','checkout_thankyou');
//reference view
$viewCode =& $this->getView('checkoutpay','html');
$viewCode->voucher =& $voucher;
} //close test for step 1 if
如何确保显示的视图切换到 https URL?
我已经在 google joomla dev 讨论组上发布了这个,并得到一个回复,告诉我使用 JRoute 生成一个 URL 并使用 setRedirect 而不是发布到表单,但后来其他人回复说使用 JRoute 会产生一个全新的请求,所以你对 JRequest::getVar 类型的东西的所有访问都消失了。我们需要能够访问通过表单发布的变量,这样解决方案就出来了。有没有人有其他方法可以做到这一点?我对 Joomla 开发还很陌生,并且不熟悉许多可用的对象和方法。