不使用数据库保存提交变量?

时间:2016-03-10 13:42:35

标签: php

是否可以使用php保存表单中的输入?那么不使用数据库?

我的代码的当前快照:

HTML

<form method="post" name = "post">
    <p><input type="text" name="api_key_send" value="" placeholder="api key sendcloud"></p>

PHP

if($_SERVER['REQUEST_METHOD'] === 'POST') {

 $_SESSION['api_key_send'] = $_POST['api_key_send'];

这是我采用当前用户输入并用它来执行其余脚本的方法。我希望用户输入的内容保持记住,直到新输入覆盖它。当然,我知道你可以使用数据库,但这是必要的吗?

更新:

它可以工作,但只有当我一次又一次地将正确的值作为用户。如果您第二次按下按钮,它只记得以前的输入,我想要。

试图澄清:

我的想法是我可以做这样的事情:

$_SESSION['api_key_send'] = $_POST['api_key_send'];
$var = $_POST['api_key_send']; <<<<

2 个答案:

答案 0 :(得分:1)

$_SESSION可用于临时存储,并在大多数情况下通过清除浏览器数据来清除。 (以下例外情况详解)

如果您使用透明会话ID,那么在地址栏中输入SID的任何人都可以选择该会话。实际上,会话基于PHP的垃圾收集设置(php.ini中的session.gc_ *参数)进行销毁 - 即使您使用的是基于cookie的会话。如果用户取消设置他们的cookie,则会话不一定会被破坏,只是该用户不再接收。 (本次详细说明致@ CD001)

使用变量($var)是一个更加临时的解决方案,一旦用户关闭窗口,它将被取消设置。

$var = $_POST['api_key_send']; <<<<

因此,对于永久存储,您需要使用数据库或将输入保存到文件中。

答案 1 :(得分:0)

您还可以使用HTML5 Web Storage,并将数据保存在最终用户的客户端中。

window有两个属性,可通过javascript访问:

  • window.localStorage - 存储没有过期日期的数据
  • window.sessionStorage - 存储一个会话的数据(浏览器选项卡关闭时数据丢失)