代码之家  ›  专栏  ›  技术社区  ›  JBirch

创建基本PHP脚本向网页添加行

  •  1
  • JBirch  · 技术社区  · 15 年前

    我主要是一个Java的家伙,这就是为什么我需要一些帮助,我认为这是相当简单的PHP做(和相当简单的Java,虽然也许有点。。。冗长的)。

    简单地说,我想构建一个网页,其中包含用户添加的字符串项列表。在页面的底部,用户可以在一个框中键入“helloworld”,然后点击submit按钮,将其添加到项目列表中。添加到列表的顶部或底部是不相关的-我可以稍后调整。

    我是那种不只是喜欢答案的人,同时我也喜欢答案

    另外,我可能希望输出看起来像

    用户User1添加的“Hello World”

    “这是一个额外的行”由User2添加

    用户User1添加的“再见世界”

    未来。我该怎么做呢?

    更新以回答问题:

    当谈到实际内容的存储时,我倾向于使用一个简单的文件来逐行保存每个条目,正如斯帕奈尔上校所建议的那样。我认为建立一个数据库会有点过分,尽管我确实有足够的资金来实现它。如果用户提交“你好,世界!”然后在文件中添加一行

    “你好,世界!”由用户1发布

    足够了。

    关于身份验证,apache的 httpd.conf 配置文件。目前,这允许通过 AuthGroupFile 进入。这是脚本的宿主。要访问此脚本,用户将已经使用其凭据对自己进行了身份验证。验证当前适用于站点的该部分。真的,这是一个 第二的 我的担心。仅仅加上几行就足够了,没有记录谁说了什么。如果用我已经实现的东西可以很容易地完成的话,这就是PHP蛋糕上的糖。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Your Common Sense    15 年前

    嗯,是的,在PHP中它很短。
    假设使用了基于Apache的授权

    <?
    $file = "messages.txt";
    if ($_SERVER["REQUEST_METHOD"]=="POST") {
      $_POST['mess'] = str_replace(array("\r","\n"),"",$_POST['mess']; 
      file_put_contents($file, $_POST['mess']." ".$_SERVER["REMOTE_USER"]);
      header("Location:".$_SERVER["PHP_SELF"]);
      exit;
    }
    echo nl2br(htmlspecialchars(file_get_contents($file)));
    ?>
    <form method="POST">
    <input type="text" name="mess">
    <input type="submit">
    </form>
    
        2
  •  0
  •   Chris Heald    15 年前

    你有几件事要做:

    • 选择数据存储。在使用PHP时,MySQL是一种流行的选择。听起来这不会是大容量的,所以大多数持久存储都可以工作。
    • 在接受输入时,需要对其进行清理,以便插入到数据库中(同样,如果使用MySQL, check the docs ),然后执行INSERT语句将其放入数据库。
    • check the docs ),从数据存储中查询数据,对其进行循环,并在清除任何潜在恶意数据后回显每一行。

    <?
    // Assuming a database named "my_database" with a table called "chat_lines", which has "username", "line", and "timestamp" fields.
    $db = mysql_connect("localhost", "username", "password");
    mysql_select_db("my_database", $db);
    
    // If data was posted to the script, scrub it and store it in the database.
    if($_POST["username"] && $_POST["line"]) {
      mysql_query(sprintf("INSERT INTO chat_lines (username, line, timestamp) VALUES (\"%s\", \"%s\", NOW())",
        mysql_real_escape_string($_POST["username"]),
        mysql_real_escape_string($_POST["line"])
      ));
    }
    
    // Fetch all lines from the database in reverse chronological order
    $result = mysql_query("SELECT * FROM chat_lines ORDER BY timestamp DESC");
    while($row = mysql_fetch_assoc($result)) {
      echo sprintf("<div>%s said %s</div>", strip_tags($result["username"]), strip_tags($result["line"]));
    }
    ?>
    
    <form method="post">
      <div>Username: <input type="text" name="username" /></div>
      <div>Line: <input type="text" name="line" /></div>
      <input type="submit" />
    </form>
    

    这个例子假设用户可以输入他们想要的任何用户名(也就是说,它不假设实现身份验证系统)、数据存储和表的存在等等,但是应该让您开始。PHP文档非常丰富,非常有用。特别是阅读 Getting Started Language Reference .

    推荐文章