Prestashop 1.6空白页无错误报告

时间:2014-12-01 15:20:31

标签: php prestashop 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

我不认为这有什么可做的,因为前面和后面工作正常,但是当我提交或更新产品时我有一个空白页。这在发展和生产中都会发生的环境中。

无论如何这里是我的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

我也清除了缓存。

我还能在哪里寻找这个问题?

编辑: 这是产品更新前的我的网址:

//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

我已经检查了网络响应,这就是firebug所显示的内容:

ajax post response?

empty response

这让我觉得上面提到的ajax.php文件中带有非响应请求的ajax回答在这个问题上有错误。似乎缺少一个模块..

编辑2:

事实证明,在加载产品页面时,会出现以下ajax post请求:

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\"}]"

所以我做了以下 请不要杀了我 mod:

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

错误消失!,但空白页仍然显示

1 个答案:

答案 0 :(得分:1)

更改/controllers/admin/AdminModulesPositionsController.php中的第451行

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

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

这似乎消除了这个问题,没有给出新的问题。

所以它必须是新的Prestashop版本中的一个错误。 1.6.0.6