pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<small id='sJIgK'></small><noframes id='sJIgK'>

        <i id='sJIgK'><tr id='sJIgK'><dt id='sJIgK'><q id='sJIgK'><span id='sJIgK'><b id='sJIgK'><form id='sJIgK'><ins id='sJIgK'></ins><ul id='sJIgK'></ul><sub id='sJIgK'></sub></form><legend id='sJIgK'></legend><bdo id='sJIgK'><pre id='sJIgK'><center id='sJIgK'></center></pre></bdo></b><th id='sJIgK'></th></span></q></dt></tr></i><div class="hlx9xh7" id='sJIgK'><tfoot id='sJIgK'></tfoot><dl id='sJIgK'><fieldset id='sJIgK'></fieldset></dl></div>
        • <bdo id='sJIgK'></bdo><ul id='sJIgK'></ul>

      1. <legend id='sJIgK'><style id='sJIgK'><dir id='sJIgK'><q id='sJIgK'></q></dir></style></legend>

        <tfoot id='sJIgK'></tfoot>

        PHP 自定義錯誤頁面

        PHP custom error page(PHP 自定義錯誤頁面)

        <small id='i34fH'></small><noframes id='i34fH'>

      2. <tfoot id='i34fH'></tfoot>
          <tbody id='i34fH'></tbody>

            <legend id='i34fH'><style id='i34fH'><dir id='i34fH'><q id='i34fH'></q></dir></style></legend>
            • <bdo id='i34fH'></bdo><ul id='i34fH'></ul>
                • <i id='i34fH'><tr id='i34fH'><dt id='i34fH'><q id='i34fH'><span id='i34fH'><b id='i34fH'><form id='i34fH'><ins id='i34fH'></ins><ul id='i34fH'></ul><sub id='i34fH'></sub></form><legend id='i34fH'></legend><bdo id='i34fH'><pre id='i34fH'><center id='i34fH'></center></pre></bdo></b><th id='i34fH'></th></span></q></dt></tr></i><div class="vhjlhvn" id='i34fH'><tfoot id='i34fH'></tfoot><dl id='i34fH'><fieldset id='i34fH'></fieldset></dl></div>
                  本文介紹了PHP 自定義錯誤頁面的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  每個人都說在活動站點中允許顯示錯誤"是不好的(由于一些安全問題).

                  Everyone says that "Enabling errors to be shown" in an active site is bad (due to some security issues).

                  現在,我們必須考慮兩種情況:

                  Now, we have to consider 2 cases:

                  1. 網站處于調試模式
                  2. 該站點未處于調試模式

                  現在,對于案例 #1:

                  我們想查看錯誤.怎么樣?

                  We want to see the errors. How?

                  ini_set('error_reporting', E_ALL);
                  ini_set('display_errors', 1);
                  

                  沒有比這更簡單的了.我們還可以為除 Parse 和 Fatal 之外的所有錯誤自定義錯誤處理程序.

                  Nothing more simple. Also we can customize an error handler for all errors except Parse and Fatal.

                  相反,如果情況是 #2:

                  我們希望能夠停用這些消息:

                  We would like to be able to deactivate the messages:

                  ini_set('error_reporting', 0);
                  ini_set('display_errors', 0);
                  

                  沒關系.但是如何向用戶顯示一條友好的消息,例如嘿,伙計,有些事情真的很糟糕.我不向您保證我們正在努力解決它,因為我們很懶惰.".您應該再次啟用錯誤并只使用函數 set_error_handler() 并希望不會發生解析或致命錯誤.但我的第一個問題是:

                  And it's ok. But what about showing users a friendly message such as "Hei man, something is really f**ked up. I don't assure you we are working to fix it, since we are very lazy.". You should enable errors again and just use the function set_error_handler() and hope that no parse or fatal errors occur. But my first question is:

                  問題 1:是否可以避免錯誤報告并在出現問題時加載自定義離線頁面?我的意思是,是否有可能有 ini_set('error_reporting', 0);ini_set('display_errors', 0); 并且仍然能夠告訴 PHP 加載自定義錯誤頁面?

                  Question 1: Is that possible to avoid error reporting and have a custom offline page that is loaded when something goes wrong? I mean, is it possible to have ini_set('error_reporting', 0); and ini_set('display_errors', 0); and still be able to tell PHP to load a custom Error page?

                  現在是另一個:

                  問題 2:我開發了一個類,利用 set_error_handler() 的強大功能將發生的錯誤記錄到數據庫中.通過這種方式,我可以跟蹤黑客嘗試和其他很酷的東西.(是的,我總是確定數據庫是可訪問的,因為如果我們無法連接到數據庫,我的應用程序就會關閉).這值得嗎?

                  Question 2: I developed a class that with the power of set_error_handler() logs errors occurred into the database. In this way I can keep track of hack attempts and other cool stuff. (And yes, i'm always sure the DB is accessible since my application shuts down if we cannot connect to the DB). Is this worth something?

                  推薦答案

                  前段時間我創建了一個小系統,當發生致命錯誤/拋出未捕獲的異常時,它會將您重定向到錯誤頁面.有可能假設每個請求都由一個文件處理并以該文件結尾,因此通過到達該文件的末尾,我確定一切正常.在這種情況下,我設置了在錯誤頁面上重定向的函數并將其注冊為關閉函數 - 因此它將在所有請求結束時調用.現在在這個函數中,我檢查干凈關閉的條件,如果滿足,我什么都不做,輸出被刷新到瀏覽器,否則緩沖區被清除,只發送重定向到錯誤頁面的標頭.

                  Some time ago I created small system that redirects you to error page when fatal error occurs / uncaught exception was thrown. It was possible with assumption, that every request is handled by one file and ends in this file, so by reaching end of this file I'm sure that everything went OK. With this condition I've set up function to redirect on error page and registered it as shutdown function - so it will be called at the end of all requests. Now in this function I check conditions for clean shutdown and if hey are met, I do nothing and output is flushed to the browser, otherwise buffer is cleaned and only header redirecting to error page is sent.

                  此代碼的簡化版本:

                  <?php
                  function redirect_on_error(){
                      if(!defined('EVERYTHING_WENT_OK')){
                          ob_end_clean();
                          header('Location: error.html');
                      }
                  }
                  
                  register_shutdown_function('redirect_on_error');
                  
                  ob_start();
                  
                  include 'some/working/code.php';
                  
                  echo "Now I'm going to call undefined function or throw something bad";
                  
                  undefined_function();
                  throw new Exception('In case undefined function is defined.');    
                  
                  define('EVERYTHING_WENT_OK', TRUE);
                  exit;
                  

                  這篇關于PHP 自定義錯誤頁面的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                  Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                  PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                  mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                  Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                  MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)
                • <legend id='d6rgt'><style id='d6rgt'><dir id='d6rgt'><q id='d6rgt'></q></dir></style></legend>

                      <tbody id='d6rgt'></tbody>

                      1. <i id='d6rgt'><tr id='d6rgt'><dt id='d6rgt'><q id='d6rgt'><span id='d6rgt'><b id='d6rgt'><form id='d6rgt'><ins id='d6rgt'></ins><ul id='d6rgt'></ul><sub id='d6rgt'></sub></form><legend id='d6rgt'></legend><bdo id='d6rgt'><pre id='d6rgt'><center id='d6rgt'></center></pre></bdo></b><th id='d6rgt'></th></span></q></dt></tr></i><div class="7bvx5lv" id='d6rgt'><tfoot id='d6rgt'></tfoot><dl id='d6rgt'><fieldset id='d6rgt'></fieldset></dl></div>
                        • <bdo id='d6rgt'></bdo><ul id='d6rgt'></ul>
                          1. <tfoot id='d6rgt'></tfoot>

                            <small id='d6rgt'></small><noframes id='d6rgt'>

                            主站蜘蛛池模板: 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 光纤测温-荧光光纤测温系统-福州华光天锐光电科技有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 安徽华耐泵阀有限公司-官方网站| 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 移动机器人产业联盟官网| 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL |