<?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<2500){
 fputs($fp,$line);
 for ($i=0;$i<$num;$i++){
 fputs($fp,$old[$i]);
 }}else{
 fputs($fp,$line);
 for($i=0;$i<2499;$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不可写入";
   }
?>

解决方案 »

  1.   

    $ipfile="./user.txt";
    另一个是
    $filename = "user.txt";怀疑已经写进去了,只是写到别的位置上去了
      

  2.   

    如果是 IIS 那么需要在管理器中勾选“写入”
    如果不是,则应检查一般用户是否有写权限相关的文件夹还需勾选“高级”中的“允许存档”
      

  3.   


    这台服务器上可以执行删除,是不是说明已有读写权限?另外如果说没读写权限,发的第二段代码可以写入的啊,就是第一段代码写入不了,下面这段删除代码也能正确执行的:if($del=="1"){//删除
     $old=file("$ipfile");
     $num=count($old);
     $fp=fopen("$ipfile","w");
      $no=$num-1;
      
     for ($i=0;$i<$num;$i++){
     list($usre,$ip,$time)=explode("|",$old[$i]);
     if($txtzzip!=$jilu){ fputs($fp,$old[$i]); }
     }
     fclose($fp);
    }