很抱歉,如果我在这里复制线程,但我无法在StackOverflow上的任何其他地方找到答案。
基本上我要做的是制作一个列表,其中可以保留用户在表单中输入的变量。目前,我有代码使这成为可能,并且功能正常,但是在用户点击提交后,表单中输入的变量只出现在列表中...一旦刷新页面或从某处转到页面否则,变量就会消失。有什么方法可以阻止这种情况发生吗?
编辑:以下是代码:
//Page 1
<?php
session_start();
$entries = array(
0 => $_POST['signup_username'],
1 => $_POST['signup_email'],
2 => $_POST['signup_city']);
$entries_unique = array_unique($entries);
$entries_unique_values = array_values($entries_unique);
echo "<a href='Page 2'>Link</a>";
$_SESSION['entries_unique_values'] = $entries_unique_values;
?>
//Page2
<?php
session_start();
$entries_unique_values = $_SESSION['entries_unique_values'];
foreach($entries_unique_values as $key => $value) {
$ValueReplace = $value;
echo "<br /><a href='http://example.com/members/?s=$ValueReplace'>" . $value . "</a><br/>";
}
?>
答案 0 :(得分:0)
使用PHP会话或通过JS或使用PHP在Cookies中存储变量值。如果你展示你的工作代码会很好:)
答案 1 :(得分:0)
您的想法很好,但是您只需要为Page 1
添加一些条件,只在SESSION
制作时设置POST
值,这样就可以保留值即使你刷新。否则,当您访问没有POST
的页面时,这些值将被空值覆盖,这就是您现在所看到的。您可以像
<?php
session_start();
if(isset($_POST["signup_username"]))
{
$entries = array(
0 => $_POST['signup_username'],
1 => $_POST['signup_email'],
2 => $_POST['signup_city']);
$entries_unique = array_unique($entries);
$entries_unique_values = array_values($entries_unique);
$_SESSION['entries_unique_values'] = $entries_unique_values;
}
echo "<a href='http://localhost/Calculator/form2.1.php'>Link</a>";
?>
答案 2 :(得分:0)
你的问题非常模糊。答案取决于你需要存储多少数据,以及你需要多长时间才能存储。
通过变量,我假设您指的是用户输入的数据以及您想要放入变量的数据。 我还假设变量列表是在提交表单时由php创建的。
Php只会在提交表单时创建变量列表,因为php完全在服务器上完成,因此在提交表单之前,您将不会拥有或看到变量。
如果您希望能够在创建列表时看到列表,则可以使用javascript,然后一旦您拥有php变量,javascript列表就不是必需的。
每次你请求一个php页面时它都是相同的,服务器会生成一个全新的页面,这意味着以前页面中的所有未加密编码的变量都会丢失,除非你不断在页面周围发布变量,服务器将没有记住他们。
你有一些可行的选择。
2.)启动会话并将变量存储在会话中。如果用户连接到站点时只需要数据,那就太好了。如果用户关闭窗口或一段时间后会丢失。
3.)放置一个cookie。不是一个好主意,但对简单数据来说还不错。
4。)创建一个mysql数据库并在其中删除变量信息。非常适合永久数据。这就是我总是如何复杂的用户数据。
只有一些想法可供你研究,因为很难看出你的意思。祝你好运。
答案 3 :(得分:0)
您可以使用JavaScript和HTML5本地存储。