【问题标题】:Codeigniter https page on site站点上的 Codeigniter https 页面
【发布时间】:2014-04-19 15:25:36
【问题描述】:

我在 Codeigniter 中建立了一个定制网站,我的客户正在通过 PayPal 获得订单。

正在发生的问题是我已经编写了该网站,以便如果 PayPal 订单完成并返回返回该网站,预订会更新为已付款。

我注意到一些订单,由于有时您在大多数浏览器中看到“不安全数据”弹出窗口,客户没有返回网站。

我认为,解决这个问题的方法是将返回页面设置为 https:// 页面。

所以我想知道如何将 CI 中的配置更改为仅这一页上的 https:// 链接。

可能还有其他方法,欢迎提出建议。

我也在考虑更新订单的IPN路由,但不太确定。

谢谢

【问题讨论】:

  • 很好,似乎是一个很好的答案。将 SSL 应用到我的 Bookings 控制器。
  • 我发现这里已经回答过了stackoverflow.com/questions/1500527/…
  • 我的建议是允许客户通过 http 进入商店 - 但所有链接都是 https。因为实际上,即使您的运输表格也应该在 https 上以保护人们的信息。
  • @cartalot 公平点,我有一个“预订”控制器,我认为应该都是 https://

标签: php codeigniter paypal


【解决方案1】:

使用 MY_url_helper 助手。 将以下代码添加到 helper 并在任何你想强制 ssl 的地方使用它。

<?php

function ssl_support() {
    $CI = & get_instance();
    return $CI->config->item('ssl_support');
}

if (!function_exists('force_ssl')) {

    function force_ssl() {
        if (ssl_support() && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off')) {
            $CI = & get_instance();
            $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
            redirect($CI->uri->uri_string());
        }
    }

}

if (!function_exists('remove_ssl')) {

    function remove_ssl() {
        if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
            $CI = & get_instance();
            $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);

            redirect($CI->uri->uri_string());
        }
    }

}
}

【讨论】:

    【解决方案2】:

    我会说将所有内容放在一个文件夹中并使用 SSL 进行永久保存?

    application/config/config.php,设置基本网址:

    $config['base_url'] = "https://www.yoursite.com/";
    

    【讨论】:

    • 嗨@chillion,这似乎不是一个坏主意!会让设置更容易
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2020-07-03
    • 2020-08-26
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多