我在获取 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

另外,我的表单页面是 https://example.com/form.php, ,并且表单字段重定向到 action="processform.php",那么为什么它在 httpdocs 而不是 httpsdocs 中查找 processform.php 呢?当然,它应该保留在调用它的同一协议/目录中!

谢谢你的帮助 :)

有帮助吗?

解决方案

你把事情搞混了。url 不是 url,它们是目录。我的第一个想法是检查安全目录( # /var/www/vhosts/mysite.co.uk/httpsdocs/files )的权限,看看您的网络服务器用户是否可以在那里写入。

其他提示

我同意 Maarten,这绝对是文件的权限设置。你chmod了这个文件吗?这应该是您唯一的问题,但是即使您通过 https 进行提交,这种类型的提交也是非常不安全的。我会将该文件称为“数据。

<files "*.secured">
order allow,deny
deny from all
</files>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top