문제

Apache HTTPSDOCS 폴더와 함께 호스팅 된 파일에 작성하기 위해 PHP 양식을 가져 오는 데 문제가 있습니다. 양식은 HTTP 프로토콜을 사용하는 경우 양식이 잘 작동하지만 양식, 양식 제출 및 결과가 작성된 파일을 확보하면 실패합니다.

누구든지 도울 수 있습니까?

이것은 PHP 코드입니다.

$myFile = "files/data.txt";
$fh = fopen($myFile, 'a') or die ("Could not read file");
$stringData = "Data in pipe format\n";
fwrite($fh, $stringData);
fclose($fh);
header( 'Location: http://www.example.com/thankyou');

그리고 다양한 위치는 다음과 같습니다.

  • /var/www/vhosts/example.com/httpdocs/files
  • /var/www/vhosts/example.com/httpsdocs/files

또한 내 양식 페이지입니다 https://example.com/form.php, 및 양식 필드는 Action = "ProcessForm.php"로 리디렉션되므로 HTTPSDOC가 아닌 HTTPDOCS에서 ProcessForm.php를 찾는 이유는 무엇입니까? 분명히 그것은 호출 된 것과 동일한 프로토콜/디렉토리 내에 있어야합니다!

도움을 주셔서 감사합니다 :)

도움이 되었습니까?

해결책

당신은 혼란 스럽습니다. URL은 URL이 아니며 디렉토리입니다. 첫 번째 아이디어는 Secure Directory ( # /var/www/vhosts/mysite.co.uk/httpsdocs/files)의 권한을 확인하여 Webserver 사용자가 여기에 쓸 수 있는지 확인하는 것입니다.

다른 팁

두 번째 Maarten, 이것은 파일의 권한 설정입니다. 파일을 chmod에 했습니까? 그것은 당신의 유일한 문제가되어야하지만,이 유형의 제출은 당신이 HTTPS를 통해 그것을 수행하더라도 매우 불안합니다. 'data.secured'와 같은 파일을 만들면 Apache의 권한 설정을 사용하여 외부 액세스/읽기에서 파일을 '잠금'할 수 있습니다.

<files "*.secured">
order allow,deny
deny from all
</files>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top