cakephp - 如何使用 CakePHP 的 HtmlHelper 创建安全链接 (https)

标签 cakephp ssl hyperlink cakephp-2.4

我到处寻找,但找不到如何使用 CakePHP 的 HtmlHelper 创建安全链接 (https)。

看起来这应该是一个简单的选择,但是......显然不是。

最佳答案

最终只是扩展了 HtmlHelper 并允许用户(我)将 '_secure'=>true 作为选项传递(见下文)。

当然,这可以扩展、清理......等等,但是 - 它非常适合我的目的。

自定义“MyHtmlHelper”:

<?php
//app/View/Helper/MyHtmlHelper.php
App::uses('HtmlHelper', 'View/Helper');
class MyHtmlHelper extends HtmlHelper {

    public function link($title, $url = null, $options = array(), $confirmMessage = false) {
        if(!empty($url['_secure']) && $url['_secure'] === true) {
            unset($url['_secure']);
            $url = str_replace('http:', 'https:', parent::url($url));
        }
        return parent::link($title, $url, $options, $confirmMessage);
    }

}

说明:

基本思想是,它检查您是否已将“secure”作为选项传递到选项数组中。如果这样做,它会强制链接为“full_base”(即带有 http://... 的完整 URL),然后将 URL 构建为字符串并将“http:”替换为'https:'

使用方法:

echo $this->Html->link('SSL LINK!', array(
    'controller' => 'orders',
    'action'     => 'tickets',
    'full_base'  => true,
    'secure'     => true
));

提醒:

您必须告诉您的应用程序您想要使用您的助手作为 HtmlHelper:

public $helpers = array(
    'Html' => array('className' => 'MyHtml'),
);

关于cakephp - 如何使用 CakePHP 的 HtmlHelper 创建安全链接 (https),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832041/

相关文章:

CakePHP 为不同类型的评论制作子模型

jquery - 如何将 jQuery 变量传递给 PHP 代码?

redirect - NGINX https ://www. example.com/index.php 到 https ://www. example.com/redirect 怎么办?

python - 从源代码构建 Python 和 OpenSSL,但 ssl 模块失败

ssl - 是否可以在 nginx 中使用 SSL Passthrough 重定向 TCP 连接

html - 如何创建 "Add To Favorites"超链接?

在智能手机上读取的 HTML 链接

php - CakePHP. SQLSTATE[42S22] : Column not found: 1054 Unknown column 'CalendarsClassification.id' in 'field list'

php - 在 CakePHP 分页中先排序,然后为空

html - 用于站点图标/收藏夹的最佳 html 链接语法是什么?