Domanda

sto sviluppando un modulo in PHP per PrestaShop e sto avendo un momento difficile cercando di eseguire il debug del codice. Ogni volta che qualcosa cade su di esso non visualizza errori, solo una pagina vuota - sia sul front-end in cui il modulo è agganciato, o sulla pagina del modulo back-end.

Sto cercando di scrivere in un'altra classe, o di un'altra funzione, ma non piace a tutti.

E 'su un server locale dev, PHP errori sono accese ecc.

Qualcuno può dirmi qualsiasi altro modo per eseguire il debug roba invece di commentare fuori codice? O qualche modo di ottenere i codici di errore?

Grazie per il vostro aiuto in anticipo.

È stato utile?

Soluzione

Prova di apertura config/config.inc.php e quindi modificare:

@ini_set('display_errors', 'off')

a

@ini_set('display_errors', 'on').


Da PS 1.5 +, è necessario config/defines.inc.php aperto e cambiamento:

define('_PS_MODE_DEV_', false);

a

define('_PS_MODE_DEV_', true);

Altri suggerimenti

Vai alla pagina di backoffice.

Avanzate Params -> Prestazioni -> Clean Cache (Eraser Icona)

ho dovuto fare

  

aptitude install php5-mcrypt   sudo aptitude install php5-mcrypt   servizio di sudo apache2 restart

La crittografia non è stato installato

check this out per la soluzione finale!

Prima di tutto, è necessario abilitare la segnalazione errori sul tuo sito web.

1) Aprire il file config \ config.inc.php e trovare la seguente riga:

@ini_set(‘display_errors’, ‘off’);    

2) Change ‘off’ a ‘on’, ri-caricare il file e aggiornare la pagina.

Se non aiuta, andare al passo successivo.

3) Aggiungere questo codice nella parte superiore del file index.php nella radice di installazione PrestaShop e ri-caricarlo sul server. Quindi provare a accedere al tuo pannello sito e admin.

    <?php error_reporting(0); 
       $old_error_handler = set_error_handler("userErrorHandler");

       function userErrorHandler ($errno, $errmsg, $filename, $linenum,  $vars) 
     {
     $time=date("d M Y H:i:s"); 
     // Get the error type from the error number 
     $errortype = array (1    => "Error",
                         2    => "Warning",
                         4    => "Parsing Error",
                     8    => "Notice",
                     16   => "Core Error",
                     32   => "Core Warning",
                     64   => "Compile Error",
                     128  => "Compile Warning",
                     256  => "User Error",
                     512  => "User Warning",
                     1024 => "User Notice");
  $errlevel=$errortype[$errno];

  //Write error to log file (CSV format) 
  $errfile=fopen("errors.csv","a"); 
  fputs($errfile,"\"$time\",\"$filename: 
  $linenum\",\"($errlevel) $errmsg\"\r\n"); 
  fclose($errfile);

  if($errno!=2 && $errno!=8) {
     //Terminate script if fatal error
     die("A fatal error has occurred. Script execution has been aborted");
  } 
   }
?>

Dopo questo manipolazioni troverete il file chiamato errors.csv nella cartella in cui si trova il file index.php. Scaricare e aprire il file errors.csv utilizzando qualsiasi editor di testo, si trova il log degli errori lì.

Nel mio caso (PS 1.7) ho avuto schermata vuota dopo l'aggiunta di molti prodotti in maniera massiccia. Ho anche notato che era una schermata vuota con errore 500 (ho ottenuto dalla console del browser).

La soluzione è stata quella di aumentare semplicemente il limite di memoria del mio PHP. Esso può essere fatto con l'aggiunta di questa linea all'inizio del file index.php:

ini_set('memory_limit', '512M');

ho risolto con 512 MB, ma si può provare di più se il problema ancora persiste.

Questa è solo una soluzione temporanea / veloce, se lo vuoi persistente, è possibile modificare direttamente tale valore alla fonte, trova le php.ini e basta modificare il valore sul campo memory_limit.

È possibile trovare maggiori informazioni qui: https://www.inmotionhosting.com/support/prestashop-16/blank- schermo

Ho appena rinominato 'class_index.php' in / cache directory a qualcosa 'class.index.old.php', poi ricaricato sito - e voilà! sito è stato caricato. E in questa directory nuova 'class_index.php' è stato creato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top