2016-11-25 270 views
1

我建立一个网页的登录功能,我想出了这个错误:致命错误:openssl_random_pseudo_bytes

Fatal error: Call to undefined function 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,缓存关闭。

这是我做过什么来尝试解决问题:

  • 去除分号延长= 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.0C:\ MAMP \ BIN \ PHP \ php5.6.24文件夹

之所以在这两个地方这样做,是因为Chrome扩展 “Wappalyzer” 显示了这个页面,因为PHP 5.6.0版本。

错误,当我重新启动我的电脑用分号我得到去除

error I get when I restart my PC with semicolons removed

回答

0

修复!切换到PHP 7.0.9并没有这样的问题。