2014-12-01 4 views
2

Я включил сообщения об ошибках и режиме отладки:Prestashop 1.6 пустая страница нет сообщений об ошибках

//defines.inc.php 
define('_PS_MODE_DEV_', true); 
@ini_set('display_errors', 'on'); 
define('_PS_DEBUG_SQL_', true); 

Также я хвостатый -f php_error.log, apache_error.log, mysql_error.log Касается только я получил это :

[01-Dec-2014 10:12:07 America/Bogota] PHP Notice: Trying to get property of non-object in /Users/david/Documents/Developer/Php/PuntoCompra/puntocompra/modules/posstaticblocks/ajax.php on line 9 
[01-Dec-2014 10:12:07 America/Bogota] PHP Fatal error: Uncaught You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 4<br /><br /><pre> 
      SELECT m.* 
      FROM `puntocom_module` m 
      JOIN `puntocom_module_shop` ms ON (m.`id_module` = ms.`id_module` AND ms.`id_shop` = 1) 
      WHERE m.`id_module` = LIMIT 1</pre> 
    thrown in /Users/david/Documents/Developer/Php/PuntoCompra/puntocompra/classes/db/Db.php on line 635 

Я не думаю, что это что-то делать, так как передний и BackOffice работают отлично, за исключением того, когда я представить или обновить продукт я получил пустую страницу. Это происходит как в среде разработки, так и в производственной среде.

Во всяком случае вот мой ajax.php

require_once(dirname(__FILE__).'../../../config/config.inc.php'); 
require_once(dirname(__FILE__).'../../../init.php'); 
include(dirname(__FILE__).'/posstaticblocks.php'); 

$pos = new posstaticblocks(); 
$name_module = $_POST['module_id']; 
$module = Module::getInstanceByName($name_module); 
$id_module = $module->id; 
$hooks = $pos->getHooksByModuleId($id_module); 
$hookArrays = array(); 
foreach($hooks as $key => $hook) { 
    $hookArrays[$key] = array('id_hook'=>$hook['name'], 'name' => $hook['name']); 
} 
$json = json_encode($hookArrays); 
die(json_encode($json)); 

Также я думаю, что это не связано, но в моем переднем офисе только в среде разработки я получил это:

Notice: Undefined property: Possearchcategories::$_html in /Users/david/Documents/Developer/Php/PuntoCompra/puntocompra/modules/possearchcategories/possearchcategories.php on line 237 

Я также очистил кеш.

Где еще я могу найти эту проблему?

Edit: Это мой URL перед обновлением продукта:

//localhost:8888/adminxxxx/index.php?controller=AdminProducts&id_product=10&updateproduct&token=019b50f16c6927fc989c8d98fa9ebbed 

И это после моего обновления

//localhost:8888/adminxxxx/index.php?controller=AdminProducts&token=019b50f16c6927fc989c8d98fa9ebbed&id_product=10 

Я проверяемая реакцию сети, и это то, что поджигатель показывает:

ajax post response?

empty response

Это заставляет меня думать, что ответ ajax с не отвечающим запросом в файле ajax.php, упомянутом выше, имеет ошибку в этом вопросе. Кажется, что есть недостающий модуль ..

Edit 2:

Оказывается, что при загрузке страницы продуктов существует следующая Аякса после запроса:

POST //localhost:8888/modules/posstaticblocks/ajax.php 

Со следующими параметрами:

module_id undefined 

И ответ:

"[{\"id_hook\":\"displayFooter\",\"name\":\"displayFooter\"},{\"id_hook\":\"displayHome\",\"name\":\"displayHome\"},{\"id_hook\":\"displayLeftColumn\",\"name\":\"displayLeftColumn\"},{\"id_hook\":\"displayRightColumn\",\"name\":\"displayRightColumn\"},{\"id_hook\":\"displayTop\",\"name\":\"displayTop\"}]" 

Так что я сделал следующее не убить меня, пожалуйста мод:

// /modules/poststaticblocks/ajax.php 
$name_module = $_POST['module_id']; 
if($name_module == "undefined") 
    $name_module = "posstaticblocks"; 

И ушла ошибка !, но пустая страница все еще показывает

+0

Это WHERE m.'id_module' = LIMIT 1 часть вашего фактического запроса? Поскольку ошибка говорит вам * «для правильного синтаксиса для использования рядом с« LIMIT 1 »* * –

+0

@ Fred-ii- Точно, это недостающий id_module, вызывающий проблему ... предположим. –

+0

Если 'WHERE m.id_module = LIMIT 1' - ваш фактический запрос, вы не можете этого сделать. Возможно, вы имели в виду 'WHERE m.id_module = 'something' LIMIT 1' –

ответ

1

изменение линии 451 in/контроллеры/admin/AdminModulesPositionsController.PHP

$all_modules_controllers = Dispatcher::getModuleControllers($type); 

в

$all_modules_controllers = Dispatcher::getControllers($type); 

который, кажется, устранил проблему, не давая новые проблемы.

Так что это должно быть ошибкой в ​​новом Prestashop ver. 1.6.0.6