我是PHP新手并尝试将输入保存到文本文件,但POST操作不执行任何操作:
<form method="POST" action="<?php $_SERVER["PHP_SELF"]; ?>">
Name: <input type="text" name="usersname"/><br/>
<input type="submit" value="Write" name="submitwrite"/>
</form>
并在顶部的同一个文件中:
<?php
// Check if the user submitted this form
if (isset($_POST["submitwrite"])) {
// Open the file in write mode
$handle = fopen("writetest.txt","a+");
// If successful
if ($handle) {
// Write to that handle the username submitted in the form and the date
fwrite($handle,$_POST["usersname"] . " - " . date("Y-m-d"));
// Close the file
fclose($handle);
}
}
?>
我点击按钮,它不会自我发布....如何解决?
更新:感谢您的回答。问题在于文件权限...服务器不允许我设置777,只有755.此代码没有任何问题。我很高兴你帮助我发现了这个!!
答案 0 :(得分:3)
<?php $_SERVER["PHP_SELF"]; ?>
做什么?它不会打印任何内容,因此您的表单无法提交。
请尝试使用<?php echo $_SERVER["PHP_SELF"]; ?>
或<?php print($_SERVER["PHP_SELF"]); ?>
。
此外,如果这无济于事,将fopen("writetest.txt","a+");
更改为fopen("writetest.txt","w");
可能会有所帮助吗?
答案 1 :(得分:3)
你忘了回应这个动作。但这没关系,因为如果你想POST到同一个URL,你应该完全省略该属性。
答案 2 :(得分:1)
对我来说,你的代码运行正常,但是,我认为你没有工作,因为该目录没有写入权限。
运行chmod 0777 diretory_name
答案 3 :(得分:1)
我怀疑<?php $_SERVER["PHP_SELF"]; ?>
没有按照您的预期行事。
如果我没记错,如果您可以通过删除action
属性来避免此问题,那么表单将默认发布到“自身”(相同的网址)。
答案 4 :(得分:1)
如果您在本地进行测试,则必须在“writetest.txt”上为User和IUSR设置读/写权限。
修复它的步骤:
答案 5 :(得分:0)
你在动作php语句中缺少一个echo。然而,表格仍然应该自行发布。
尝试:
if (isset($_POST)) {
var_dump($_POST);
}