当前位置: 编程技术>php
本页文章导读:
▪php中$_REQUEST、$_POST、$_GET的区别和联系小结
1. $_REQUEST php中$_REQUEST可以获取以POST方法和GET方法提交的数据,但是速度比较慢 2. $_GET 用来获取由浏览器通过GET方法提交的数据。GET方法他是通过把参数数据加在提交表单的action属性所指的U.........
▪打造超酷的PHP数据饼图效果实现代码
效果图:源代码: [code] <? //+------------------------+ //| pie3dfun.PHP//公用函数 | //+------------------------+ define("ANGLE_STEP", 5); //定义画椭圆弧时的角度步长 function draw_getdarkcolor($img,$clr) //求$clr对应的.........
▪DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
注:理论上下面的方法可以可以的,但前提是保证你的php配置的没有错误,建议大家用新版的php版本,与discuz程序,相关的服务器相关软件可以到s.下载。这两天论坛经常报错误信息 Warning: .........
[1]php中$_REQUEST、$_POST、$_GET的区别和联系小结
来源: 互联网 发布时间: 2013-11-30
1. $_REQUEST
php中$_REQUEST可以获取以POST方法和GET方法提交的数据,但是速度比较慢
2. $_GET
用来获取由浏览器通过GET方法提交的数据。GET方法他是通过把参数数据加在提交表单的action属性所指的URL中,值和表单内每个字段一一对应,然后在URL中可以看到,但是有如下缺点:
1. 安全性不好,在URL中可以看得到
2. 传送数据量较小,不能大于2KB。
3. $_POST
用来获取由浏览器通过POST方法提交的数据。POST方法他是通过HTTP POST机制,将表单的各个字段放置在HTTP HEADER内一起传送到action属性所指的URL地址中,用户看不到这个过程。他提交的大小一般来说不受限制,但是具体根据服务器的不同,还是略有不同。相对于_GET方式安全性略高
4. $_REQUEST、$_POST、$_GET 的区别和联系
$_REQUEST["参数"]具用$_POST["参数"] $_GET["参数"]的功能,但是$_REQUEST["参数"]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组["参数"]获得
php中$_REQUEST可以获取以POST方法和GET方法提交的数据,但是速度比较慢
2. $_GET
用来获取由浏览器通过GET方法提交的数据。GET方法他是通过把参数数据加在提交表单的action属性所指的URL中,值和表单内每个字段一一对应,然后在URL中可以看到,但是有如下缺点:
1. 安全性不好,在URL中可以看得到
2. 传送数据量较小,不能大于2KB。
3. $_POST
用来获取由浏览器通过POST方法提交的数据。POST方法他是通过HTTP POST机制,将表单的各个字段放置在HTTP HEADER内一起传送到action属性所指的URL地址中,用户看不到这个过程。他提交的大小一般来说不受限制,但是具体根据服务器的不同,还是略有不同。相对于_GET方式安全性略高
4. $_REQUEST、$_POST、$_GET 的区别和联系
$_REQUEST["参数"]具用$_POST["参数"] $_GET["参数"]的功能,但是$_REQUEST["参数"]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组["参数"]获得
[2]打造超酷的PHP数据饼图效果实现代码
来源: 互联网 发布时间: 2013-11-30
效果图:
源代码:
[code]
<?
//+------------------------+
//| pie3dfun.PHP//公用函数 |
//+------------------------+
define("ANGLE_STEP", 5); //定义画椭圆弧时的角度步长
function draw_getdarkcolor($img,$clr) //求$clr对应的暗色
{
$rgb = imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2);
}
function draw_getexy($a, $b, $d) //求角度$d对应的椭圆上的点坐标
{
$d = deg2rad($d);
return array(round($a*Cos($d)), round($b*Sin($d)));
}
function draw_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr) //椭圆弧函数
{
$n = ceil(($ed-$sd)/ANGLE_STEP);
$d = $sd;
list($x0,$y0) = draw_getexy($a,$b,$d);
for($i=0; $i<$n; $i++)
{
$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x, $y) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);
$x0 = $x;
$y0 = $y;
}
}
function draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr) //画扇面
{
$n = ceil(($ed-$sd)/ANGLE_STEP);
$d = $sd;
list($x0,$y0) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);
for($i=0; $i<$n; $i++)
{
$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x, $y) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);
$x0 = $x;
$y0 = $y;
}
imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);
list($x, $y) = draw_getexy($a/2, $b/2, ($d+$sd)/2);
imagefill($img, $x+$ox, $y+$oy, $clr);
}
function draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clr) //3d扇面
{
draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr);
if($sd<180)
{
list($R, $G, $B) = draw_getdarkcolor($img, $clr);
$clr=imagecolorallocate($img, $R, $G, $B);
if($ed>180) $ed = 180;
list($sx, $sy) = draw_getexy($a,$b,$sd);
$sx += $ox;
$sy += $oy;
list($ex, $ey) = draw_getexy($a, $b, $ed);
$ex += $ox;
$ey += $oy;
imageline($img, $sx, $sy, $sx, $sy+$v, $clr);
imageline($img, $ex, $ey, $ex, $ey+$v, $clr);
draw_arc($img, $ox, $oy+$v, $a, $b, $sd, $ed, $clr);
list($sx, $sy) = draw_getexy($a, $b, ($sd+$ed)/2);
$sy += $oy+$v/2;
$sx += $ox;
imagefill($img, $sx, $sy, $clr);
}
}
function draw_getindexcolor($img, $clr) //RBG转索引色
{
$R = ($clr>>16) & 0xff;
$G = ($clr>>8)& 0xff;
$B = ($clr) & 0xff;
return imagecolorallocate($img, $R, $G, $B);
}
// 绘图主函数,并输出图片
// $datLst 为数据数组, $datLst 为标签数组, $datLst 为颜色数组
// 以上三个数组的维数应该相等
function draw_img($datLst,$labLst,$clrLst,$a=250,$b=120,$v=20,$font=10)
{
$ox = 5+$a;
$oy = 5+$b;
$fw = imagefontwidth($font);
$fh = imagefontheight($font);
$n = count($datLst);//数据项个数
$w = 10+$a*2;
$h = 10+$b*2+$v+($fh+2)*$n;
$img = imagecreate($w, $h);
//转RGB为索引色
for($i=0; $i<$n; $i++)
$clrLst[$i] = draw_getindexcolor($img,$clrLst[$i]);
$clrbk = imagecolorallocate($img, 0xff, 0xff, 0xff);
$clrt = imagecolorallocate($img, 0x00, 0x00, 0x00);
//填充背景色
imagefill($img, 0, 0, $clrbk);
//求和
$tot = 0;
for($i=0; $i<$n; $i++)
$tot += $datLst[$i];
$sd = 0;
$ed = 0; 333
$ly = 10+$b*2+$v;
for($i=0; $i<$n; $i++)
{
$sd = $ed;
$ed += $datLst[$i]/$tot*360;
//画圆饼
draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clrLst[$i]); //$sd,$ed,$clrLst[$i]);
//画标签
imagefilledrectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrLst[$i]);
imagerectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrt);
//imagestring($img, $font, 5+2*$fw, $ly, $labLst[$i].":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)", $clrt);
$str = iconv("GB2312", "UTF-8", $labLst[$i]);
ImageTTFText($img, $font, 0, 5+2*$fw, $ly+13, $clrt, "./simsun.ttf", $str.":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)");
$ly += $fh+2;
}
//输出图形
header("Content-type: image/png");
//输出生成的图片
$imgFileName = "../temp/".time().".png";
imagepng($img,$imgFileName);
echo '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
}
$datLst = array(30, 10, 20, 20, 10, 20, 10, 20); //数据
$labLst = array("中国科技大学", "安徽理工大学", "清华大学", "北京大学", "南京大学", "上海大学", "河海大学", "中山大学"); //标签
$clrLst = array(0x99ff00, 0xff6666, 0x0099ff, 0xff99ff, 0xffff99, 0x99ffff, 0xff3333, 0x009999);
//画图
draw_img($datLst,$labLst,$clrLst);
?>
源代码:
[code]
<?
//+------------------------+
//| pie3dfun.PHP//公用函数 |
//+------------------------+
define("ANGLE_STEP", 5); //定义画椭圆弧时的角度步长
function draw_getdarkcolor($img,$clr) //求$clr对应的暗色
{
$rgb = imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2);
}
function draw_getexy($a, $b, $d) //求角度$d对应的椭圆上的点坐标
{
$d = deg2rad($d);
return array(round($a*Cos($d)), round($b*Sin($d)));
}
function draw_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr) //椭圆弧函数
{
$n = ceil(($ed-$sd)/ANGLE_STEP);
$d = $sd;
list($x0,$y0) = draw_getexy($a,$b,$d);
for($i=0; $i<$n; $i++)
{
$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x, $y) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);
$x0 = $x;
$y0 = $y;
}
}
function draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr) //画扇面
{
$n = ceil(($ed-$sd)/ANGLE_STEP);
$d = $sd;
list($x0,$y0) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);
for($i=0; $i<$n; $i++)
{
$d = ($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x, $y) = draw_getexy($a, $b, $d);
imageline($img, $x0+$ox, $y0+$oy, $x+$ox, $y+$oy, $clr);
$x0 = $x;
$y0 = $y;
}
imageline($img, $x0+$ox, $y0+$oy, $ox, $oy, $clr);
list($x, $y) = draw_getexy($a/2, $b/2, ($d+$sd)/2);
imagefill($img, $x+$ox, $y+$oy, $clr);
}
function draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clr) //3d扇面
{
draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr);
if($sd<180)
{
list($R, $G, $B) = draw_getdarkcolor($img, $clr);
$clr=imagecolorallocate($img, $R, $G, $B);
if($ed>180) $ed = 180;
list($sx, $sy) = draw_getexy($a,$b,$sd);
$sx += $ox;
$sy += $oy;
list($ex, $ey) = draw_getexy($a, $b, $ed);
$ex += $ox;
$ey += $oy;
imageline($img, $sx, $sy, $sx, $sy+$v, $clr);
imageline($img, $ex, $ey, $ex, $ey+$v, $clr);
draw_arc($img, $ox, $oy+$v, $a, $b, $sd, $ed, $clr);
list($sx, $sy) = draw_getexy($a, $b, ($sd+$ed)/2);
$sy += $oy+$v/2;
$sx += $ox;
imagefill($img, $sx, $sy, $clr);
}
}
function draw_getindexcolor($img, $clr) //RBG转索引色
{
$R = ($clr>>16) & 0xff;
$G = ($clr>>8)& 0xff;
$B = ($clr) & 0xff;
return imagecolorallocate($img, $R, $G, $B);
}
// 绘图主函数,并输出图片
// $datLst 为数据数组, $datLst 为标签数组, $datLst 为颜色数组
// 以上三个数组的维数应该相等
function draw_img($datLst,$labLst,$clrLst,$a=250,$b=120,$v=20,$font=10)
{
$ox = 5+$a;
$oy = 5+$b;
$fw = imagefontwidth($font);
$fh = imagefontheight($font);
$n = count($datLst);//数据项个数
$w = 10+$a*2;
$h = 10+$b*2+$v+($fh+2)*$n;
$img = imagecreate($w, $h);
//转RGB为索引色
for($i=0; $i<$n; $i++)
$clrLst[$i] = draw_getindexcolor($img,$clrLst[$i]);
$clrbk = imagecolorallocate($img, 0xff, 0xff, 0xff);
$clrt = imagecolorallocate($img, 0x00, 0x00, 0x00);
//填充背景色
imagefill($img, 0, 0, $clrbk);
//求和
$tot = 0;
for($i=0; $i<$n; $i++)
$tot += $datLst[$i];
$sd = 0;
$ed = 0; 333
$ly = 10+$b*2+$v;
for($i=0; $i<$n; $i++)
{
$sd = $ed;
$ed += $datLst[$i]/$tot*360;
//画圆饼
draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clrLst[$i]); //$sd,$ed,$clrLst[$i]);
//画标签
imagefilledrectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrLst[$i]);
imagerectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrt);
//imagestring($img, $font, 5+2*$fw, $ly, $labLst[$i].":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)", $clrt);
$str = iconv("GB2312", "UTF-8", $labLst[$i]);
ImageTTFText($img, $font, 0, 5+2*$fw, $ly+13, $clrt, "./simsun.ttf", $str.":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)");
$ly += $fh+2;
}
//输出图形
header("Content-type: image/png");
//输出生成的图片
$imgFileName = "../temp/".time().".png";
imagepng($img,$imgFileName);
echo '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
}
$datLst = array(30, 10, 20, 20, 10, 20, 10, 20); //数据
$labLst = array("中国科技大学", "安徽理工大学", "清华大学", "北京大学", "南京大学", "上海大学", "河海大学", "中山大学"); //标签
$clrLst = array(0x99ff00, 0xff6666, 0x0099ff, 0xff99ff, 0xffff99, 0x99ffff, 0xff3333, 0x009999);
//画图
draw_img($datLst,$labLst,$clrLst);
?>
[3]DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
来源: 互联网 发布时间: 2013-11-30
注:
理论上下面的方法可以可以的,但前提是保证你的php配置的没有错误,建议大家用新版的php版本,与discuz程序,相关的服务器相关软件可以到s.下载。
这两天论坛经常报错误信息
Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\host\aydsw\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='.;C:\php5\pear') in
E:\host\aydsw\index.php on line 12
我在网上查了一下,应该是权限问退,不知道论坛是否能用得上。
解决方法一:
其实这个问题不用说的那么复杂。导致这个问题是因为目录权限问题所致。
大家都知道通常在2003中的权限设置比较混乱。
形象点表达的解决方法是这样的:
比如:你的论坛放在WEBROOT的BBS目录下,如果你仅仅赋予了BBS目录INTERNET来
宾用户(或者你指定的用户)的访问权限,而BBS的上级目录webroot没有
INTERNET来宾用户(或者你指定的用户)访问权限就有上述问题出现。
只要赋予WEBROOT这个目录(就是论坛目录的上级目录)以INTERNET来宾权限(或
你指定的用户)问题即可解决!
原因是:官方把所有 php 文件里的 ./include/,如果改为 include/即可解决,
但总不能一个个替换吧,个人解决的办法,就是建个父目录了。
解决方法二:
今个服务器重装系统了
配置了php mysql 是win下的 可是访问dz(Discuz)论坛的时候出现如下错误:
Warning: require_once() [function.require-once]: Unable to access
./include/common.inc.php in E:\mysite\ceshi\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\mysite\ceshi\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='d:/php5/includes') in
E:\mysite\ceshi\index.php on line 12
此网站没有任何问题,提示的是文件没有找到
弄了半天终于解决了
问题是:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)
其它参考:
把论坛转移到了自己的服务器上,服务器是win2003+iis+php+mysql,但访问论坛总是提示以下信息:
Warning: require_once() [function.require-once]: Unable to access ./include/common.inc.php in E:\im286\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-once]: failed to open stream: No such file or directory in E:\im286\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required './include/common.inc.php' (include_path='d:/php5/includes') in E:\im286\index.php on line 12
方法一:在网上也google baidu了一下 出现这个问题的还真不少,修改./include/为include/问题解决,但rewrite加载总是不成功,倒腾了半天才发现原来是权限问题,给设置了veryone权限,一切就ok了,最后提醒大家,iis要启用父路径。
方法二:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)
方法三:
是权限问题,在上级目录加了everyone读权限,仅针对上级目录,但非常久,等不及,停掉。换了个目录为e:\im286\bbs,给上级目录everyone读权限,访问,提示:
No input file specified.
方法四:
搜 索一下,1种说是把php.ini中的doc_root ="注释掉,我看了下本身就是注释掉的,不是这个问题。第2种是说应用池的问题。IIS新建了一个应用池,给这个站点用。刷新,网站可以访问了。再试一 下,是不是和上级目录权限有关,把上级目录everyone读权限去掉,再刷新,又提示和上面的错误一样了,确定与此有关了,然后再加上,问题解决。
方法五:
我这也出现这种问题,刚刚找了半天没结果,试着改(./include/common.inc.php),结果成功了,有问题的不妨试试!
修改 common.inc.php里所有 './ 为 '/ (就是把中间的点去掉)
方法六:终极解决方法
这样的问题如果别的程序正常,但只有一些php系统有问题,这里以phpmyadmin为例,如当前目录是d:\werroot\phpmyadmin只要将在phpmyadmin目录里面再创建一个目录web,然后iis中定位路径为d:\werroot\phpmyadmin\web就可解决问题。这个应该是程序中用了./的问题。
理论上下面的方法可以可以的,但前提是保证你的php配置的没有错误,建议大家用新版的php版本,与discuz程序,相关的服务器相关软件可以到s.下载。
这两天论坛经常报错误信息
Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\host\aydsw\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='.;C:\php5\pear') in
E:\host\aydsw\index.php on line 12
我在网上查了一下,应该是权限问退,不知道论坛是否能用得上。
解决方法一:
其实这个问题不用说的那么复杂。导致这个问题是因为目录权限问题所致。
大家都知道通常在2003中的权限设置比较混乱。
形象点表达的解决方法是这样的:
比如:你的论坛放在WEBROOT的BBS目录下,如果你仅仅赋予了BBS目录INTERNET来
宾用户(或者你指定的用户)的访问权限,而BBS的上级目录webroot没有
INTERNET来宾用户(或者你指定的用户)访问权限就有上述问题出现。
只要赋予WEBROOT这个目录(就是论坛目录的上级目录)以INTERNET来宾权限(或
你指定的用户)问题即可解决!
原因是:官方把所有 php 文件里的 ./include/,如果改为 include/即可解决,
但总不能一个个替换吧,个人解决的办法,就是建个父目录了。
解决方法二:
今个服务器重装系统了
配置了php mysql 是win下的 可是访问dz(Discuz)论坛的时候出现如下错误:
Warning: require_once() [function.require-once]: Unable to access
./include/common.inc.php in E:\mysite\ceshi\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\mysite\ceshi\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='d:/php5/includes') in
E:\mysite\ceshi\index.php on line 12
此网站没有任何问题,提示的是文件没有找到
弄了半天终于解决了
问题是:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)
其它参考:
把论坛转移到了自己的服务器上,服务器是win2003+iis+php+mysql,但访问论坛总是提示以下信息:
Warning: require_once() [function.require-once]: Unable to access ./include/common.inc.php in E:\im286\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-once]: failed to open stream: No such file or directory in E:\im286\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required './include/common.inc.php' (include_path='d:/php5/includes') in E:\im286\index.php on line 12
方法一:在网上也google baidu了一下 出现这个问题的还真不少,修改./include/为include/问题解决,但rewrite加载总是不成功,倒腾了半天才发现原来是权限问题,给设置了veryone权限,一切就ok了,最后提醒大家,iis要启用父路径。
方法二:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)
方法三:
是权限问题,在上级目录加了everyone读权限,仅针对上级目录,但非常久,等不及,停掉。换了个目录为e:\im286\bbs,给上级目录everyone读权限,访问,提示:
No input file specified.
方法四:
搜 索一下,1种说是把php.ini中的doc_root ="注释掉,我看了下本身就是注释掉的,不是这个问题。第2种是说应用池的问题。IIS新建了一个应用池,给这个站点用。刷新,网站可以访问了。再试一 下,是不是和上级目录权限有关,把上级目录everyone读权限去掉,再刷新,又提示和上面的错误一样了,确定与此有关了,然后再加上,问题解决。
方法五:
我这也出现这种问题,刚刚找了半天没结果,试着改(./include/common.inc.php),结果成功了,有问题的不妨试试!
修改 common.inc.php里所有 './ 为 '/ (就是把中间的点去掉)
方法六:终极解决方法
这样的问题如果别的程序正常,但只有一些php系统有问题,这里以phpmyadmin为例,如当前目录是d:\werroot\phpmyadmin只要将在phpmyadmin目录里面再创建一个目录web,然后iis中定位路径为d:\werroot\phpmyadmin\web就可解决问题。这个应该是程序中用了./的问题。
最新技术文章: