Доброго дня вам.
У меня проблема такая.
Опенкарт 1.5.6.1 Хостер - tmweb.ru (платный хостиг) Проблема заключаеться в топ что при попытке что то загрузить через файловый менеджер на сайте через админку выходит вот такой лог ошибок!
SyntaxError: JSON.parse: Unable to parse value: <b>Warn
OK
<b>Warning</b>: json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in <b>/home/s/sedoff14/public_html/admin/controller/common/filemanager.php</b> on line <b>150</b>[{"filename":"10627152.52ky1jgi9c.jpg","file":"10627152.52ky1jgi9c.jpg","size":"33.72KB"},{"filename":"111.jpg","file":"111.jpg","size":"99.91KB"},{"filename":"1111.jpg","file":"1111.jpg","size":"177.05KB"},{"filename":"123.jpeg","file":"123.jpeg","size":"13.09KB"},{"filename":"138475369738.jpg","file":"138475369738.jpg","size":"55.05KB"},{"filename":"1384753697815.jpg","file":"1384753697815.jpg","size":"55.42KB"},{"filename":"16781655.61e2r19w9t.jpg","file":"16781655.61e2r19w9t.jpg","size":"67.66KB"},{"filename":"276734141e7a6.jpg","file":"276734141e7a6.jpg","size":"8.3KB"},{"filename":"358994fc4ff2c61fdd3d31f1259cf662.jpg","file":"358994fc4ff2c61fdd3d31f1259cf662.jpg","size":"54.31KB"},{"filename":"3f0885f2026168c4b5f78a941d89289f.jpg","file":"3f0885f2026168c4b5f78a941d89289f.jpg","size":"54.52KB"},{"filename":"4068f7050d65999551396d1e462fce32.jpg","file":"4068f7050d65999551396d1e462fce32.jpg","size":"57.02KB"},{"filename":"52051-600x600.jpg","file":"52051-600x600.jpg","size":"19.95KB"},{"filename":"56686-jpg.jpg","file":"56686-jpg.jpg","size":"55.2KB"},{"filename":"566861-jpg.jpg","file":"566861-jpg.jpg","size":"61.24KB"},{"filename":"566862-jpg.jpg","file":"566862-jpg.jpg","size":"49.42KB"},{"filename":"566864-jpg.jpg","file":"566864-jpg.jpg","size":"56.4KB"},{"filename":"566865-jpg.jpg","file":"566865-jpg.jpg","size":"53.48KB"},{"filename":"56c141fa968efa5443c1880626ced678.jpg","file":"56c141fa968efa5443c1880626ced678.jpg","size":"48.22KB"},{"filename":"63284515.jpg","file":"63284515.jpg","size":"3.53KB"},{"filename":"75513.jpg","file":"75513.jpg","size":"13.88KB"},{"filename":"75ee2b47c0f2be35aa89a3b7465d30d7.jpeg","file":"75ee2b47c0f2be35aa89a3b7465d30d7.jpeg","size":"30.77KB"},{"filename":"82e4f7b1612ad025a9f99a127a152b3c.jpeg","file":"82e4f7b1612ad025a9f99a127a152b3c.jpeg","size":"36.5KB"},{"filename":"87d74ab85d3e2dff18516eb0ac861b88.jpeg","file":"87d74ab85d3e2dff18516eb0ac861b88.jpeg","size":"67.7KB"},{"filename":"92bc57742f23b68bfcffc386f5553dc0.jpeg","file":"92bc57742f23b68bfcffc386f5553dc0.jpeg","size":"30.72KB"},{"filename":"931d994ea2f4ee4bb9966442007d1541.jpg","file":"931d994ea2f4ee4bb9966442007d1541.jpg","size":"50.5KB"},{"filename":"Huawei_.png","file":"Huawei_.png","size":"107.32KB"},{"filename":"Untitled-2.jpg","file":"Untitled-2.jpg","size":"163.03KB"},{"filename":"Xinbo_dlja_iPhone_5_Yellow_278145.jpg","file":"Xinbo_dlja_iPhone_5_Yellow_278145.jpg","size":"37.03KB"},{"filename":"a5881ad6dfaa138a7ec39628f85045b1.jpeg","file":"a5881ad6dfaa138a7ec39628f85045b1.jpeg","size":"47.77KB"},{"filename":"cart.png","file":"cart.png","size":"421B"},{"filename":"d61bb336ea23cdacac61dbf5101f2763.jpeg","file":"d61bb336ea23cdacac61dbf5101f2763.jpeg","size":"38.27KB"},{"filename":"defWWault.jpeg","file":"defWWault.jpeg","size":"7.36KB"},{"filename":"default.jpeg","file":"default.jpeg","size":"6.12KB"},{"filename":null,"file":"","size":"13.09KB"},{"filename":"dept-shelf-iphone-4s.png","file":"dept-shelf-iphone-4s.png","size":"4.5KB"},{"filename":"dept-shelf-iphone-5s.png","file":"dept-shelf-iphone-5s.png","size":"4.2KB"},{"filename":"dept-shelf-iphone-acc.png","file":"dept-shelf-iphone-acc.png","size":"3.56KB"},{"filename":"display-apple-iphone-5-touchscreen-0-1.png","file":"display-apple-iphone-5-touchscreen-0-1.png","size":"20KB"},{"filename":"display-apple-iphone-5-touchscreen-0.png","file":"display-apple-iphone-5-touchscreen-0.png","size":"11.31KB"},{"filename":"display-apple-iphone-5-touchscreen-2-1.png","file":"display-apple-iphone-5-touchscreen-2-1.png","size":"16.72KB"},{"filename":"display-apple-iphone-5-touchscreen-2.png","file":"display-apple-iphone-5-touchscreen-2.png","size":"10.74KB"},{"filename":"favicon.jpg","file":"favicon.jpg","size":"1.12KB"},{"filename":"fee6b707c89da2bbbd626167734c88aaf7c80d68.jpeg","file":"fee6b707c89da2bbbd626167734c88aaf7c80d68.jpeg","size":"248.82KB"},{"filename":"log12o.jpg","file":"log12o.jpg","size":"25.51KB"},{"filename":"log1o.jpg","file":"log1o.jpg","size":"25.51KB"},{"filename":"preview.jpg","file":"preview.jpg","size":"7.43KB"},{"filename":"qTCCMik7haM.jpg","file":"qTCCMik7haM.jpg","size":"11.19KB"},{"filename":"to111p.jpg","file":"to111p.jpg","size":"146.38KB"},{"filename":"to11p.jpg","file":"to11p.jpg","size":"148.72KB"},{"filename":"top.jpg","file":"top.jpg","size":"158.48KB"},{"filename":"twigcase_4.jpg","file":"twigcase_4.jpg","size":"10.82KB"},{"filename":"twigcase_warming_1.jpg","file":"twigcase_warming_1.jpg","size":"99.64KB"}]
Вот файл filemanager.php
<?php
class ControllerCommonFileManager extends Controller {
private $error = array();
public function index() {
$this->load->language('common/filemanager');
$this->data['title'] = $this->language->get('heading_title');
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
$this->data['base'] = HTTPS_SERVER;
} else {
$this->data['base'] = HTTP_SERVER;
}
$this->data['entry_folder'] = $this->language->get('entry_folder');
$this->data['entry_move'] = $this->language->get('entry_move');
$this->data['entry_copy'] = $this->language->get('entry_copy');
$this->data['entry_rename'] = $this->language->get('entry_rename');
$this->data['button_folder'] = $this->language->get('button_folder');
$this->data['button_delete'] = $this->language->get('button_delete');
$this->data['button_move'] = $this->language->get('button_move');
$this->data['button_copy'] = $this->language->get('button_copy');
$this->data['button_rename'] = $this->language->get('button_rename');
$this->data['button_upload'] = $this->language->get('button_upload');
$this->data['button_refresh'] = $this->language->get('button_refresh');
$this->data['button_refresh'] = $this->language->get('button_refresh');
$this->data['button_submit'] = $this->language->get('button_submit');
$this->data['error_select'] = $this->language->get('error_select');
$this->data['error_directory'] = $this->language->get('error_directory');
$this->data['token'] = $this->session->data['token'];
$this->data['directory'] = HTTP_IMAGE . 'data/';
$this->load->model('tool/image');
$this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
if (isset($this->request->get['field'])) {
$this->data['field'] = $this->request->get['field'];
} else {
$this->data['field'] = '';
}
if (isset($this->request->get['CKEditorFuncNum'])) {
$this->data['fckeditor'] = $this->request->get['CKEditorFuncNum'];
} else {
$this->data['fckeditor'] = false;
}
$this->template = 'common/filemanager.tpl';
$this->response->setOutput($this->render());
}
public function image() {
$this->load->model('tool/image');
if (isset($this->request->get['image'])) {
$this->response->setOutput($this->model_tool_image->resize(html_entity_decode($this->request->get['image'], ENT_QUOTES, 'UTF-8'), 100, 100));
}
}
public function directory() {
$json = array();
if (isset($this->request->post['directory'])) {
$directories = glob(rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/') . '/*', GLOB_ONLYDIR);
if ($directories) {
$i = 0;
foreach ($directories as $directory) {
$json[$i]['data'] = basename($directory);
$json[$i]['attributes']['directory'] = utf8_substr($directory, strlen(DIR_IMAGE . 'data/'));
$children = glob(rtrim($directory, '/') . '/*', GLOB_ONLYDIR);
if ($children) {
$json[$i]['children'] = ' ';
}
$i++;
}
}
}
$this->response->setOutput(json_encode($json));
}
public function files() {
$json = array();
if (!empty($this->request->post['directory'])) {
$directory = DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']);
} else {
$directory = DIR_IMAGE . 'data/';
}
$allowed = array(
'.jpg',
'.jpeg',
'.png',
'.gif'
);
$files = glob(rtrim($directory, '/') . '/*');
if ($files) {
foreach ($files as $file) {
if (is_file($file)) {
$ext = strrchr($file, '.');
} else {
$ext = '';
}
if (in_array(strtolower($ext), $allowed)) {
$size = filesize($file);
$i = 0;
$suffix = array(
'B',
'KB',
'MB',
'GB',
'TB',
'PB',
'EB',
'ZB',
'YB'
);
while (($size / 1024) > 1) {
$size = $size / 1024;
$i++;
}
$json[] = array(
'filename' => basename($file),
'file' => utf8_substr($file, utf8_strlen(DIR_IMAGE . 'data/')),
'size' => round(utf8_substr($size, 0, utf8_strpos($size, '.') + 4), 2) . $suffix[$i]
);
}
}
}
$this->response->setOutput(json_encode($json));
}
public function create() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['directory'])) {
if (isset($this->request->post['name']) || $this->request->post['name']) {
$directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/');
if (!is_dir($directory)) {
$json['error'] = $this->language->get('error_directory');
}
if (file_exists($directory . '/' . str_replace('../', '', $this->request->post['name']))) {
$json['error'] = $this->language->get('error_exists');
}
} else {
$json['error'] = $this->language->get('error_name');
}
} else {
$json['error'] = $this->language->get('error_directory');
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
mkdir($directory . '/' . str_replace('../', '', $this->request->post['name']), 0777);
$json['success'] = $this->language->get('text_create');
}
$this->response->setOutput(json_encode($json));
}
public function delete() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['path'])) {
$path = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', html_entity_decode($this->request->post['path'], ENT_QUOTES, 'UTF-8')), '/');
if (!file_exists($path)) {
$json['error'] = $this->language->get('error_select');
}
if ($path == rtrim(DIR_IMAGE . 'data/', '/')) {
$json['error'] = $this->language->get('error_delete');
}
} else {
$json['error'] = $this->language->get('error_select');
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
if (is_file($path)) {
unlink($path);
} elseif (is_dir($path)) {
$this->recursiveDelete($path);
}
$json['success'] = $this->language->get('text_delete');
}
$this->response->setOutput(json_encode($json));
}
protected function recursiveDelete($directory) {
if (is_dir($directory)) {
$handle = opendir($directory);
}
if (!$handle) {
return false;
}
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..') {
if (!is_dir($directory . '/' . $file)) {
unlink($directory . '/' . $file);
} else {
$this->recursiveDelete($directory . '/' . $file);
}
}
}
closedir($handle);
rmdir($directory);
return true;
}
public function move() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['from']) && isset($this->request->post['to'])) {
$from = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', html_entity_decode($this->request->post['from'], ENT_QUOTES, 'UTF-8')), '/');
if (!file_exists($from)) {
$json['error'] = $this->language->get('error_missing');
}
if ($from == DIR_IMAGE . 'data') {
$json['error'] = $this->language->get('error_default');
}
$to = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', html_entity_decode($this->request->post['to'], ENT_QUOTES, 'UTF-8')), '/');
if (!file_exists($to)) {
$json['error'] = $this->language->get('error_move');
}
if (file_exists($to . '/' . basename($from))) {
$json['error'] = $this->language->get('error_exists');
}
} else {
$json['error'] = $this->language->get('error_directory');
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
rename($from, $to . '/' . basename($from));
$json['success'] = $this->language->get('text_move');
}
$this->response->setOutput(json_encode($json));
}
public function copy() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['path']) && isset($this->request->post['name'])) {
if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 255)) {
$json['error'] = $this->language->get('error_filename');
}
$old_name = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', html_entity_decode($this->request->post['path'], ENT_QUOTES, 'UTF-8')), '/');
if (!file_exists($old_name) || $old_name == DIR_IMAGE . 'data') {
$json['error'] = $this->language->get('error_copy');
}
if (is_file($old_name)) {
$ext = strrchr($old_name, '.');
} else {
$ext = '';
}
$new_name = dirname($old_name) . '/' . str_replace('../', '', html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8') . $ext);
if (file_exists($new_name)) {
$json['error'] = $this->language->get('error_exists');
}
} else {
$json['error'] = $this->language->get('error_select');
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
if (is_file($old_name)) {
copy($old_name, $new_name);
} else {
$this->recursiveCopy($old_name, $new_name);
}
$json['success'] = $this->language->get('text_copy');
}
$this->response->setOutput(json_encode($json));
}
function recursiveCopy($source, $destination) {
$directory = opendir($source);
@mkdir($destination);
while (false !== ($file = readdir($directory))) {
if (($file != '.') && ($file != '..')) {
if (is_dir($source . '/' . $file)) {
$this->recursiveCopy($source . '/' . $file, $destination . '/' . $file);
} else {
copy($source . '/' . $file, $destination . '/' . $file);
}
}
}
closedir($directory);
}
public function folders() {
$this->response->setOutput($this->recursiveFolders(DIR_IMAGE . 'data/'));
}
protected function recursiveFolders($directory) {
$output = '';
$output .= '<option value="' . utf8_substr($directory, strlen(DIR_IMAGE . 'data/')) . '">' . utf8_substr($directory, strlen(DIR_IMAGE . 'data/')) . '</option>';
$directories = glob(rtrim(str_replace('../', '', $directory), '/') . '/*', GLOB_ONLYDIR);
foreach ($directories as $directory) {
$output .= $this->recursiveFolders($directory);
}
return $output;
}
public function rename() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['path']) && isset($this->request->post['name'])) {
if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 255)) {
$json['error'] = $this->language->get('error_filename');
}
$old_name = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', html_entity_decode($this->request->post['path'], ENT_QUOTES, 'UTF-8')), '/');
if (!file_exists($old_name) || $old_name == DIR_IMAGE . 'data') {
$json['error'] = $this->language->get('error_rename');
}
if (is_file($old_name)) {
$ext = strrchr($old_name, '.');
} else {
$ext = '';
}
$new_name = dirname($old_name) . '/' . str_replace('../', '', html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8') . $ext);
if (file_exists($new_name)) {
$json['error'] = $this->language->get('error_exists');
}
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
rename($old_name, $new_name);
$json['success'] = $this->language->get('text_rename');
}
$this->response->setOutput(json_encode($json));
}
public function upload() {
$this->load->language('common/filemanager');
$json = array();
if (isset($this->request->post['directory'])) {
if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) {
$filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'));
if ((strlen($filename) < 3) || (strlen($filename) > 255)) {
$json['error'] = $this->language->get('error_filename');
}
$directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/');
if (!is_dir($directory)) {
$json['error'] = $this->language->get('error_directory');
}
if ($this->request->files['image']['size'] > 300000) {
$json['error'] = $this->language->get('error_file_size');
}
$allowed = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif',
'application/x-shockwave-flash'
);
if (!in_array($this->request->files['image']['type'], $allowed)) {
$json['error'] = $this->language->get('error_file_type');
}
$allowed = array(
'.jpg',
'.jpeg',
'.gif',
'.png',
'.flv'
);
if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) {
$json['error'] = $this->language->get('error_file_type');
}
if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) {
$json['error'] = 'error_upload_' . $this->request->files['image']['error'];
}
} else {
$json['error'] = $this->language->get('error_file');
}
} else {
$json['error'] = $this->language->get('error_directory');
}
if (!$this->user->hasPermission('modify', 'common/filemanager')) {
$json['error'] = $this->language->get('error_permission');
}
if (!isset($json['error'])) {
if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) {
$json['success'] = $this->language->get('text_uploaded');
} else {
$json['error'] = $this->language->get('error_uploaded');
}
}
$this->response->setOutput(json_encode($json));
}
/*
*********************************************
* ImageManager+ for Opencart *
* *
* by Salab, based on KayLohn 2012 kaylohn @ gmail . com *
* *
*********************************************
* For Version : 1.5.3.1
*/
//plupload code
public function multi() {
// HTTP headers for no cache etc
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Settings
//$targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
//$targetDir = '../image/data/';
$targetDir = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->get['directory']), '/');
//$cleanupTargetDir = false; // Remove old files
//$maxFileAge = 60 * 60; // Temp file age in seconds
// 5 minutes execution time
@set_time_limit(5 * 60);
// Uncomment this one to fake upload time
// usleep(5000);
// Get parameters
$chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0;
$chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0;
$fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : '';
// Clean the fileName for security reasons
$fileName = preg_replace('/[^\w\._]+/', '', $fileName);
// Make sure the fileName is unique but only if chunking is disabled
if ($chunks < 2 && file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName)) {
$ext = strrpos($fileName, '.');
$fileName_a = substr($fileName, 0, $ext);
$fileName_b = substr($fileName, $ext);
$count = 1;
while (file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName_a . '_' . $count . $fileName_b))
$count++;
$fileName = $fileName_a . '_' . $count . $fileName_b;
}
// Create target dir
if (!file_exists($targetDir))
@mkdir($targetDir);
// Remove old temp files
/* this doesn't really work by now
if (is_dir($targetDir) && ($dir = opendir($targetDir))) {
while (($file = readdir($dir)) !== false) {
$filePath = $targetDir . DIRECTORY_SEPARATOR . $file;
// Remove temp files if they are older than the max age
if (preg_match('/\\.tmp$/', $file) && (filemtime($filePath) < time() - $maxFileAge))
@unlink($filePath);
}
closedir($dir);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
*/
// Look for the content type header
if (isset($_SERVER["HTTP_CONTENT_TYPE"]))
$contentType = $_SERVER["HTTP_CONTENT_TYPE"];
if (isset($_SERVER["CONTENT_TYPE"]))
$contentType = $_SERVER["CONTENT_TYPE"];
// Handle non multipart uploads older WebKit versions didn't support multipart in HTML5
if (strpos($contentType, "multipart") !== false) {
if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen($_FILES['file']['tmp_name'], "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($in);
fclose($out);
@unlink($_FILES['file']['tmp_name']);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
} else {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($in);
fclose($out);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
}
// Return JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
}
}
?>
Пробовал удалять vqmod и чистить кэш.Ошибка есть.
Пробовал ставить конфиги в php.ini.Ошибка есть.
magic_quotes_gpc = On;
register_globals = On;
default_charset = UTF-8;
memory_limit = 64M;
max_execution_time = 36000;
upload_max_filesize = 999M;
safe_mode = Off;
mysql.connect_timeout = 20;
session.use_cookies = On;
session.use_trans_sid = Off;
session.gc_maxlifetime = 172800;
allow_url_fopen = on;
;display_errors = 1;
;error_reporting = E_ALL;
Прошу вас помогите,я уже не знаю что делать,просмотрел все поиски!