我必须提到之前已经问过这个问题并且有人回答“您仍然可以使用PHP文件添加配置设置,而不是将其发布到公共场所(文件夹)。”但我不太清楚这是什么意思所以我问我是否无法访问php.ini我可以把这个代码放在一个php文件中并将其包含在其他文件中或者有一个正确的方法此
<?php
ini_set("error_reporting",E_ALL);
ini_set("log_error",1);
ini_set("error_log","error.log");
?>
答案 0 :(得分:2)
<?php
error_reporting(E_ALL); //sets logging filter to log all errors
//error_reporting(E_ALL & ~E_NOTICE); //sets logging filter to all except NOTICE, useful when your coding style is rather hacky (like mine)
ini_set('display_errors',1); //displays error output onpage
这应该足够了。
请注意,如果发生错误,将生成输出标头! 除非您使用输出缓冲来捕获可能的错误并阻止在不需要的时刻发送标头,否则您无法在此之后设置Cookie。
修改强>
如果您有或想要防止已经发送的标题引起的问题,您可以缓冲输出并在页面末尾回显输出。
有问题的代码:
<?php
error_reporting(E_ALL); //sets logging filter to log all errors
ini_set('display_errors',1); //displays error output onpage
if($a/*is not set*/){ //echoes to page: undefined variable in /path/index.php at line linenumber
//code...
}
setcookie('testcookie','testvalue', time+3600); //error headers have already been sent so this won't work
带修复的代码
<?php
ob_start();
error_reporting(E_ALL); //sets logging filter to log all errors
ini_set('display_errors',1); //displays error output onpage
if($a/*is not set*/){ //echoes to buffer: undefined variable in /path/index.php at line linenumber
//code...
}
setcookie('testcookie','testvalue', time+3600); //Works!
//Rest of page
echo ob_get_clean(); //this is the last line (add <?php if it's not already in a php tag)