热搜:NVER node 开发 php

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

2024-09-13 12:25:02
windows2003服务器,文件有读写权限,但以下php代码执行后无法写入,求救!

<?php
 $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文件又能正确执行并写入数据的,请教为什么上面的执行无法写入。


<?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);
}