php将用户输入写入文件,并回显出该文件供用户查看

时间:2009-12-04 00:22:56

标签: php

如何进行此设置,以便当用户输入他的名字和姓氏时,我将其写入.html文件,然后给用户一个链接以查看他们刚刚输入的信息?

我知道我可以在欢迎之后回复,就像我已经在使用$ _POST ['userfName'],但我只是想写一些.html文件并将这些信息回显给用户查看(参见)。

{ 
        $_SESSION['userEmail'] = $_POST['userEmail']; 
        $_SESSION['start'] = time(); 
        echo "Welcome, " . $_POST['userfName'] .  $_POST['userlName'] .". A new session has been activated for you. Click <a href="sometextfile.html">here</a> to see your information.";
        echo "<br>Your session id is: ".session_id(); 
    } 

3 个答案:

答案 0 :(得分:2)

您想为每个登录的用户实际生成新的HTML文件吗?这种做法无视服务器端脚本。

事实上,让您的脚本具有对您的Web服务器根目录的写入权限是安全的一个坏主意。

您要做的是链接到“sometextfile.php?sessid =”或使用包含其会话ID的cookie,然后动态生成该页面。

如果您只想在某处将文本文件写入磁盘,则可以创建一个字符串,然后使用file_put_contents(http://php.net/file_put_contents)。这可以放在网络根目录中,但我猜这并不是你想要做的事情。

答案 1 :(得分:1)

喜欢这个。

 $message = ...;
 file_put_contents(dirname(__FILE__)."\message.html", $message);
 echo "<a href=message.html>Your message</a>

但您的Web服务器现在可能具有写入Web目录的权限。它会打开你所有的坏事。想象一下,如果用户在消息中编写了一个php脚本(例如<? echo phpinfo()?>)。现在你的服务器受到了损害。如果这样做,您需要验证并清理输入。

编辑 尼克是对的,使用我建议的方法会导致用户覆盖彼此的消息。我不会建议这样做。按照Nicks建议将用户发送到动态生成的页面。

答案 2 :(得分:0)

听起来你勉强需要一个数据库!恭喜!

由于您使用的是PHP,最简单/最便宜的路线是install或访问MySQL server

然后你可以创建一个存储用户名字的表格,并给他们一个URL来访问一个包含他们信息的动态页面,然后你就可以找到一个有前途的职业。有关MySQL的帮助,请查看this tutorial

最终你可能想要跳进像Code IgniterCakePHPSymfony这样的框架(仅举几例),开始为你做所有这些肮脏的工作,这样你就可以专注于花哨的东西。