有一些输入,还有一个函数。该功能需要这些输入,并且这些输入是用户给定的。但是,启动该功能的按钮和输入提交表单是两个不同的按钮。因此,当用户按下"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['asdf'];
然后我需要用用户通过html表单给出的更新值在函数中写入$asdf。如何做到这一点?再简单不过了
我会将它们存储在会话中。这样,它们可以跨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;
?>
没有办法将它们存储在变量中。对服务器的每个请求都是一个新请求。您可以将变量存储在cookie/会话中,或者在按下第一个按钮后将其返回,并将其存储在html表单的隐藏字段中。或者将其存储到服务器上的文件中。