脚本位于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上失败了,文件名实际上最终是/../而不是导航到正确的路径。
该做什么,该做什么?
如果php脚本在item文件夹中,并且item和数据在目录层次结构中处于同一级别,则可以进行这样的代码
$savedir = '../data/';
$filename = $savedir.'guestbook.txt';
确保apache用户通过"chown-R apache:apache"answers"chmod 755"对目录具有写访问权限。
可能是代码中的"/../"导致了错误。尝试删除第一个正斜杠。
由于某种原因,它在fopen 上失败
编程中没有"某些原因"。总有一定的原因
你必须知道。
文件名实际上是用/../
这正是你写的,没有什么可抱怨的。
如何将PHP中的文件保存到高于当前目录的目录中?
从技术上讲,你是在纠正它。
但可能还有另一个原因,除了错误的路径创建方式
是的,程序失败的原因总是很多的!
该做什么,该做什么?
运行此代码并查看它的内容。
ini_set('display_errors',1);
error_reporting(E_ALL);
$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
file_put_contents($filename,$new_entry);
它会告诉你它失败的原因。