2011-12-15 70 views
0

我正在处理一个表单,该表单将允许用户向网站提交文本,并将其保存为稍后可以检索的服务器上的文件。我使用的格式如下: PHP创建新文件问题k

<p> 
     <label for="Name">First Name</label> 
     <input type="text" name="Name" id="Name" /> 
    </p> 
    <p> 
     <label for="Last Name">Last Name</label> 
     <input type="text" name="LastName" id="LastName" /> 
    </p> 
    <p> 
     <label for="GuideName">Guide Name</label> 
     <input type="text" name="GuideName" id="GuideName" /> 
    </p> 
    <p>Copy and paste your study guide into this box.</p> 
    <p> 
     <textarea name="Guide" id="Guide" cols="100" rows="30"></textarea> 
    </p> 
    <p>Submit 
     <input type="submit" name="Submit" id="Submit" value="Submit" /> 
     </p> 
    </form> 

和下面的PHP代码:

<?php 
if (isset($_POST['Submit'])) 
{ 
    $firstName = $_POST['Name']; 
    $lastName = $_POST['LastName']; 
    $guideName = $_POST['GuideName']; 
    $guide = $_POST['Guide']; 
    $finalGuideName = $guideName."(".$firstName." ".$lastName.").txt"; 

    $fh = fopen($finalGuideName, 'w') or die("can't open file"); 
    fwrite($fh, $guide); 
    fclose($fh); 
} 
?> 

我已经在过去使用的代码(至少我认为这是这个代码)取用户的信息并使用它在服务器上创建一个文本文件。但是,当我查看表单是否正常工作时,服务器上没有显示任何内容。我究竟做错了什么?提前致谢。

感谢您的帮助,每个人,当我试图解决它,它开始再次工作。我完全不知道为什么,我敢肯定我没有改变任何事情,但再次感谢您的帮助。

+0

发生了什么或没有发生什么?条件是否已经进入? – 2011-12-15 16:20:53

回答

0

您需要确保您写入的目录允许写入权限(更改为0755或0644 *)。另外,我不建议写信给网站的ROOT,建立一个文件夹并更改这个权限。这不是一个好主意,让任何人写入根,哈哈

*感谢劳伦斯指出我的错误

+1

0777是安全风险,0755或0644就足够了 – 2011-12-15 16:24:28

+0

这是事实。我会改变我的帖子,以防万一OP没有阅读评论haha – 2011-12-15 16:27:20

1

你透过按钮名称为Submit2,所以用这个代码

if (isset($_POST['Submit2'])) 
0

有你尝试使用$ _REQUEST而不是_POST或_GET?

发现furher信息我想你也应该把一个其他对您

if(isset($_POST['Submit'])) { 

只是为了确保达到声明。 作为最后的手段,检查你的路径和他们的权限,比如从0777开始,如果它的工作正确到755或644(这取决于拥有目录的用户对apache用户的配置,他们应该全部在同一组中,但这是另一个故事)