Tôi đã tìm thấy sự cố khi tôi sử dụng hàm mcrypt_get_iv_size qua AppServ.php - Lỗi nghiêm trọng: Gọi hàm không xác định mcrypt_get_iv_size() trong AppServ
Tôi cố gắng tìm chủ đề liên quan đến giải quyết vấn đề.
Tuy nhiên, tôi thử tải xuống libmcrypt.dll thành symtem32 và chỉnh sửa php.ini bằng cách xóa nhận xét khỏi ;extension=php_mcrypt.dll
thành extension=php_mcrypt.dll
. Sau đó khởi động lại apache.
Thật không may, sau khi tải lại trang để xem kết quả sau khi sửa đổi.
Nó vẫn báo lỗi như
Fatal error: Call to undefined function mcrypt_get_iv_size() in C:\AppServ\www\folder\index.php on line 36
Một chức năng chứa sau:
class Encryption {
var $skey = "SuPerEncKey2010"; // you can change it
public function safe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
public function safe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
public function encode($value){
if(!$value){return false;}
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
return trim($this->safe_b64encode($crypttext));
}
public function decode($value){
if(!$value){return false;}
$crypttext = $this->safe_b64decode($value);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv);
return strtolower(trim($decrypttext));
}
}
thử chạy php từ dấu nhắc lệnh, điều đó sẽ cho bạn bất kỳ lỗi nào có thể xảy ra trong khi tải dll, như thiếu dll, đường dẫn bị thiếu, thời gian chạy C++ hỗn hợp, v.v. –
cách thực hiện? bạn có thể gợi ý không? tôi kiểm tra tất cả các dll và nó được lưu trữ trong máy tính của tôi bây giờ. vì vậy, tôi không biết tại sao nó vẫn còn lỗi. – user2971638
đảm bảo bạn có php trong PATH, sau đó mở Command Prompt, gõ: php, nhấn enter. Xem nếu có bất kỳ lỗi nào. –