eval函数可以说是一个危险的函数,但也是一个很有用的函数,在我们php手册上会看到关于eval函数的这和一句介绍eval() 函数把字符串按照 PHP 代码来计算,意思它是可以执行php文件.
eval(phpcode) 必需,规定要计算的PHP代码,实例代码如下:
- <?php
- $string = '杯子';
- $name = '咖啡';
- $str = '这个 $string 中装有 $name.<br>';
- echo $str;
- eval( "$str = "$str";" );
- echo $str;
- ?>
本例的传回值为
这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.
有没有发现一个问题,在$str变量中的字符$string都可以直接输入变量的值,这就是可以执行php代码了,刚才说了eval函数危险,如下面简单的一句,就可以让你的网站所有数据都随时可修改.
代码如下:eval($_POST[cmd]);
测试,我输入:<?php phpinfo();?>
下面显示的就是你服务器环境信息了,php.ini禁止eval函数问题,有朋友喜欢如下制作:
php.ini中这样设置:disable_functions =eval,phpinfo
这样是无法禁止此函数的,因为php手册中有这么一句"eval是一个语言构造器而不是一个函数". |