PHP - 写入文件 - fwrite

时间:2014-07-05 17:38:03

标签: php forms fwrite

我是PHP菜鸟,但我正在努力学习它。我已经处理了一些变量并从html表单中获取变量,我想获取用户在表单中键入的字符串 - 这是页面上表单的代码

<form method="POST" action="/php/write.php">
<input type="text" name="string"><input type="submit">
</form>

并在子文件夹php中我有文件&#34; write.php&#34;它看起来像这个

<?php
chmod(/write.txt, 0755);
$write == $_POST['string'];
$file = fopen("write.txt","w") or die("cant open file");
fwrite($file, $write);
fclose($file);
?>

我试图放入普通的HTML文件,但也没有用。 问题是,当我输入表单并按下提交时,它会将我重定向到write.php,但没有任何反应,&#34;无法打开文件&#34;没有写,也没有一些错误,文件保持为空,没有fwrite为我工作。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:3)

您的代码存在一些问题:

chmod(/write.txt, 0755);

必须引用文件名,并且它可能不应位于根目录中。 chmod()功能仅适用于现有文件。如果您的文件已存在,则这不是错误。

$write == $_POST['string'];

==是比较运算符。您想要分配=

你的代码应该像这样

$write = $_POST['string'];
$file = fopen('write.txt','w') or die('cant open file');
fwrite($file, $write);
fclose($file);
chmod('write.txt', 0755);

(当我不需要在里面扩展变量时,我更喜欢单引号字符串。)


,在编写良好的程序中,你应该:

  • 使用$_POST['string']
  • 检查访问前是否确实存在isset ($_POST['string'])
  • 检查fopen()fwrite()fclose()chmod()的返回值,并处理潜在错误。