致命错误:openssl_random_pseudo_bytes

时间:2016-11-25 17:31:43

标签: php ajax

我正在构建一个具有登录功能的网页,我想出了这个错误:

  

致命错误:调用未定义的函数openssl_random_pseudo_bytes()in ... Users_model.php

这是一段源代码片段(第2行):

if(password_verify($password, $row->password)) {
        $token = bin2hex(openssl_random_pseudo_bytes(21));
        $this->insert_token_user($row->id, $token);
        $res = [
            'id' => $row->id,
            'first_name' => $row->first_name,
            'last_name' => $row->last_name,
            'email' => $row->email,
            'token' => $token
        ];

这是调试中发生的代码(第3行):

jQuery.ajax({
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + btoa(email + ":" + password));
    },
    url: URL + 'user/login',
    contentType: 'application/json',
    type: 'GET',
    success: function(data, status, response) {
    },
    error: function(xhr, status, error) {
        var err = JSON.parse(xhr.responseText);
        responseHandling(err);
    }

调试器错误的屏幕截图: error 1 ...

error 2

我正在运行Windows 10 x64和MAMP 3.2.2作为localhost。 MAMP设置: php 5.6.24,缓存关闭。

这就是我尝试解决问题的方法:

  • extension = php_openssl.dll 中删除了分号 在此文件夹 C:\ MAMP \ conf \ php5.6.24 \ php.ini
  • C:\ MAMP \ conf \ php5.6.0 \ php.ini
  • 将php.ini移动到 C:\ MAMP \ bin \ php \ php5.6.0 C:\ MAMP \ bin \ php \ php5.6.24 文件夹< / LI>

在这两个地方这样做的原因是因为Chrome扩展程序&#34; Wappalyzer&#34;将此页面显示为PHP 5.6.0版。

错误我在用分号删除

重新启动电脑时得到错误

error I get when I restart my PC with semicolons removed

1 个答案:

答案 0 :(得分:0)

已修复!已切换到PHP 7.0.9并且没有此类问题。