Php HTML表单和会话

Php HTML表单和会话,php,html,web,Php,Html,Web,我想在没有JavaScript、AJAX或数据库的情况下执行以下操作。只有HTML和PHP 以下是场景: 我在一个表单中有两个HTML输入。此表单通过POST方法发送两个值(姓名和年龄)。我从这些值创建一个用户对象,将这些值存储在会话中,然后在表单下方打印用户信息。创建用户对象没有问题 我怎样才能做到打印出所有用户的信息呢。例如,第一个用户输入其信息并单击提交,我们有: - John - 18 years - John - 18 years - Kevin - 20 years - J

我想在没有JavaScript、AJAX或数据库的情况下执行以下操作。只有HTML和PHP

以下是场景:

我在一个表单中有两个HTML输入。此表单通过POST方法发送两个值(姓名和年龄)。我从这些值创建一个用户对象,将这些值存储在会话中,然后在表单下方打印用户信息。创建用户对象没有问题

我怎样才能做到打印出所有用户的信息呢。例如,第一个用户输入其信息并单击提交,我们有:

 - John
 - 18 years
- John
- 18 years

- Kevin
- 20 years
- John
- 18 years

- Kevin
- 20 years

- Bryan
- 19 years
第二个用户输入其信息并单击提交,我们有:

 - John
 - 18 years
- John
- 18 years

- Kevin
- 20 years
- John
- 18 years

- Kevin
- 20 years

- Bryan
- 19 years
第三个用户输入其信息并单击提交,我们有:

 - John
 - 18 years
- John
- 18 years

- Kevin
- 20 years
- John
- 18 years

- Kevin
- 20 years

- Bryan
- 19 years
等等


谢谢

您可以在会话中保存这些内容,以便以后在同一会话中使用。 但另一种方法可能是将它们存储在cookie中,只有在一台计算机上输入所有信息时,这两种方法才能起作用


如果您想让您的站点将这些内容输出给所有其他用户,您需要一个数据库或类似的东西

您可以将这些内容保存在会话中,以便以后在同一会话中使用。 但另一种方法可能是将它们存储在cookie中,只有在一台计算机上输入所有信息时,这两种方法才能起作用


如果您想让您的站点将其输出给所有其他用户,您需要一个数据库或类似的东西,例如,您的代码如下

$name = $_Post['name'];
$age = $_Post['age'];
然后

将sessiona变量数组用于
$name
$age


另外,请看Kaleb Brasee的这篇惊人的文章,在同一个链接上,Sarfraz已经详细地解释了这一点。这将对您有很大帮助

$name = $_Post['name'];
$age = $_Post['age'];
然后

将sessiona变量数组用于
$name
$age


另外,请看Kaleb Brasee的这篇惊人文章,在同一链接上,Sarfraz已经详细解释了这一点。这将对您有很大帮助。

您应该将数据存储在一个数组中,并在每次提交时附加到数组中

<?php

    session_start();
    $data = array();
    if(isset($_SESSION['data'])) {
        $data = $_SESSION['data'];
    }
    if(isset($_POST['name']) && isset($_POST['age'])) {
        // -- append to the array
        $data[] = array('name'=>$_POST['name'],'age'=>$_POST['age'],);

        // -- update the session
        $_SESSION['data'] = $data;
    }
?>
<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
    <form action="" method="post">
      Name:<br />
      <input type="text" name="name" size="10" /><br />
      Age:<br />
      <input type="text" name="age" size="2" /><br />
      <br />
        <input type="submit" />
    </form>
    <?php foreach($data as $d) { ?>
        - <?php echo $d['name']; ?><br />
        - <?php echo $d['age']; ?><br /><br />
    <?php } ?>
 </body>
</html>

名称:

年龄:


-
-


您应该将数据存储在数组中,并在每次提交时附加到数组中

<?php

    session_start();
    $data = array();
    if(isset($_SESSION['data'])) {
        $data = $_SESSION['data'];
    }
    if(isset($_POST['name']) && isset($_POST['age'])) {
        // -- append to the array
        $data[] = array('name'=>$_POST['name'],'age'=>$_POST['age'],);

        // -- update the session
        $_SESSION['data'] = $data;
    }
?>
<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
    <form action="" method="post">
      Name:<br />
      <input type="text" name="name" size="10" /><br />
      Age:<br />
      <input type="text" name="age" size="2" /><br />
      <br />
        <input type="submit" />
    </form>
    <?php foreach($data as $d) { ?>
        - <?php echo $d['name']; ?><br />
        - <?php echo $d['age']; ?><br /><br />
    <?php } ?>
 </body>
</html>

名称:

年龄:


-
-


是否将它们保存在服务器本地磁盘文件系统上的CSV、XML或JSON文件中?(哦,好吧,你在这里改造一个数据库……为什么不直接使用它呢?)请注意,HTTP会话不会在用户之间共享(这将是一个巨大的安全漏洞)@BalusC是的,我理解安全原因,但这不是一个会被其他人使用的网站。我知道创建一个数据库会更好,但我的目标完全不同。我只是在练习,我想在一个PHP文件上这样做。@BalusC+1用于在用户之间共享会话时指向安全漏洞将它们保存在服务器本地磁盘文件系统上的CSV、XML或JSON文件中?(哦,好吧,你在这里改造一个数据库……为什么不直接使用它呢?)请注意,HTTP会话不会在用户之间共享(这将是一个巨大的安全漏洞)@BalusC是的,我理解安全原因,但这不是一个会被其他人使用的网站。我知道创建一个数据库会更好,但我的目标完全不同。我只是在练习,我想在一个PHP文件上这样做。@BalusC+1用于在用户之间共享会话时指向安全漏洞。这就是我想做的,但在每次提交时将它们存储在会话中会覆盖会话的内容。我不想-不应该-使用饼干。假设这是一个家庭作业,是的,我在一台计算机上输入了所有信息。是的,这就是我想要做的,但在每次提交时将它们存储在会话中会覆盖会话的内容。我不想-不应该-使用饼干。假设这是一个家庭作业,是的,我在一台电脑上输入了所有信息。真是令人惊讶。非常感谢你的链接!确实令人惊讶。非常感谢你的链接!谢谢你的插图谢谢你的插图