windows2003服务器,文件有读写权限,但以下php代码执行后无法写入,求救!

原创
2016-06-23 14:11:05 955浏览

$ipfile="./user.txt";

if (get_magic_quotes_gpc()) {
if (!$fp = fopen($ipfile, "a+")) {
// die("创建在线列表文件失败, 请检查是否有权限.");
}
$time=time();
$line = $username."|".$REMOTE_ADDR."|".$time."\r\n";
$old=file($ipfile);
$num=count($old);
$fp=fopen($ipfile, "w");
flock($fp,2);
if($num fputs($fp,$line);
for ($i=0;$i fputs($fp,$old[$i]);
}}else{
fputs($fp,$line);
for($i=0;$i fputs($fp,$old[$i]);
}}
fclose($fp);
}
?>

================执行以上在该服务器上无法写入,但 在其它服务器空间可以正确运行写入,不知是不是服务器中php.ini哪项没有打开造成的?=================

同样执行以下文件测试该服务器有没有写入权限,以下php文件又能正确执行并写入数据的,请教为什么上面的执行无法写入。


$filename = "user.txt";
$contents = "我是张斌";
if(is_writable($filename)){
if(($handle = fopen($filename,"a") )== false){
echo "写入文件 $filename 失败";
exit();
}
if(fwrite($handle,$contents) == false){
echo "写入文件$filename失败";
exit();
}
echo "写入文件 $filename 成功";

fclose($handle);
}else{
echo "文件$filename不可写入";
}
?>


回复讨论(解决方案)

$ipfile="./user.txt";
另一个是
$filename = "user.txt";

怀疑已经写进去了,只是写到别的位置上去了

如果是 IIS 那么需要在管理器中勾选“写入”
如果不是,则应检查一般用户是否有写权限

相关的文件夹还需勾选“高级”中的“允许存档”

不是这原因,同样的代码,在另一台服务器空间中正确运行,这台服务器就不行,应该是服务器哪个设置有问题,读写权限已开了

如果是 IIS 那么需要在管理器中勾选“写入”
如果不是,则应检查一般用户是否有写权限

相关的文件夹还需勾选“高级”中的“允许存档”

这台服务器上可以执行删除,是不是说明已有读写权限?另外如果说没读写权限,发的 第二段代码可以写入的啊,就是第一段代码写入不了,下面这段删除代码也能正确执行的:

if($del=="1"){//删除
$old=file("$ipfile");
$num=count($old);
$fp=fopen("$ipfile","w");
$no=$num-1;

for ($i=0;$i list($usre,$ip,$time)=explode("|",$old[$i]);
if($txtzzip!=$jilu){ fputs($fp,$old[$i]); }
}
fclose($fp);
}

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。