2013-02-06 3 views
0

+ RW 권한으로 dir에있는 파일을 작성하지 않습니다PHP 나는 간단한 .PHP 파일이

<?php 
$archivo = $_POST["name"]; 
$alineamiento = $_POST["alineamiento"]; 
$fp=fopen("$archivo","w"); 
fwrite($fp,$alineamiento); 
fclose($fp); 
?> 

이 잘 작동하지만을 나는 하위 폴더에있는 파일 (sub_mat)을 작성해야하는 경우 :

<?php 
$archivo = $_POST["name"]; 
$alineamiento = $_POST["alineamiento"]; 
$fp=fopen("/var/www/SChip/sub_mat/$archivo","w"); 
fwrite($fp,$alineamiento); 
fclose($fp); 
?> 

이것은 작동하지 않습니다. 나는 sub_mat 폴더에 rw 권한이

<?php 
$archivo = $_POST["name"]; 
$alineamiento = $_POST["alineamiento"]; 
$fp=fopen("sub_mat/$archivo","w"); 
fwrite($fp,$alineamiento); 
fclose($fp); 
?> 

: 나는 또한 같은 절대 경로 디렉토리없이하려고합니다. Chrome, FF 및 Opera에서이 기능을 시험해 보았지만 작동하지 않습니다. 나는 바보가되어야한다는 것을 알고 있지만 문제를 이해할 수는 없다.

편집 나는 system("mv ...")을 추가하고 값을 초기화 스크립트를 수정했습니다. 내가 콘솔에서이 작업을 실행하면 가 잘 작동, 오류없이, 단지 :

PHP 공지 : 정의되지 않은 인덱스 : 이름 /var/www/SChip/create-matrix.php 라인에 2
PHP 공지 사항 : 정의되지 않은 인덱스 : 줄에 /var/www/SChip/create-matrix.php에서 alineamiento 3

하지만 그건 분명한 사실이야 ...하지만 크롬에서 실행하거나 FF가 작동하지 않습니다, 오류나 경고. 단지 현재 폴더에 파일을 남기고 mv은 실행되지 않습니다.

<?php 
$archivo = $_POST["name"]; 
$alineamiento = $_POST["alineamiento"]; 
$archivo = "testing"; 
$alineamiento = "test2"; 
$fp=fopen("$archivo","w"); 
fwrite($fp,$alineamiento); 
fclose($fp); 
system("mv $archivo custom_matrices_temporal/$archivo"); 
?> 
+4

도움이 필요하면 사람들에게 오류를 제공해야합니다. – thatidiotguy

+6

fyi : PHP가 사용자가 제공 한 파일 이름을 쓸 수있게하는 것은 좋지 않습니다. 인덱스 파일을 쉘 스크립트로 대체 할 수 있습니다. –

+1

오류가 발생하지 않을 경우 (경고 수준에서 실행해야 함) * filename *이 디렉토리가 아닌지 확인하십시오. [fopen] (http://php.net/manual/en/function.fopen.php) 페이지와'is_dir()'에 대한 참고 사항을보십시오. – ficuscr

답변

3

디렉토리는 새로운 파일의 작성을 허용 할뿐만 아니라 (x) 실행 권한이 필요합니다.