0

我在获取 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 呢?当然,它应该与调用它的协议/目录保持一致!

谢谢你的帮助 :)

4

2 回答 2

1

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

于 2009-10-06T13:53:54.643 回答
1

我第二个 Maarten,这绝对是文件的权限设置。你chmod了文件吗?这应该是您唯一的问题,但是即使您通过 https 提交,这种类型的提交也非常不安全。我会将文件命名为“data.secured”然后您可以使用 apache 的权限设置来“锁定”文件以防止外部访问/读取。

<files "*.secured">
order allow,deny
deny from all
</files>
于 2009-10-06T14:10:45.700 回答