
PHP计数器问题
<html><head><title>文本计数器</title></head><body><?$conterFile="counter.txt";functiondisp...
<html>
<head>
<title>文本计数器</title>
</head>
<body>
<?
$conterFile="counter.txt";
function disp($counterFile)
{
$fp =fopen($counterFile,"rw");
$num =fgets($fp,6);
fcolse($fp);
$num+=1;
print "您是本站的第"."$num"."位贵客";
exec("rm -rf $counterFile");
exec("echo $num > $counterFile");
}
if(!file_exists($counterFile))
{
exec("echo 0 > $counterFile");
}
disp($counterFile);
?>
</body>
</html>
报错
Warning: exec() has been disabled for security reasons in E:\PHPnow\htdocs\4-12.php on line 20
Warning: fgets(): supplied argument is not a valid stream resource in E:\PHPnow\htdocs\4-12.php on line 11
Fatal error: Call to undefined function fcolse() in E:\PHPnow\htdocs\4-12.php on line 12 展开
<head>
<title>文本计数器</title>
</head>
<body>
<?
$conterFile="counter.txt";
function disp($counterFile)
{
$fp =fopen($counterFile,"rw");
$num =fgets($fp,6);
fcolse($fp);
$num+=1;
print "您是本站的第"."$num"."位贵客";
exec("rm -rf $counterFile");
exec("echo $num > $counterFile");
}
if(!file_exists($counterFile))
{
exec("echo 0 > $counterFile");
}
disp($counterFile);
?>
</body>
</html>
报错
Warning: exec() has been disabled for security reasons in E:\PHPnow\htdocs\4-12.php on line 20
Warning: fgets(): supplied argument is not a valid stream resource in E:\PHPnow\htdocs\4-12.php on line 11
Fatal error: Call to undefined function fcolse() in E:\PHPnow\htdocs\4-12.php on line 12 展开
展开全部
首先你第一句的赋值都已经写错了:
$conterFile="counter.txt";
更正为
$counterFile="counter.txt";
你改好这一句,就不会再提示那些出错提示,基本就OK了!
至于exec()来执行LINUX的命令我在公司测试没LINUX,不过和win环境也差不多,只是相关语法有些不同,还有注意LINUX下的权限!回家我再后我的UBUNTU来测试一下!欢迎加群学习,QQ群4790006
下面给出我在win下测试成功的例子
<html>
<head>
<title>文本计数器</title>
</head>
<body>
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$counterFile="$DOCUMENT_ROOT/study/counter.txt"; //注意实际路径
//echo $counterFile;
function disp($counterFile)
{
$fp =fopen($counterFile,"rw");
$num =fgets($fp,6);
fclose($fp);
$num+=1;
echo $num;
print "您是本站的第"."$num"."位贵客";
unlink("$counterFile"); //exec("del $counterFile")执行不成功
exec("echo $num >> $counterFile"); //创建并写值
}
if(!file_exists($counterFile))
{
exec("echo 0 >> $counterFile");
}
disp($counterFile);
?>
</body>
</html>
$conterFile="counter.txt";
更正为
$counterFile="counter.txt";
你改好这一句,就不会再提示那些出错提示,基本就OK了!
至于exec()来执行LINUX的命令我在公司测试没LINUX,不过和win环境也差不多,只是相关语法有些不同,还有注意LINUX下的权限!回家我再后我的UBUNTU来测试一下!欢迎加群学习,QQ群4790006
下面给出我在win下测试成功的例子
<html>
<head>
<title>文本计数器</title>
</head>
<body>
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$counterFile="$DOCUMENT_ROOT/study/counter.txt"; //注意实际路径
//echo $counterFile;
function disp($counterFile)
{
$fp =fopen($counterFile,"rw");
$num =fgets($fp,6);
fclose($fp);
$num+=1;
echo $num;
print "您是本站的第"."$num"."位贵客";
unlink("$counterFile"); //exec("del $counterFile")执行不成功
exec("echo $num >> $counterFile"); //创建并写值
}
if(!file_exists($counterFile))
{
exec("echo 0 >> $counterFile");
}
disp($counterFile);
?>
</body>
</html>
展开全部
也不是很明白,因为我的是WINDOWS环境,不能对你的代码作测试,所以只作个参考吧。
第一个:刚看了手册,如果你开启了安全模式,手册时有这么一段话,“注意: 在打开了安全模式时,只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分”
第二个:因为line 20没有执行成功,当然,没有$counterFile文件存在,也就会有这个警告。建议line 10 ,line 11 改为
if ($fp = fopen( $counterFile, 'rw' ))$num = fgets( $fp, 6 );
第三个:也是第一个的连锁反应。
另外,学PHP从PHP5开发学起吧
第一个:刚看了手册,如果你开启了安全模式,手册时有这么一段话,“注意: 在打开了安全模式时,只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分”
第二个:因为line 20没有执行成功,当然,没有$counterFile文件存在,也就会有这个警告。建议line 10 ,line 11 改为
if ($fp = fopen( $counterFile, 'rw' ))$num = fgets( $fp, 6 );
第三个:也是第一个的连锁反应。
另外,学PHP从PHP5开发学起吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询