2011-10-07 2 views
0

브라우저에서 파일을 편집하고 저장할 수있는 기존 PHP 코드가 있습니까?PHP의 기존 파일 편집기?

예 : site.com/edit.php 페이지의 텍스트 영역이 지정된 파일에 저장됩니까? 나는 즉시 파일을 편집 할 수 있기를 원합니다.

저는 XAMPP에서 사이트를 호스팅하고 있습니다. 따라서 파일을 편집해야하고 호스팅 컴퓨터에 액세스 할 수없는 경우 FTP가 작동하지 않는 것으로 보입니다.

이 내가 필요로 발견 가장 가까운, 그러나 캔트 (목표는 'change.php'을 변경하는 것)가 작동하도록하는 것 :

<?php 
    if ($changefile) { 
    $slash = stripslashes($_POST['filetest']); 
    $filetochange = "change.php"; 
    $filetochangeOpen = fopen($filetochange,"w") or die ("Error editing."); 
    fputs($filetochangeOpen,$slash); 
    fclose($filetochangeOpen) or die ("Error Closing File!"); 
    } 
?> 
<form method=post action=""> 

<textarea rows="40" cols="60" name="filetest"> 
<? 
// Implode CSS 
$filetochange = "change.php"; 
print (implode("",file($filetochange))); 
?> 
</textarea><br /> 

<br /> 
<input type="submit" value="Change File" name="changefile"> 
</form> 
+0

왜 사람들은 지속적으로 프로젝트를 중단하고 더 많은 보안 허점을 두는 지 궁금해합니다. – zerkms

+0

일반적인 mod_php 설정은 기존 파일을 수정할 수있는 권한을 스크립트에 부여하지 않습니다. – mario

+0

PHP 쉘 또는 파일 관리자라고합니다. 그것을위한 Google. 크래커들이 자주 사용합니다. – hakre

답변

2

www-data은 쓰기 권한이있다 파일을 찾거나 작동하지 않습니다. 이것에 조심하십시오. 자신의 IP에 대한 액세스를 제한하십시오 (말한대로) 또는 SSL로 암호로 보호 된 폴더에 넣으십시오.

<?php 

$file = $_POST['file']; 
$script = $_POST['script']; 
     if($file&&$script) { 
     $fp=fopen($file, "w"); 
     fwrite($fp,$script); 
     fclose($fp); 
    } 
?> 
<form method="post"> 
<?php 
    if($file) { 
?> 
<textarea style="height: 90%; width: 100%;" name="script"> 
<?php 
    $fp=fopen($file,"r"); 
    $t=""; 
    while(!feof($fp)) { 
     $t.=fread($fp,1024); 
    } 
    fclose($fp); 
    print $t; 
?> 
</textarea> 
<input type="hidden" name="file" value="<?=$file;?>"> 
<?php 
    } 
    else 
    { 
?> 
Name of file: <input type="text" name="file"><br /> 
<?php 
    } 
?> 
<br /> 
<input type="submit"> 
</form>