【发布时间】:2013-03-05 23:36:03
【问题描述】:
<?
if(isset($_POST['Submit']))
{
$password=$_POST['newpwd'];
if(!empty($password))
{
$old_file = "password.txt";
chmod($old_file,0777);
$fh = fopen($old_file, 'w') or die("Can't open file");
fwrite($fh,$password);
fclose($fh);
header("location:index.php");
}
else
{
echo "Please enter a valid password!";
}
}
?>
以上代码用于重置密码。更改密码时出现“无法打开文件”错误。 chmod 操作也不起作用。文件权限如下:
-rwxr-xr-x 1 root root 4 Mar 5 13:55 password.txt
我尝试取消链接以删除文本文件,它也失败了。
当我手动删除文本文件,然后将文件权限设置为 777 时,上述代码有效。
应感谢任何帮助!
【问题讨论】:
-
如果您对文件或其目录没有足够的权限,则不能
chmod。事先通过 FTP/SSH 执行此操作。还有file_put_contents()为简洁起见。 -
您的网络服务器可能没有以 root 身份运行,并且 root 是唯一具有写入权限的服务器。为什么要将密码明文存储在 txt 文件中?
-
如果手动删除文件,然后运行这个脚本,谁对password.txt有权限?
标签: php file fopen fwrite chmod