【问题标题】:How can I increase php variable's value every time form is submitted?每次提交表单时如何增加 php 变量的值?
【发布时间】:2019-05-01 12:10:23
【问题描述】:

我在php中有一个变量,叫做$number,我有一个提交按钮:

<form method="get"><button type="submit" value="<?php echo $number; ?> name="next">Next</button></form>.

我想要实现的是,每次提交表单时将该变量的值增加 10。

首先我是这样尝试的:

if(isset($_GET['next'])){
$number+=10;
}

但是这段代码只会增加一次它的值。

我尝试了几种不值得一提的方法,但不幸的是它们都没有奏效。

【问题讨论】:

  • 每次按用户或任何用户提交表单时?假设是后者,您需要将数字存储在数据存储中,无论是服务器上的文件、数据库还是其他东西。
  • 在 url 中传递最后一个值并将其递增 1

标签: php forms


【解决方案1】:
<?php
session_start();
if(isset($_POST['next'])){
   $_SESSION['number'] += 10;
}
?>    
<form method="POST">
  <button type="submit" value="<?php echo $_SESSION['number']; ?>" name="next">
    Next
  </button>
</form>

POST 表单,并使用 Sessions 确保您在重新加载后仍有可用的先前变量。

有用的阅读:

PHP 会话: https://www.php.net/manual/en/reserved.variables.session.php

PHP 会话开始: https://www.php.net/manual/en/function.session-start.php

根据维基百科:

GET 请求指定资源的表示。请注意,获取 不应用于会导致副作用的操作,例如 使用它在 Web 应用程序中执行操作。原因之一 是 GET 可能被机器人或爬虫任意使用,这 应该不需要考虑请求应该产生的副作用 原因。

POST 将要处理的数据(例如,从 HTML 表单)提交到 确定的资源。数据包含在请求的正文中。 这可能会导致创建新资源或更新 现有资源或两者兼有。

【讨论】:

  • 为什么要改成POST?
  • 当您发布数据时,而不是获取数据。您正在提交要使用的数据:stackoverflow.com/questions/3477333/…
  • 但是在这种情况下使用GET不管它是否有效都是不正确的。
  • 但这仍然是不正确和不好的做法,所以我们鼓励好的做法怎么样?
  • “POST 提交要处理的数据(例如,来自 HTML 表单)”......我不是决定这些事情的人。
猜你喜欢
  • 2017-01-24
  • 2013-07-03
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多