0

我是一名新的 PHP 开发人员。我正在尝试在服务器上编写一个平面文件,并且我有以下代码。

<?php 
$myfile= "file1.txt";
if(isset($_POST['ta'])){
    $newData = nl2br(htmlspecialchars($_POST['ta']));
    $handle = fopen($myfile, "w");
    fwrite($handle, $newData);
    fclose($handle);
}

if(file_exists($myfile)){
    $myData=file_get_contents($myfile);
}
?>

<form action="file.php" method="post">
    <textarea name="ta" cols="64" rows="10"><?php echo $myData; ?></textarea>
    <br/> <br />
    <input name="myBtn" type="submit" />
</form>
<br/> 
<br/> 

<?php echo $myData; ?>

我不明白的是,上面的程序为什么在 localhost 上完美运行,但在实际服务器上却什么也没做?

4

1 回答 1

0

您需要检查文件是否可由运行 Web 服务器的用户写入,这可能类似于wwwapache或其他东西,并且与您的用户不同 -wjones17或例如。如果您的权限看起来像

-rw-r--r--   1 wjones17  group     17 Nov 17 20:02 index.php

然后您的用户有权更改该文件,但没有其他人可以更改,包括 Web 服务器,因此您的 php 脚本运行为wwwapache或其他。

就如何解决这个问题而言,您的选择可能在共享环境中受到限制,但授予所有用户完全权限绝对是个坏主意;尽管它似乎可以“解决”问题,但您只是在向更大的问题敞开大门。您可能会问自己是否有其他方法可以完成您想要的,例如使用数据库。这一切都取决于你的情况以及你想要做什么。

于 2012-11-30T04:07:08.177 回答