编辑:我知道我已经正确安装了PHP,并且本地主机服务器正在通过MAMP正常运行。
我尝试创建一个待办事项列表,使用PHP将输入保存到txt文件,然后显示它。但是,我无法让它发挥作用。当我尝试添加" todo项目时,"它只是消失了。
第一个代码片段是添加todo项目的位置(index.html文件):
<div id="container">
<h1>To-do List<i class="fa fa-plus" aria-hidden="true"></i></h1>
<form action="index.php" method="post">
<input name="addtodo" type="text" placeholder="Add New To-Do">
</form>
<ul>
<li><span><i class="fa fa-trash"></i></span> Go to Potions Class</li>
</ul>
</div>
&#13;
这是index.php文件,理想情况下,todo项应添加到文本文件中并显示。它没有做到。
<?php
//define variables
$addtodo = $_POST["addtodo"];
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
$filename = $DOCUMENT_ROOT.'todo.txt';
//write
$fp = fopen($filename, 'a');
$outputLine = $addtodo;
fwrite($fp, $outputLine);
fclose($fp);
?>
<div id="container">
<h1>To-do List<i class="fa fa-plus" aria-hidden="true"></i></h1>
<ul>
<li><span><i class="fa fa-trash"></i></span> Go to Potions Class</li>
</ul>
<?php
$display = "";
//read
$fp = fopen($filename, 'r');
while (true) {
$line = fgets($fp);
if (feof($fp)) {
break;
}
$display .= '<li><span><i class="fa fa-trash"></i></span>'.$line.'</li>';
}
fclose($fp);
echo $display;
?>
</div>
</body>
&#13;
答案 0 :(得分:0)
我认为表单提交是由JavaScript事件触发的,对吗?
您是否尝试过打印$ filename var来检查它是否正确?我不确定是否&#39; $ _ SERVER [&#34; DOCUMENT_ROOT&#34;]&#39;总是给你一个&#39; /&#39;在路径的尽头。如果它没有,你应该有:/your/pathtodo.txt
另外,您可以检查todo.txt写入权限
答案 1 :(得分:0)
您的路径有问题,应该是:
let ErrorDomain = "NotesErrorDomain"
func err(_ code: ErrorCode,
_ userInfo:[String: Any]? = nil) -> NSError {
// Generate an NSError object, using ErrorDomain, and using whatever
// value we were passed
return NSError(domain: ErrorDomain,
code: code.rawValue,
userInfo: userInfo)
}
$filename = $DOCUMENT_ROOT. DIRECTORY_SEPARATOR .'todo.txt';
是一个预定义的常量,它获取操作系统斜杠分隔符(无论是正斜杠还是反斜杠)。 Read more