2017-12-29 10 views
0

아파치 2와 PHP를 라스베리 파이 1 B + (라스베가스 스트레치 라이트 )에 설치했습니다. 텍스트 상자의 내용을 사용자가 제출할 때 서버의 텍스트 파일에 저장해야하는 PHP 스크립트와 텍스트 상자가있는 웹 사이트가 있습니다. 기본적으로 모든 것을 시도했지만 PHP 스크립트는 저장하지 않습니다. PHP는 textbox-content를 얻었습니다 (테스트 해 보았습니다).PHP가 파일에 저장하지 않습니다

<?php 
include "code/multiPage/topBar.html"; 
$dir = "/data/searches.txt"; 
if ($_REQUEST) { 
    $input = $_REQUEST["search"]; 
    file_put_contents($dir, $input, FILE_APPEND); 
} 
?> 

PHP는이 문제에서 제대로 제외하고있다 :

이 내 PHP입니다.

폴더에 모든 사용자에게 읽기/쓰기 권한이 있습니다.

if (!file_exists('path/to/directory')) { 
    mkdir('path/to/directory', 0777, true); 
} 

PHP 심지어는 수행 할 수 없습니다 는 또한 PHP이 같은 코드로 자신의 폴더를 만들 수 있도록 tryed했다.

미리 도움을 청하십시오!

답변

0

알아 냈습니다. 문제는 웹 서버가 디렉토리에 쓸 수있는 권한이 없다는 것입니다. 도움을 주셔서 감사합니다 sudo chown -R www-data var/www/html/data를 실행하여 해결 된 문제! 좋은 하루 보내십시오 : D

1

첫째는 다른 코드와는 별도로이 시도

<?php 

file_put_contents를 ("/ 데이터/searches.txt", "즐", FILE_APPEND);

?> 

마지막 오류를이 쓸 수 있다면 당신은 항상 확인할 수 있습니다 파일에 쓸 수 있는지 확인하기 위해

echo print_r(error_get_last (), true) 

를 얻기 위해 시도를 작동하지 않는 경우

if(is_writable($dir)) 

또한 디버깅을 위해 file_put_contents가 얼마나 많은 물기를 기록했는지 확인하는 것이 좋습니다.

그래서 디버깅을 쉽게 최종 코드는 다음과 같이 될 것입니다 : 일이

<?php 
include "code/multiPage/topBar.html"; 
$dir = "/data/searches.txt"; 
if(!is_writable($dir)){ 
    echo "cannot write to file"; 
} 

if (!empty($_REQUEST["search"])) { 
    $input = $_REQUEST["search"]; 
    $bitecount = file_put_contents($dir, $input, FILE_APPEND); 
} 
echo $bitecount . " bites were written to the file"; 
?> 

. $ _REQUEST [ "search"] = ""또는 $ _REQUEST [ "search"] = null if ($ _REQUEST)가 TRUE가된다면

+0

고마워요! 나는 그것을 시도 할 것이다. : D –

+0

Tryed it - PHP를 다른 경로의 파일에 넣으십시오. 그 위치에 쓸 수 없습니다 - 0 바이트가 저장되었습니다. 나는 이것을 고치는 방법을 자극하지 않는다. –

관련 문제