我有一个简单的小脚本,允许非管理员俱乐部会员编辑网站上的某些文字。我让它在我正在使用的CMS之外工作得很好。由于固有的安全性缺乏,我现在正试图将其移动到CMS结构中的文件夹中。我不认为我的问题真正围绕着这样一个事实:CMS现在还涉及......现在我只是想了解为什么未改变的脚本无法正常运行它不同的文件夹。
要编辑的实际文本文件将保留在CMS文件夹结构之外...任何人看到此文件都没有任何内在错误。这只是需要保护的编辑例程......但是我现在只是想让它工作,我已经移动了它。
以下是代码:
<?php
$fn = "http://www.mydomain.org/Public_Files/folder/FileToEdit.txt";
if (isset($_POST['content']))
{
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<textarea rows="40" cols="40" name="content"><?php readfile($fn); ?></textarea>
<input type="submit" value="Save Changes">
</form>
正如你所看到的......这是一个非常简单的剧本......但是大开眼界!我明白......将作为我的下一步解决这个问题。
这是我的问题 ...此代码正确显示要编辑的文件,并允许您进行更改并提交...但它只是刷新屏幕并显示原始未更改再次归档。
此脚本位于:http://www.mydomain.org/cmsfolder/folder/subfolder/edittext.php
据我所知,只有$ fn变量需要更改才能准确指向要编辑的文件。 当编辑脚本与文本文件(CMS外部)位于同一文件夹中时,一切都很好。当它在这个文件夹中时,$ fn变量是 $ fn =“FileToEdit.txt”; 我相当确定CMS没有应用影响此功能的权限。
从移动的文件夹中获取它是什么让我失去了什么?
答案 0 :(得分:0)
变量$ fn应该是文件系统上文件的路径,如:
$fn = "FileToEdit.txt";
$fn = "../FileToEdit.txt";
$fn = "data/FileToEdit.txt";
$fn = "/var/www/data/FileToEdit.txt";
依旧......