Php表格不起作用:“许可被拒绝......”

时间:2014-01-10 16:15:07

标签: php html5 forms email doctype

除了基础知识之外,我对PHP几乎一无所知,还不足以理解我在网上发现的提交表单:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>Assets | Cicada3301's Website</title>
     <link rel='stylesheet' type='text/css' href='http://www.copot.eu/matei/assets/stylesheet.css'>
  <link rel='stylesheet' href='http://www.copot.eu/matei/assets/jquery-ui-stylesheet.css'>
  <script  type="text/javascript" src="http://www.copot.eu/matei/assets/jquery-1.10.2.min.js"></script>
  <script src="http://www.copot.eu/matei/assets/jquery-ui.js"></script>
    <script type="text/javascript" src="http://www.copot.eu/matei/assets/scripts.js"></script>
    <link rel='shortcut icon' type='image/x-icon' href='http://www.copot.eu/matei/assets/me.jpg'>
    </head>
    <body>
        <?php
$savedata = $_REQUEST['savedata'];
if ($savedata == 1){ 
$data = $_POST['name'];
$data .= $_POST['email'];
$data .= $_POST['message'];
$file = "YOURDATAFILE.txt"; 

$fp = fopen($file, "a") or die("Couldn't open $file for writing!");
fwrite($fp, $data) or die("Couldn't write values to file!"); 

fclose($fp); 
echo "Your Form has been Submitted!";

}
?>
        <form action="http://www.copot.eu/matei/mail/index.php?savedata=1" method="post">
            Your Name: <input type="text" name="name"><br>
            Your Email: <input type="text" name="email"><br>
            Your Message:<br> <textarea name="message" rows="5" cols="30"></textarea><br>
            <input type="submit" name="submit" value="Submit">
        </form>
    </body>
</html>

我更改了链接并将YOURDATAFILE.txt添加到我的网页,以便它可以在我的网页上运行,但显然它没有。我肯定会稍后将其更改为我确切需要的内容(当我能够完全理解正在发生的事情时),但是现在我完全复制并粘贴了我发现的答案http://www.computerhope.com/forum/index.php?topic=70644.0,并更改了一些链接。我手动修改了将存储数据的文件,以便我可以看到文件存在(mail / YOURDATAFILE.txt)。如果您认为缺少其他内容,可以查看网站(http://www.copot.eu/matei/mail)并查看是否还有其他内容丢失。另一件事(可选):有人可以告诉我代码是如何工作的(请不要告诉我看一下教程)?

当我尝试提交错误时说:

Warning: fopen(YOURDATAFILE.txt) [function.fopen]: failed to open stream: Permission denied in D:\inetpub\webs\copoteu\matei\mail\index.php on line 21
Couldn't open YOURDATAFILE.txt for writing!

1 个答案:

答案 0 :(得分:4)

您的(ftp?)用户和执行php的用户(网络服务器,像apache,www之类的用户)不一样。因此,如果添加文件,则无法保证web-server / php可以写入文件。因此,您需要检查文件的权限和/或将所有权更改为Web服务器用户。

除此之外,你应该真正将你的文件移出你的web-root,因为整个世界都可以阅读它。