将post值写入文本文件

时间:2013-08-11 03:54:04

标签: php post fwrite

我正在尝试将字符串附加到文本文件中。

文件users.txt与php文件位于同一文件夹中。

$fname=$_POST['fname'];

$message = "name is :" . $fname. "\n";
if (isset($_POST['submit'])) {
    if ( file_exists("users.txt")) {
        $fp = fopen ("users.txt", "a");
        fwrite($fp, $message);
        fclose($fp);
    } else {
        echo'<script type="text/javascript">alert("file does not exist")</script>';
    }
}

不会抛出邮件错误,也不会写入文件 我做错了什么?

我的表格:

<form onsubmit="return ValidateInputs();" action="contact.php" method="post"  id="contactForm" >
          <input class="input" type="text"  name="fname" id="fname"  />
          <input    type="submit" value="submit" name="submit"  />
</form>

NB。此表单确实提交..它会通过电子邮件将消息发送给我。

2 个答案:

答案 0 :(得分:3)

这完全适用于我的localhost。我没有用你的HTML重新创建完整的场景,但现在可以使用了。只需记住将文件权限设置为读/写,并确保一次只执行一步。例如,从这段代码开始,确保获得文件名file.txt,其中包含您想要的文本。然后通过包含HTML位将其提升到下一个级别。

<?php
$fname = "Skippy";
$message = "name is :" . $fname. "\n";
$file = 'file.txt';
$fd = fopen($file, "a");

if ($fd) { 
    fwrite($fd, $message . "\n");   
    fclose($fd); 
}

?>

答案 1 :(得分:3)

PHP处理程序的问题是未定义fname变量。

已添加$fname=$_POST['fname'];

<?php

$fname=$_POST['fname'];

$message = "name is :" . $fname . "\n";
if (isset($_POST['submit'])) {
    if ( file_exists("users.txt")) {
        $fp = fopen ("users.txt", "a");
        fwrite($fp, $message);
        fclose($fp);

echo "Success";

    } 

else {
       echo'<script type="text/javascript">alert("file does not exist")</script>';
    }
}

?>

脚注:为了将内容写入文件,可能还需要其他权限。 CHMOD 644通常是标准权限设置,但某些服务器需要777

通过FTP,如果有一个可以手动输入命令的窗口,可以在所使用的FTP软件中键入chmod 644 users.txtchmod 777 users.txt

有关如何chmod文件的其他信息,可以访问GoDaddy网站获取基于Windows的托管服务。