Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 如何对非菜单项使用SSL/https?_Joomla_Joomla Extensions - Fatal编程技术网

Joomla 如何对非菜单项使用SSL/https?

Joomla 如何对非菜单项使用SSL/https?,joomla,joomla-extensions,Joomla,Joomla Extensions,我们有一个网站,需要有几个部分是安全的。我们有 我们的SSL证书已安装,并且适用于可访问的区域 通过菜单项,这没有问题-我们只使用支持SSL的系统 菜单项编辑器中的参数。但我们有几个部分,即a 只有通过提交才能访问的购物车结账屏幕 可以说,他们没有自己的URL,他们只是 通过控制器提交给他们自己,并且基于 关于形式行动。现在,表单操作的设置如下: <form name="instantForm" action="/<?=$this->segment?>/" method=

我们有一个网站,需要有几个部分是安全的。我们有 我们的SSL证书已安装,并且适用于可访问的区域 通过菜单项,这没有问题-我们只使用支持SSL的系统 菜单项编辑器中的参数。但我们有几个部分,即a 只有通过提交才能访问的购物车结账屏幕 可以说,他们没有自己的URL,他们只是 通过控制器提交给他们自己,并且基于 关于形式行动。现在,表单操作的设置如下:

<form name="instantForm" action="/<?=$this->segment?>/" method="post" onsubmit="updateSubmitValue()">
<form id = "checkoutForm" name="checkoutForm" action="/checkout/" method="post" onsubmit="updateSubmit()">
如何确保显示的视图被切换 转到https URL


我已经在google joomla dev讨论组上发布了这篇文章,并得到了一个回复,告诉我使用JRoute生成URL,并使用setRedirect而不是发布到表单,但后来有人回复说使用JRoute会生成一个全新的请求,所以您对JRequest::getVar类型的所有访问都消失了。我们需要能够访问通过表单发布的变量,以便解决问题。有人有其他的方法吗?我对Joomla开发相当陌生,对很多可用的对象和方法都不熟悉。

我从一些人那里听说JRoute更适合于此,但这只有在您知道所需的URL时才起作用;我们必须根据当前请求动态构建URL,所以我使用了JURI

在my view.html.php中,我添加了以下代码:

$needSecure = $model->needSecure();
    if($needSecure) {
        $u =& JURI::getInstance( JURI::base() );
        $u->setScheme( 'https' );
        $tmpURL =  $u->toString()."checkout";
    }
    else {
        $tmpURL = "/checkout";
    }
$this->assignRef("tmpURL", $tmpURL);
needSecure是我模型中的一个函数,它从数据库表中提取一个值并返回一个布尔值。因此,如果needSecure返回true,我们将获取当前请求URI,将第一部分设置为https,然后追加提交的位。如果返回false,我们只需设置要提交的位

在default.php中,我们有:

<form id = "checkoutForm" name="checkoutForm" action="<?=$this->tmpURL?>/" method="post" onsubmit="updateSubmit()">
如果needSecure为true,则该操作将呈现为

<form id = "checkoutForm" name="checkoutForm" action="https://www.mysite.com/checkout" method="post" onsubmit="updateSubmit()">
<form id = "checkoutForm" name="checkoutForm" action="/checkout" method="post" onsubmit="updateSubmit()">
否则,它将导致

<form id = "checkoutForm" name="checkoutForm" action="https://www.mysite.com/checkout" method="post" onsubmit="updateSubmit()">
<form id = "checkoutForm" name="checkoutForm" action="/checkout" method="post" onsubmit="updateSubmit()">

它工作得很好,因为我们将布尔值存储在数据库中,这意味着如果我们想使新表单提交安全或不安全,就不必更改代码本身。

您使用的是什么购物车扩展?我们自己构建的扩展。我确实弄明白了这一点;我会在几分钟后公布答案。