問題点 set_error_handlerは、phpのERRORやNOTICEなどが発生した際に実行する関数を指定できるが、FATAL_ERROR(例外)の場合は関数を実行してくれない。 set_error_handler('error_handler'); throw new Exception('hoge'); function('error_handler') { echo 'ERROR!!'; }
![set_error_handlerではfatal errorはハンドリングしてくれない - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1d7fcc934afe51c5d309c85bf14b92988a397008/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9c2V0X2Vycm9yX2hhbmRsZXIlRTMlODElQTclRTMlODElQUZmYXRhbCUyMGVycm9yJUUzJTgxJUFGJUUzJTgzJThGJUUzJTgzJUIzJUUzJTgzJTg5JUUzJTgzJUFBJUUzJTgzJUIzJUUzJTgyJUIwJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJThGJUUzJTgyJThDJUUzJTgxJUFBJUUzJTgxJTg0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kNDVjNzZhMmYzZWY0YmM3ZjdjYzU3MjM0MjA4NGQ5OQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdXNoaW9fcyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YzgxOGMzZTM5YjllZTNkMjIzN2I2OTJhYTNiZTg5Mjg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dc9c7f630faa30e05923d9bf1b07901be)
ErrorException という例外クラスがあり set_error_handler で PHP エラーを例外にして送出する方法がよく紹介されていますが、拡張モジュールの1回の関数呼び出しで複数回の PHP エラーが発生した場合にどのような動作になるのか気になったので調べてみました。 拡張モジュールの関数 次のように1回の呼び出して2回の Notice を発生させます。 PHP_FUNCTION(sample_error) { php_printf("EXT fire notice 1\n"); php_error_docref(NULL TSRMLS_CC, E_NOTICE, "notice 1"); php_printf("EXT fire notice 2\n"); php_error_docref(NULL TSRMLS_CC, E_NOTICE, "notice 2");
XSSとはクロスサイトスクリプティングのことで、ユーザの入力値によって動的なページなどを作る際に起こる問題のことです。 具体的には、<script> などのタグが掲示板に書き込まれ、<script>タグがそのまま動作してしまう場合に問題が起こります。 Aさんが掲示板に書き込みました。その書き込んだ内容には悪意あるコード(スクリプト)が含まれているとします。 掲示板には不特定の人がアクセスします。 Aさんが掲示板に書き込んだスクリプトを不特定多数のPC上で実行されます。 JavaScriptではクッキーが読み出せるので、 というコードがあって、「クリック」を押してしまうと、悪意のあるサイトに u というパラメータとしてパスワードなどを保存したクッキーが送信されてしまう可能性があるわけです。 (IMGタグなどを使えばクリックをしないでも読み出しただけで送信されます^^;) ※実際にこれらを行っ
PHPのエラー処理の方法はいくつかあります。 ・チェック用関数を作って自分で処理する。 ・PEAR_Errorを使う。 ・set_error_handlerでエラー処理 今回は set_error_handler について解説します。 set_error_handlerで処理するとかなりエラー処理が楽になります。 <?php function errorHandler ($errno, $errstr, $errfile, $errline){ // $errno は error_reporting の値を参照。 if($errno == 1 || $errno == 2 | $errno == 4){ // エラー通知処理 } } set_error_handler("errorHandler"); ?> PHP標準エラーが発生した場合、この関数が呼ばれるように、という設定が出来るので、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く