Prestashop エラーなし/空白ページ
-
05-10-2019 - |
質問
PHP で Prestashop 用のモジュールを開発していますが、コードのデバッグに苦労しています。何かが倒れてもエラーは表示されず、モジュールがフックされているフロントエンドまたはバックエンドのモジュールページに空白のページが表示されるだけです。
別のクラスまたは別の関数を書こうとしていますが、まったく好きではありません。
ローカル開発サーバー上にあり、PHP エラーなどが発生します。
コードをコメントアウトする代わりにデバッグする他の方法を誰か教えてくれませんか?それともエラーコードを取得する方法があるのでしょうか?
事前にご協力いただきありがとうございます。
解決
開いてみてください config/config.inc.php
そして、変更:
@ini_set('display_errors', 'off')
に
@ini_set('display_errors', 'on')
.
PS 1.5+から、開く必要があります config/defines.inc.php
そして変更:
define('_PS_MODE_DEV_', false);
に
define('_PS_MODE_DEV_', true);
他のヒント
バックオフィスページに移動します。
Advanced Params-> Performance-> Clean Cache(Eraserアイコン)
私がしなければなりませんでした
適性インストールphp5-mcrypt sudo aptitudeインストールphp5-mcrypt sudo service apache2再起動
暗号化はインストールされていません
最終的なソリューションについては、これをチェックしてください!
まず、ウェブサイトで報告するエラーを有効にする必要があります。
1)ファイルconfig config.inc.phpを開き、次の行を見つけます。
@ini_set(‘display_errors’, ‘off’);
2)「OFF」を「ON」に変更し、ファイルを再アップロードし、ページを更新します。
それが役に立たない場合は、次のステップに進みます。
3)このコードをPrestashopインストールのrootでindex.phpファイルの上部に追加し、サーバーに再アップロードします。次に、ウェブサイトと管理パネルにアクセスしてみてください。
<?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");
}
}
?>
この操作の後、index.phpファイルが配置されているフォルダーにerrors.csvというファイルが見つかります。ファイルErrors.csvをダウンロードして開き、任意のテキストエディターを使用して、そこにエラーログが表示されます。
私の場合(PS 1.7)、多くの製品を大量に追加した後、画面が空白になりました。また、エラー 500 が表示された空白の画面であることにも気付きました (ブラウザのコンソールから取得しました)。
解決策は、PHP のメモリ制限を単純に増やすことでした。これは、index.php ファイルの先頭に次の行を追加することで実行できます。
ini_set('memory_limit', '512M');
512M で解決しましたが、問題が解決しない場合はさらに試してみてください。
これは単なる一時的/高速な解決策です。永続的にしたい場合は、ソースでその値を直接変更し、 php.ini
の値を編集するだけです memory_limit
分野。
詳細については、こちらをご覧ください。https://www.inmotionhosting.com/support/prestashop-16/blank-screen
「class_index.php」を /cacheディレクトリに変更したばかりのclass.index.old.php '、その後リロードされたサイトとvailaに変更しました!サイトがロードされました。このディレクトリでは、新しい 'class_index.php'が作成されました。