Oggi è sab set 19, 2020 3:21 pm

Benvenuto!

Lo stato dell'Arte come software Open Source gratuito E-commerce.
 

Zen Cart Italia

Bug versione 1.5.4

Bug conosciuti e relative soluzioni

Moderatori: Sandro Carniel aka webmaster, Paolo De Dionigi aka Spike00

Bug conosciuti e relative soluzioni

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 12:12 pm

Questo thread serve per elencare in un unico posto i bug noti per la versione 1.5.4 e relative soluzioni. Il thread rimarrà chiuso. Per le segnalazioni di nuovi bug aprite nuovi thread nel forum dedicato
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Errore T_STATIC (versione PHP 5.2.14 - 5.2.17)

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 12:33 pm

ATTENZIONE: Quanto segue si applica solo se si sta usando PHP 5.2.x (e la soluzione dovrebbe essere quella di fare l'upgrade di PHP, non di modificare il codice!)

Se sul vostro server gira ancora PHP 5.2.x (versione obsoleta, il cui supporto è terminato il 6 gennaio 2011) e provate ad utilizzare Zen Cart versione 1.5.4, potreste riscontrare un errore simile al seguente quando tentate di accedere alla sezione di Admin:

Errore:
PHP Parse error: syntax error, unexpected T_STATIC in /admin/includes/classes/class.admin.zcObserverLogEventListener.php on line 118

Soluzione
Alla riga 118 di /admin/includes/classes/class.admin.zcObserverLogEventListener, modificare:
Codice: Seleziona tutto
$levels = static::$levels;


in:
Codice: Seleziona tutto
$levels = self::$levels;


Ricorda: PHP 5.2. è obsoleto e non più supportato da nessuno. Dovresti aggiornare la versione di PHP del tuo server al più presto.
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

PHP Fatal error: 1101:BLOB/TEXT column 'logmessage' can't ha

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 4:22 pm

ATTENZIONE: Quanto segue si applica solo se si ottiene lo specifico errore indicato e se in MYSQL è abilitato STRICT_ALL_TABLES

Sintomi:
1) Cercando di accedere in admin compare il seguente errore generico: "WARNING: An Error occurred, please refresh the page and try again." (in inglese)
2) Verificando nella cartella /logs/, i dettagli dell'errore sono descritti come:
PHP Fatal error: 1101:BLOB/TEXT column 'logmessage' can't have a default value


ATTENZIONE
Questo problema si verifica solo quando si utilizzi MySql 5.5 o 5.6, con la seguente configurazione sql_mode = STRICT_ALL_TABLES
E questa combinazione è piuttosto rara, poichè attualmente la maggior parte delle distribuzioni non prevede questa configurazione di default.

E' più probabile incappare in questo problema se il server è Windows perchè questa configurazione si trova abilitata su alcune distribuzioni Windows.

Soluzione:
Modifica il file "/tuo_admin/includes/classes/class.admin.zcObserverLogWriterDatabase.php"
verso la riga 87 modifica il seguente codice

da
Codice: Seleziona tutto
    if (!$found_logmessage)
    {
      $sql = "ALTER TABLE " . TABLE_ADMIN_ACTIVITY_LOG . " ADD COLUMN logmessage mediumtext NOT NULL default ''";
      $db->Execute($sql);
    }
    // add 'severity' field of type varchar(9)


a
Codice: Seleziona tutto
    if (!$found_logmessage)
    {
      $sql = "ALTER TABLE " . TABLE_ADMIN_ACTIVITY_LOG . " ADD COLUMN logmessage mediumtext NOT NULL;
      $db->Execute($sql);
    }
    // add 'severity' field of type varchar(9)
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Il template di default non risulta validato su http://valida

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 5:06 pm

ATTENZIONE: Quanto segue non è necessario se si utilizza un template HTML5

Sintomi:
Se si utilizza un template XHTML / HTML4, come il template di default, compaiono dei warning nella validazione da parte del W3C Validator a causa di alcune modifiche introdotte nella versione 1.5.4 per il supporto di JQuery e Ajax.

Soluzione:
a) Se usi un template HTML5 non serve fare nessuna modifica.
b) Se non usi un template HTML5 e desideri ottenere la validazione da parte del W3C validator, devi fare le seguenti modifiche:

File /includes/templates/template_default/jscript/jscript_framework.php

riga 9
<script type="text/javascript">


riga 15
options.url = options.url.replace("&amp;", unescape("&amp;"));


riga 67
if (jqXHR.status === 200 * contentType.toLowerCase().indexOf("text/html") >= 0) {



File /includes/templates/template_default/common/html_header.php

verso riga 106 modificare quanto segue (fare attenzione ai caratteri in rosso)
/** CDN for jQuery core **/
?>
<script>window.jQuery || document.write('<script src="//code.jquery.com/jquery-1.11.1.min.js"><\/script>');</script>
<script>window.jQuery || document.write('<script src="<?php echo $template->get_template_dir('.js',DIR_WS_TEMPLATE, $current_page_base,'jscript'); ?>/jquery.min.js"><\/script>');</script>


in

/** CDN for jQuery core **/
?>
<script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"%3E%3C/script%3E'));</script>
<script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript type="text/javascript" src="<?php echo $template->get_template_dir('.js',DIR_WS_TEMPLATE, $current_page_base,'jscript'); ?>/jquery.min.js"%3E%3C/script%3E'));</script>
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Pagina bianca in installazione a causa di errore xcache

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 5:15 pm

ATTENZIONE: Quanto segue si verifica solo nel caso la propria configurazione di PHP includa XCACHE e sia abilitato

Si può verificare se xcache sia attivo per il proprio sito semplicemente controllando con phpinfo

Sintomi:
- Pagina bianca in fase di installazione
- Nessun dettaglio in /logs/zcInstall-xxxxxx.log

Soluzione:

Aprire il file /zc_install/index.php e modificare quanto segue

if (function_exists('apc_clear_cache')) @apc_clear_cache();
//XCACHE
if (function_exists('xcache_clear_cache')) @xcache_clear_cache();
//EA

In
if (function_exists('apc_clear_cache')) @apc_clear_cache();
//XCACHE
if (function_exists('xcache_clear_cache')) {
@ini_set('xcache.cacher', 'OFF');
}

//EA
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Problema con Stato Approvazione Cliente - Autorizzazione in

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 5:46 pm

ATTENZIONE: Quanto segue si applica solo se è stata impostata la seguente configurazione:
In admin->Configurazione->Info Cliente voce Stato Approvazione Cliente - Autorizzazione in Attesa impostata con il valore 1 (1= Deve essere Autorizzato per navigare nel sito)

Sintomi:
- Possibile sintomo: visitando il sito (o cliccando su home) senza essere loggati come clienti approvati, appare più volte la pagina di login se il parametro Autorizzazione in Attesa è impostato su un valore diverso da 0.
- Possibile sintomo: Le chiamate IPN possono non venire processate se il parametro Autorizzazione in Attesa è impostato su un valore diverso da 0.
- Possibile sintomo: qualsiasi altro script che utilizzi il gestore ajax di default possono presentare problemi di funzionamento se il parametro Autorizzazione in Attesa è impostato su un valore diverso da 0.

Soluzione più rapida:
Se non si utilizzano le opzioni relative all'approvazione dei clienti, impostare a 0 il parametro
Autorizzazione in Attesa.

Soluzione definitiva:
Aprire il file /includes/init_includes/init_customer_auth.php

Verso la riga 55, all'interno dello switch inserire il codice evidenziato in rosso.

switch (true) {
/**
* bypass redirects for these scripts, to processing regardless of store mode or cust auth mode
*/
case (preg_match('|_handler\.php$|', $_SERVER['SCRIPT_NAME'])):
case (preg_match('|ajax\.php$|', $_SERVER['SCRIPT_NAME'])):
break;



case ($down_for_maint_flag && DOWN_FOR_MAINTENANCE_TYPE == 'strict'):


Verso riga 111, altro switch:

switch (true) {
/**
* check store status before authorizations
*/
case (STORE_STATUS != 0):
break;


/**
* bypass redirects for these scripts, to processing regardless of store mode or cust auth mode
*/
case (preg_match('|_handler\.php$|', $_SERVER['SCRIPT_NAME'])):
case (preg_match('|ajax\.php$|', $_SERVER['SCRIPT_NAME'])):
break;



case (CUSTOMERS_APPROVAL_AUTHORIZATION == '1' and $_SESSION['customer_id'] == ''):
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Attivando una nuova lingua non vengono copiati i contenuti i

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 16, 2015 6:01 pm

ATTENZIONE: Questo problema si verifica solo se stai attivando una nuova lingua

Sintomi:
Quando si attiva una nuova lingua in Admin, normalmente i contenuti (titoli e descrizioni dei prodotti e delle categorie) presenti nella lingua di default del sito dovrebbero essere copiati nei rispettivi campi per la nuova lingua, in modo che le descrizioni non siano vuote se un cliente sceglie la nuova lingua.

Soluzione:

Aprire il file /tuo_admin/languages.php
verso la riga 30 invertire le due righe in modo che da così:

zen_record_admin_activity('Language [' . $code . '] added', 'info');
$insert_id = $db->Insert_ID();

diventi così:
$insert_id = $db->Insert_ID();
zen_record_admin_activity('Language [' . $code . '] added', 'info');
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Pagina bianca in admin dopo login con PHP 5.2.x

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 30, 2015 11:09 am

Questo problema si verifica solo se sul tuo server c'è PHP 5.2.x

Sintomi:
Dopo aver fatto il login nell'area di amministrazione, si ottiene una pagina bianca e se si guarda il sorgente html, l'unico contenuto è l'orario, l'indirizzo IP e un tag <br>.

Soluzione:
L'unica soluzione accettabile consiste nel fare l'upgrade di PHP alla versione 5.4 o 5.5

Se non riuscite a fare tale aggiornamento immediatamente, come soluzione TEMPORANEA, potete modificare il file /admin/includes/header.php (dove admin è il nome della vostra directory di amministrazione), commentando la riga 236 mediante l'aggiunta di //:

// echo @gethostname(); //what server am I working on?


RICORDA: PHP 5.2.x è obsoleto e non è più ufficialmente supportato da nessuno. Devi assolutamente aggiornare la versione di PHP del tuo server prima possibile.
E' ESTREMAMENTE IMPORTANTE!!!!
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Timeout durante l'ultima fase del checkout

Messaggioda Paolo De Dionigi aka Spike00 » ven gen 30, 2015 11:26 am

Sintomi:
Nell'ultima pagina del checkout, può accadere saltuariamente che compaia il seguente messaggio: "Whoops! La tua sessione è scaduta. Ripeti il Login." (o simile)

Soluzione:
Modificare il file /includes/functions/sessions.php, aggiungendo ,- in 3 posti:

Riga #111 : if (preg_replace('/[a-zA-Z0-9,-]/', '', session_id()) != '')

Riga #125 : if (preg_replace('/[a-zA-Z0-9,-]/', '', $tempSessid) != '')

Riga #138 : if (preg_replace('/[a-zA-Z0-9,-]/', '', $tempName) == '') return session_name($name);


Questo problema si verifica con tutte le versioni di Zen Cart a partire dalla 1.3.9 fino alla 1.5.4, su PHP 5.0 e seguenti se nella configurazione di PHP il parametro session.hash_bits_per_character è impostato al valore 6.
La soluzione è valida per tutte le versioni affette, ma è possibile che i numeri di riga indicati (che sono relativi alla versione 1.5.4) possano differire (nella 1.3.9 qualcuno può anche non essere presente, ma se stai usando la 1.3.9, è meglio se aggiorni al più presto).
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Spedizione più economica non sempre selezionata di default

Messaggioda Paolo De Dionigi aka Spike00 » mer feb 18, 2015 10:41 am

Sintomi:
Di solito nel checkout si desidera che sia selezionata come default il metodo di spedizione più economico.
Tuttavia in certe configurazioni questo può non accadere e così, non risulta selezionato di default alcun radio button.
Questo può verificarsi nelle versioni 1.5.3 e 1.5.4

Causa:
Quando è stata riscritta questa porzione di codice per la compatibilità con PHP 5.4 si è persa una condizione la cui assenza causa questo problema.

Soluzione:
Modificare il file /includes/modules/pages/checkout_shipping/header_php.php, riga 212:

if ( !isset($_SESSION['shipping']) && (zen_count_shipping_modules() > 1) ) $_SESSION['shipping'] = $shipping_modules->cheapest();

Sostituire la parte in rosso qui sopra con quella qui sotto

if ((!isset($_SESSION['shipping']) || (!isset($_SESSION['shipping']['id']) || $_SESSION['shipping']['id'] == '') && zen_count_shipping_modules() >= 1)) $_SESSION['shipping'] = $shipping_modules->cheapest();
1)Studiare questo documento prima di fare una domanda: http://url.zen-cart.it/faq
2)CERCA CERCA CERCA CERCA CERCA!
Paolo De Dionigi aka Spike00
Site Admin
 
Messaggi: 1663
Iscritto il: mar feb 08, 2005 10:41 am
Località: Busto Arsizio (VA)

Prossimo

Torna a Bug versione 1.5.4

cron

Login

Real Time Analytics