desactivar errores php

Comunidad PrestaShop orgullosamente patrocinada por el hosting PrestaShop de FactoriaDigital con soporte y servidores en España.

asba

Aprendiz de Prestashop
Hola a todos,
Me están apareciendo distintos errores en la tienda, como por ejemplo:

Notice: Undefined index: to in /var/www/vhosts/xxx.es/httpdocs/cache/smarty/compile/01/9e/e7/019ee7299abe85495ecb4d0750133329836901c5.file.iqitcountdown.tpl.php on line 27

Y viendo que no soy capaz de arreglarlos, estoy intentando que no se notifique los errores Notice (que no tienen tanta importancia) en la tienda, para que los clientes no los vean.

Estoy trabajando en Apache, por si sirve de algo, ya que el hosting no me permite FastCGI.
No puedo acceder a php.ini. y creo que únicamente podría desactivarlos desde .htaccess. en algunos sitios indican que ponga este código:

php_value error_reporting 2
php_flag display_errors On

Y en otros este:

php_flag display_errors 1
php_value error_reporting 7

Como no sabia que hacer, me puse en contacto con mi hosting y ellos en htaccess pusieron lo siguiente:

php_value error_reporting 2039

Que no ha funcionado. Su repuesta es que es mi aplicación (la serie de ficheros php)-supongo que se refiere a prestashop, es la que define que se muestren esos avisos, por lo que como es un tema de programación debo hacer yo sola los cambios.. :(.
En fin no tengo ni idea de que hacer, espero que alguno de vosotros sepa com arreglarlo.
Mil gracias :)
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Revisa el fichero defines.inc.php que se encuentra en la carpeta config y fijate que este codigo lo tegas asi.

Insertar CODE, HTML o PHP:
else
{
   @ini_set('display_errors', 'off');
   define('_PS_DEBUG_SQL_', false);
}
 

asba

Aprendiz de Prestashop
Esto es lo que tengo en defines.inc.php, al parecer si esta como tu dices:

/* Debug only */
if (!defined('_PS_MODE_DEV_'))
define('_PS_MODE_DEV_', true);
/* Compatibility warning */
define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false);
if (_PS_MODE_DEV_)
{
@ini_set('display_errors', 'on');
@error_reporting(E_ALL | E_STRICT);
define('_PS_DEBUG_SQL_', true);
}
else
{
@ini_set('display_errors', 'off');
define('_PS_DEBUG_SQL_', false);

}

define('_PS_DEBUG_PROFILING_', false);
define('_PS_MODE_DEMO_', false);

$currentDir = dirname(__FILE__);

if (!defined('PHP_VERSION_ID'))
{
$version = explode('.', PHP_VERSION);
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

if (!defined('_PS_VERSION_') && (getenv('_PS_VERSION_') || getenv('REDIRECT__PS_VERSION_')))
define('_PS_VERSION_', getenv('_PS_VERSION_') ? getenv('_PS_VERSION_') : getenv('REDIRECT__PS_VERSION_'));

if (!defined('_PS_HOST_MODE_') && (getenv('_PS_HOST_MODE_') || getenv('REDIRECT__PS_HOST_MODE_')))
define('_PS_HOST_MODE_', getenv('_PS_HOST_MODE_') ? getenv('_PS_HOST_MODE_') : getenv('REDIRECT__PS_HOST_MODE_'));

if (!defined('_PS_ROOT_DIR_') && (getenv('_PS_ROOT_DIR_') || getenv('REDIRECT__PS_ROOT_DIR_')))
define('_PS_ROOT_DIR_', getenv('_PS_ROOT_DIR_') ? getenv('_PS_ROOT_DIR_') : getenv('REDIRECT__PS_ROOT_DIR_'));

/* Directories */
if (!defined('_PS_ROOT_DIR_'))
{
define('_PS_ROOT_DIR_', realpath($currentDir.'/..'));

if (!defined('_PS_CORE_DIR_'))
define('_PS_CORE_DIR_', _PS_ROOT_DIR_);
}
elseif (!defined('_PS_CORE_DIR_'))
define('_PS_CORE_DIR_', realpath($currentDir.'/..'));

define('_PS_ALL_THEMES_DIR_', _PS_ROOT_DIR_.'/themes/');
/* BO THEMES */
if (defined('_PS_ADMIN_DIR_'))
define('_PS_BO_ALL_THEMES_DIR_', _PS_ADMIN_DIR_.'/themes/');
define('_PS_CACHE_DIR_', _PS_ROOT_DIR_.'/cache/');
define('_PS_CONFIG_DIR_', _PS_CORE_DIR_.'/config/');
define('_PS_CLASS_DIR_', _PS_CORE_DIR_.'/classes/');
define('_PS_DOWNLOAD_DIR_', _PS_ROOT_DIR_.'/download/');
define('_PS_MAIL_DIR_', _PS_CORE_DIR_.'/mails/');
if (!defined('_PS_MODULE_DIR_'))
define('_PS_MODULE_DIR_', _PS_ROOT_DIR_.'/modules/');
if (!defined('_PS_OVERRIDE_DIR_'))
define('_PS_OVERRIDE_DIR_', _PS_ROOT_DIR_.'/override/');
define('_PS_PDF_DIR_', _PS_CORE_DIR_.'/pdf/');
define('_PS_TRANSLATIONS_DIR_', _PS_ROOT_DIR_.'/translations/');
define('_PS_UPLOAD_DIR_', _PS_ROOT_DIR_.'/upload/');

define('_PS_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/');
define('_PS_ADMIN_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/admin/');
define('_PS_FRONT_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/front/');

define('_PS_TOOL_DIR_', _PS_CORE_DIR_.'/tools/');
define('_PS_GEOIP_DIR_', _PS_TOOL_DIR_.'geoip/');
define('_PS_PEAR_XML_PARSER_PATH_', _PS_TOOL_DIR_.'pear_xml_parser/');
define('_PS_SWIFT_DIR_', _PS_TOOL_DIR_.'swift/');
define('_PS_TAASC_PATH_', _PS_TOOL_DIR_.'taasc/');
define('_PS_TCPDF_PATH_', _PS_TOOL_DIR_.'tcpdf/');

define('_PS_IMG_DIR_', _PS_ROOT_DIR_.'/img/');

if (!defined('_PS_HOST_MODE_'))
define('_PS_CORE_IMG_DIR_', _PS_CORE_DIR_.'/img/');
else
define('_PS_CORE_IMG_DIR_', _PS_ROOT_DIR_.'/img/');

define('_PS_CAT_IMG_DIR_', _PS_IMG_DIR_.'c/');
define('_PS_COL_IMG_DIR_', _PS_IMG_DIR_.'co/');
define('_PS_EMPLOYEE_IMG_DIR_', _PS_IMG_DIR_.'e/');
define('_PS_GENDERS_DIR_', _PS_IMG_DIR_.'genders/');
define('_PS_LANG_IMG_DIR_', _PS_IMG_DIR_.'l/');
define('_PS_MANU_IMG_DIR_', _PS_IMG_DIR_.'m/');
define('_PS_ORDER_STATE_IMG_DIR_', _PS_IMG_DIR_.'os/');
define('_PS_PROD_IMG_DIR_', _PS_IMG_DIR_.'p/');
define('_PS_SCENE_IMG_DIR_', _PS_IMG_DIR_.'scenes/');
define('_PS_SCENE_THUMB_IMG_DIR_', _PS_IMG_DIR_.'scenes/thumbs/');
define('_PS_SHIP_IMG_DIR_', _PS_IMG_DIR_.'s/');
define('_PS_STORE_IMG_DIR_', _PS_IMG_DIR_.'st/');
define('_PS_SUPP_IMG_DIR_', _PS_IMG_DIR_.'su/');
define('_PS_TMP_IMG_DIR_', _PS_IMG_DIR_.'tmp/');

/* settings php */
define('_PS_TRANS_PATTERN_', '(.*[^\\\\])');
define('_PS_MIN_TIME_GENERATE_PASSWD_', '360');
if (!defined('_PS_MAGIC_QUOTES_GPC_'))
define('_PS_MAGIC_QUOTES_GPC_', get_magic_quotes_gpc());

define('_CAN_LOAD_FILES_', 1);

/* Order statuses
Order statuses have been moved into config.inc.php file for backward compatibility reasons */

/* Tax behavior */
define('PS_PRODUCT_TAX', 0);
define('PS_STATE_TAX', 1);
define('PS_BOTH_TAX', 2);

define('_PS_PRICE_DISPLAY_PRECISION_', 2);
define('PS_TAX_EXC', 1);
define('PS_TAX_INC', 0);

define('PS_ORDER_PROCESS_STANDARD', 0);
define('PS_ORDER_PROCESS_OPC', 1);

define('PS_ROUND_UP', 0);
define('PS_ROUND_DOWN', 1);
define('PS_ROUND_HALF', 2);

/* Registration behavior */
define('PS_REGISTRATION_PROCESS_STANDARD', 0);
define('PS_REGISTRATION_PROCESS_AIO', 1);

/* Carrier::getCarriers() filter */
// these defines are DEPRECATED since 1.4.5 version
define('PS_CARRIERS_ONLY', 1);
define('CARRIERS_MODULE', 2);
define('CARRIERS_MODULE_NEED_RANGE', 3);
define('PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE', 4);
define('ALL_CARRIERS', 5);

/* SQL Replication management */
define('_PS_USE_SQL_SLAVE_', 0);

/* PS Technical configuration */
define('_PS_ADMIN_PROFILE_', 1);

/* Stock Movement */
define('_STOCK_MOVEMENT_ORDER_REASON_', 3);
define('_STOCK_MOVEMENT_MISSING_REASON_', 4);

/**
* @deprecated 1.5.0.1
* @see Configuration::get('PS_CUSTOMER_GROUP')
*/
define('_PS_DEFAULT_CUSTOMER_GROUP_', 3);

define('_PS_CACHEFS_DIRECTORY_', _PS_ROOT_DIR_.'/cache/cachefs/');

/* Geolocation */
define('_PS_GEOLOCATION_NO_CATALOG_', 0);
define('_PS_GEOLOCATION_NO_ORDER_', 1);

define('MIN_PASSWD_LENGTH', 8);

define('_PS_SMARTY_NO_COMPILE_', 0);
define('_PS_SMARTY_CHECK_COMPILE_', 1);
define('_PS_SMARTY_FORCE_COMPILE_', 2);

define('_PS_SMARTY_CONSOLE_CLOSE_', 0);
define('_PS_SMARTY_CONSOLE_OPEN_BY_URL_', 1);
define('_PS_SMARTY_CONSOLE_OPEN_', 2);

define('_PS_JQUERY_VERSION_', '1.11.0');
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Fijate en la linea anterior donde tienes un on, en esta linea


Insertar CODE, HTML o PHP:
{   @ini_set('display_errors', 'on');   @error_reporting(E_ALL | E_STRICT);   define('_PS_DEBUG_SQL_', true);}

Dejala asi


Insertar CODE, HTML o PHP:
{   @ini_set('display_errors', 'off');   @error_reporting(E_ALL | E_STRICT);   define('_PS_DEBUG_SQL_', true);}
 

asba

Aprendiz de Prestashop
Seguramente digo una burrada pero había leído que se podia usar error reporting y ponerlo así: php_value error_reporting "E_ALL ^ E_NOTICE", pero claro no era en el archivo defines.inc.php.

¿tu cambiarías esto?:

{
@ini_set('display_errors', 'on');
@error_reporting(E_ALL | E_STRICT);
define('_PS_DEBUG_SQL_', true);

¿Y pondrías esto?:

{
@ini_set('display_errors', 'on');
@error_reporting(E_ALL ^ E_NOTICE);
define('_PS_DEBUG_SQL_', true);

Ya te digo seguramente es una tontería...
Gracias por ayudarme.
 

asba

Aprendiz de Prestashop
Vale ya he visto lo que dices, ahora lo pruebo ¿con eso me aparecerían los demás errores y no los notice, que son los únicos que no me interesan?
 

asba

Aprendiz de Prestashop
Genial! ya funciona :D


Muchisimas gracias Josraso!!!!!!
La única duda que me queda es si con esto seguiré viendo los demás errores y solo he desactivado los notice.
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Asi de esta manera hemos desactivado todos los errores, para mostrarlos tedras que activarlos de nuevo, creo recordar que para ver solo los que quieres tendrias que editar la primera linea a la que te hice mencion.
 

asba

Aprendiz de Prestashop
vaya!! Ya me lo imaginaba.. bueno, tengo la opción de activarla cuando quiera ver los errores..
Porque lo que te he comentado de :

@error_reporting(E_ALL ^ E_NOTICE);

No es correcto, no?
 

devoment

Experto en Prestashop
¿Seguro que no era solo necesario cambiar esto define('_PS_MODE_DEV_', true); por define('_PS_MODE_DEV_', false); ?
 
Arriba