该脚本位于myusername / public_html / item / index.php
中保存文件的代码:
$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
$filehandle = fopen($filename, 'ab+') or die("<p>Unable to create the file!</p>\n".$filename);
flock($filehandle, LOCK_EX) or die("<p>Unable to lock the file!</p>\n");
fwrite($filehandle, $new_entry) or die("<p>Unable to write to the file!</p>\n");
fclose($filehandle);
由于某种原因,它在fopen上失败,文件名实际上最终与/../字面意思相反,而不是导航到正确的路径。
做什么,该做什么?
答案 0 :(得分:0)
由于某种原因,它在fopen上失败了
编程中没有“某些原因”。总有一定的理由 你必须知道它。
文件名实际上最终与/../
完全一致
这正是你所写的,没有什么值得抱怨的。
如何将PHP中的文件保存到高于当前的目录?
从技术上讲,您设置正确。
但除了错误的路径创建方式之外,还有其他原因。
是的,程序失败总是有很多的原因!
做什么,该做什么?
运行此代码并查看其内容。
ini_set('display_errors',1);
error_reporting(E_ALL);
$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
file_put_contents($filename,$new_entry);
它会告诉你它失败的原因。
答案 1 :(得分:0)
如果php脚本在item文件夹中且项目和数据在目录层次结构中位于同一级别,则可以像这样编码
$savedir = '../data/';
$filename = $savedir.'guestbook.txt';
确保apache用户具有对目录的写访问权限,然后通过&#34; chown -R apache:apache&#34;和&#34; chmod 755&#34;。
可能是&#34; /../&#34;在你的代码中给出了错误。尝试删除第一个正斜杠。