PHP - 存储用于静态重用的输入变量

时间:2015-06-24 23:25:48

标签: php

有一些输入,还有一个功能。该功能需要这些输入,输入是用户给定的。但是,触发功能和输入提交表单的按钮是两个不同的按钮。因此,当用户按下" submit"为了存储他的变量,变量存储得很好。但是,当他按下"计算"按钮(触发功能),php说" undefined index"因为它一次又一次地读取该输入的$ _POST

如果我停用register_globals,则不会显示' undefined index'但这些值再次为0。

如果我使用另一个文件来存储这些值,然后重定向回到功能按钮所在的页面,则会有一个重定向循环,require_once不起作用。

以这样的方式存储输入的方式是什么?它们可以在函数中一次又一次地使用?没有数据库,我需要一种方法将它们存储在变量中。

编辑:表单:<label for="asdf">enter value:</label> <input type="text" id="asdf" name="asdf" value="<?php echo $asdf;?>" />

存储值: $ ASDF = $ _ POST [&#39; ASDF&#39;];

然后我需要在函数中使用用户通过html表单提供的更新值来编写$ asdf。怎么做?不能简单得多

2 个答案:

答案 0 :(得分:1)

我会将它们存储在会话中。他们这样,他们可以跨PHP脚本使用,但不会长期存储。这是一个例子:

form.php的

<?php
    session_start();
?>

<html>
<body>

<form action="store.php">
    <input type="text" name="x" value="<?php echo $_SESSION['x'] ?>">
    <input type="text" name="y" value="<?php echo $_SESSION['y'] ?>">
    <input type="submit" value="Submit">
</form>


<form action="calculate.php">
    <input type="submit" value="Submit">
</form>

</body>
</html>

store.php

<?php
  // Start the session
  session_start();
  $_SESSION["x"] = $_POST['x']; // substitute your input here
  $_SESSION["y"] = $_POST['y']; // substitute your input here
?>

calculate.php

<?php
  // Start the session
  session_start();
  $result = $_SESSION["x"] * $_SESSION["y"];
  echo $result;
?>

答案 1 :(得分:0)

无法将它们存储在变量中。对您的服务器的每个请求都是一个新请求。 您可以将变量存储在cookie /会话中,或者在按下第一个按钮后将它们存回,并将它们存储在html表单的隐藏字段中。或者将它们存储在服务器上的文件中。