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

时间:2009-10-06 13:49:20

标签: 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($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?当然它应该保持在与调用它相同的协议/目录中!

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

你很困惑。网址不是网址,它们是目录。 我的第一个想法是检查安全目录(#/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /#

答案 1 :(得分:1)

我是第二个Maarten,这绝对是文件的权限设置。你有chmod的文件吗?这应该是你唯一的问题,但即使你通过https进行这种提交也是非常不安全的。我会把文件叫做'data.secured'之类的东西 然后,您可以使用apache的权限设置从外部访问/读取“锁定”文件。

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