2017-03-31 100 views
1

我使用的是Ubuntu 16.04 & xampp 5.6.30。我正在尝试使用带有验证的文件创建简单的登录程序,但在将数据放入名为“login.txt”的文件中时,我面临问题。无法打开流:权限被拒绝在/ opt/lampp/htdocs

错误:

file_put_contents(login.txt): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/login.php on line 38 

我的代码:

$input = $userName.'|'.$userPassword.'\n'; 

$myfile = file_put_contents('login.txt', $input.PHP_EOL , FILE_APPEND | LOCK_EX); 
+0

这是一个权限被拒绝的错误...您是否将'login.txt'文件保存在'/ opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation /'文件夹中? ,然后运行这个命令'stat theFolder'并发布输出。 – Hackerman

回答

1

这个错误是由于文件权限。 php/apache用户没有写入目录的权限。一种解决方法是用命令chmod更改目录的mod字节。如果会话用户不拥有该目录,则需要超级权限才能执行此修改。

$ sudo chmod -R 777 /path/to/directory 

国防部777集读/写和执行,以目录系统上的每个用户。 R选项递归地将修改应用于每个文件和子目录。因此,您可以一次更改htdocs目录中所有内容的权限。

https://linux.die.net/man/1/chmod

0

我推荐两件事情。首先,定义login.txt文件的完整路径。

$input = $userName.'|'.$userPassword.'\n'; 

$loginFile = "/opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/login.txt" 

$myfile = file_put_contents($loginFile, $input.PHP_EOL , FILE_APPEND | LOCK_EX); 

其次,直接您正在试图写:

/opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/ 

不可写。检查Web服务器正在运行的用户,并为该用户提供对该文件夹的读/写权限。

相关问题