网站介绍(摘录自该网站):

100% 永久免费
再也不用付费申请 SSL 证书,非常感谢 Let's Encrypt 与 TrustAsia 为我们提供免费SSL证书。

证书到期提醒服务
我们免费提供证书到期提醒服务,在你的HTTPS证书到期前及时提醒你更换证书。

私钥安全有保障
我们默认采用浏览器本地生成私钥的方式,保证私钥不在网络中传播,确保您HTTPS证书的安全。

证书云托管
尽管我们提供证书与私钥的云托管服务,但我们仍然不推荐您使用该功能。当然我们也采用二步验证,私钥强加密等方式来保证您证书私钥的安全。您可到控制台面板进行私钥上传。

关于FreeSSL.org 是如何运行的?
提供 Let’s Encrypt 与 TrustAsia CA 的免费 HTTPS 证书
两者均支持文件验证与 DNS 验证:

Let’s Encrypt SSL 证书通过其官方 ACME 协议服务器生成。
TrutAsia SSL证书通过其官方提供的 API 生产。
私钥(Private Key)默认浏览器生成,保证私钥安全。自愿托管!
对于现代浏览器,我们在浏览器中使用 Web Cryptography API 生成一个私钥,从而保您的私钥不在网络上传输。当HTTPS证书申请成功后,私钥会从浏览器中删除。如果您的浏览器 不支持 Web Cryptography API,我们将从服务器生成私钥,通过 HTTPS SSL 下发给您,我们承诺绝不保存用户私钥。但是,为了更好的安全性,我们仍然建议使用支持 Web Cryptography API 的浏览器来生成客户端。您还可以在生成证书时提供自己的 CSR,这种情况下,您将绝对的保证私钥的安全。

关于私钥托管,您需要到控制台(需要登录)手动进行上传,我们会强制让您进行加密。如果您的证书在高安全的环境下使用,我们不建议你使用该功能。

申请网址:https://freessl.org/

./configure -prefix=/usr/local/php7 -with-config-file-path=/usr/local/php7/etc -with-mcrypt=/usr/include -enable-mysqlnd -with-gd -with-iconv -with-zlib -enable-bcmath -enable-shmop -enable-sysvsem -enable-inline-optimization -enable-mbregex -enable-fpm -enable-mbstring -enable-ftp -enable-gd-native-ttf -with-openssl -enable-pcntl -enable-sockets -with-xmlrpc -enable-zip -enable-soap -with-gettext -with-curl -with-jpeg-dir -with-freetype-dir -with-mysqli -enable-embedded-mysqli -with-pdo-mysql

https://segmentfault.com/q/1010000015379092

分析了几天,没有结果
很是蛋痛

今天终于找到问题原因:$data 变量中 存在一个同名的data的键,程序里并且进行了两次 extract($data),第一次把data中的数据导出后,就替换掉了 $data 导致第二次导出的数据就不存在了

问题是我其他有一个页面也用了data这个键名,也没有问题,就奇怪了

我开发环境,另一个页面也是存在 同键名的值 的,却没有问题


function arrayGet($array, $key, $default = null) {
    $keys = explode('.', $key);
    $a = $array;
    while (count($keys) != 0) {
        $key = array_shift($keys);
        if(!isset($a[$key])){
            return $default;
        }
        $a = $a[$key];
    }
    return $a;
}

function arraySet(&$array, $key, $value) {
    $keys = explode('.', $key);
    if (count($keys) == 1) {
        $array[$key] = $value;
        return;
    }
    $a = array();
    $b = $array;
    while (count($keys) != 0) {
        $k = array_shift($keys);
        $b = isset($b[$k]) ? $b[$k] : array();
        $a[$k] = $b;
    }
    $ka = array_keys($a);
    $a[end($ka)] = $value;
    for ($index = count($ka) - 2; $index >= 0; $index--) {
        $k = $ka[$index];
        $nextK = $ka[$index + 1];
        $a[$k] = array_merge($a[$k], array($nextK => $a[$nextK]));
    }
    $array[$ka[0]] = $a[$ka[0]];
}

parseQueryString(url) {
    let reg_url  = /^[^\?]+\?([\w\W]+)$/,
        reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g,
        arr_url  = reg_url.exec(url),
        ret      = {},
        str_para, result;
    if (arr_url && arr_url[1]) {
        str_para = arr_url[1]
    } else {
        str_para = url
    }
    while ((result = reg_para.exec(str_para)) != null) {
        ret[result[1]] = result[2];
    }
    return ret;
},