PHP表单以https格式写入文件://

PHP表单以https格式写入文件://,php,https,fopen,Php,Https,Fopen,我在获取php表单以写入apache httpsdocs文件夹托管的文件时遇到问题。如果表单的所有部分都使用http协议,那么表单就可以正常工作,但是当我保护表单、表单提交和结果写入的文件时,表单就会失败 有人能帮忙吗 这是php代码: $myFile = "files/data.txt"; $fh = fopen($myFile, 'a') or die ("Could not read file"); $stringData = "Data in pipe format\n"; fwrite

我在获取php表单以写入apache httpsdocs文件夹托管的文件时遇到问题。如果表单的所有部分都使用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
此外,我的表单页面是,表单字段重定向到action=“processform.php”,那么为什么它在httpdocs中查找processform.php而不是httpsdocs?当然,它应该与从中调用的协议/目录保持一致


谢谢你的帮助:)

你把事情弄糊涂了。URL不是URL,而是目录。
我的第一个想法是检查安全目录(#/var/www/vhosts/mysite.co.uk/httpsdocs/files)的权限,看看您的Web服务器用户是否可以在那里写入内容。

I second Maarten,这肯定是文件的权限设置。你把文件归档了吗?这应该是您唯一的问题,但是这种类型的提交是非常不安全的,即使您通过https进行提交。我会把这个文件叫做“data.secured” 然后,您可以使用apache的权限设置来“锁定”外部访问/读取文件

<files "*.secured">
order allow,deny
deny from all
</files>

命令允许,拒绝
全盘否定

对不起,这是一个错误的术语-它们是文件的位置,显然与代码中请求的URL相对应。httpsdocs/files被分配给user:psaserv,因此apache确实可以写入文件夹和所有内容“processform.php,调用的文件是httpdocs/processform.php而不是httpsdocs/processform.php最后一件事只有在https服务器也使用不安全的docroot时才可能发生,或者如果您没有将processform.php作为操作,但例如。