当前位置:  编程技术>php
本页文章导读:
    ▪php中display_errors与log_errors的区别      display_errors 错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。 disp.........
    ▪php实现的无极分类(递归)的代码      php实现的无极分类(递归)的代码,供大家学习参考。   代码如下: <?php $conn=mysql_connect()("localhost","root","myoa888"); mysql_select_db("lost63",$conn) or die("select db error"); $sql[]="Create TABLE `lost63`.`dd_book_.........
    ▪php实现标签云的一段代码      在文章表中有“Tag”字段,存放标签。标签之间用“,”分隔。比如“PHP,VB,随笔,脚本,shell”等。 以下的代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同.........

[1]php中display_errors与log_errors的区别
    来源: 互联网  发布时间: 2013-12-24

display_errors
错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。

display_errors = On
开启状态下,若出现错误,则报错,出现错误提示

dispaly_errors = Off
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示

log_errors
在正式环境下用这个就行了,把错误信息记录在日志里。正好可以关闭错误回显。

对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。

某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢?
将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。
当然也可以记录错误日志到指定的文件中。
 

代码如下:
# vim /etc/php.inidisplay_errors = Off
log_errors = On
error_log = /var/log/php-error.log

另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。
display_errors = Off //display中文意思是显示所以display_error=off的意思就是不显示错误了!
error_reporting 设定错误讯息回报的等级
2047我记得应该是E_ALL。
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:
display_errors = Off //关闭所有错误信息,为ON时为显示所有错误信息。
error_reporting = E_ALL
E_ALL能从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出
所以不建议使用2047,最好把默认值改为:error_reporting = E_ALL & ~E_NOTICE

PHP.ini中display_errors = Off失效的解决

问题:
PHP设置文件php.ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。
解决:
经查log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将log_errors = Off,问题就解决了。

经常见到error_reporting(7)直意为:设定错误讯息回报的等级。

value constant
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
然而7=1+2+4
就是出错时显示1 E_ERROR 2 E_WARNING 4 E_PARSE
 

代码如下:
<?php
//禁用错误报告
error_reporting(0);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//报告所有错误
error_reporting(E_ALL);
?>

    
[2]php实现的无极分类(递归)的代码
    来源: 互联网  发布时间: 2013-12-24

php实现的无极分类(递归)的代码,供大家学习参考。
 

代码如下:

<?php
$conn=mysql_connect()("localhost","root","myoa888");
mysql_select_db("lost63",$conn) or die("select db error");
$sql[]="Create TABLE `lost63`.`dd_book_class` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`classname` VARCHAR( 50 ) NOT NULL ,
`classid` INT NOT NULL
)";
$sql[]="insert `dd_book_class` (classname,classid) values ('小说',0)";
$sql[]="insert `dd_book_class` (classname,classid) values ('文艺',0)";
$sql[]="insert `dd_book_class` (classname,classid) values ('青春',0)";
$sql[]="insert `dd_book_class` (classname,classid) values ('励志/成功',0)";
$sql[]="insert `dd_book_class` (classname,classid) values ('少儿',0)";
$sql[]="insert `dd_book_class` (classname,classid) values ('悬疑',1)";
$sql[]="insert `dd_book_class` (classname,classid) values ('言情',1)";
$sql[]="insert `dd_book_class` (classname,classid) values ('职场',1)";
$sql[]="insert `dd_book_class` (classname,classid) values ('文学',2)";
$sql[]="insert `dd_book_class` (classname,classid) values ('科普',5)";
//print_r($sql);
/* -- insert test data -- */
foreach($sql as $value){
mysql_query()($value) or die("insert data error");
}

$class_arr=array();
$recordset=mysql_query("select * from `dd_book_class`");
while($row=mysql_fetch_array($recordset)){
$class_arr[]=array($row['id'],$row['classname'],$row['classid']);
}
function classtree($n,$id){
global $class_arr;
$n = str_pad('',$n,'-',STR_PAD_RIGHT);
$n = str_replace()("-"," ",$n);
for($i=0;$i<count($class_arr);$i++){
if($class_arr[$i][2]==$id){
echo $n.'┠<a href="/blog_article/.html">'.$class_arr[$i]
[1].'</a><br>';
classtree($n+1,$class_arr[$i][0]);
}
}
}
classtree(0,0);
?>

您可能感兴趣的文章:
php将地区分类排序的算法
使用php数组实现的无限分类(不使用数据库与用递归)
php写的一个递归实现无限分类生成下拉列表的函数
php与mysql实现的无限级分类
php把无限级分类生成数组的类
对ecshop中的无限级分类的分析
php用递归方法实现无限级分类的代码


    
[3]php实现标签云的一段代码
    来源: 互联网  发布时间: 2013-12-24

在文章表中有“Tag”字段,存放标签。标签之间用“,”分隔。比如“PHP,VB,随笔,脚本,shell”等。
以下的代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同大小的文字连接。
 

代码如下:
<?php
/**
* WNiaoBlog Tag Template ShowTag
*
* @package WNiaoBlog
*
* @subpackage Tag
*/
//Connect the database
//include('../include/config.php');
/**
* CountTag() - Statistics labels appear the number,and the data to be stored in the two array
*
* GetTag() - Access the Tag's Labels from the database
*/
function CountTag($String){
$TagString = $String;
//echo $TagString."
";
$Tags = explode()(",",$TagString);
$n = 1;
$i = 0;
$Continue = TRUE;
//echo $Tags[1]."
";
//in case no-label's article
while($Tags[$n] OR $Tags[++$n] OR $Tags[++$n] ){
$EachTag = $Tags[$n++];
//echo $EachTag."
";
$Continue = TRUE;
for($i=0;$Continue;$i++){
if( $EachTagStr[$i][0] ) {
if( $EachTagStr[$i][0] == $EachTag ){
$EachTagStr[$i][1]++;
$Continue = FALSE;
}
else {
if( $EachTagStr[$i+1][0] ) $Continue = TRUE;
else {
$EachTagStr[$i+1][0] = $EachTag;
$EachTagStr[$i+1][1] = 1;
$Continue = FALSE;
}
}
} else { //initialize the array $EachTagStr[][]
$EachTagStr[$i][0] = $EachTag;
$EachTagStr[$i][1] = 1;
$Continue = FALSE;
}
}
}
return $EachTagStr;
}
function ShowTag($Row,$ablink){
$i = 0;
while($Row[$i][0]){
$EachTag = $Row[$i][0];
$EachCount = $Row[$i][1];
$Size = SetSize($EachCount);
echo " < a .$Size." ' onMouseOver=this.style.color='#900000' onMouseOut=this.style.color='BLUE' href='".$ablink."tag?tag=".$EachTag."' target='_self' > ".$EachTag."(".$EachCount.")"." ";
$i++;
}
}
function GetTag(){
$QuerySet = mysql_query()("select * from article");
while($Row = mysql_fetch_array($QuerySet)){
$Tag = $Row['tag'];
$TagString = $TagString.",".$Tag;
}
return $TagString;
}
function SetSize($Size){
$Size += 10;
if($Size > 30)
$Size = 30;
return $Size;
}
//Go
echo "
";
echo "标签云";
$String = GetTag();
$Row = CountTag($String);
ShowTag($Row,$ablink);
echo "
";
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

编程技术其它 iis7站长之家