我在通过几个页面维护变量值时遇到了问题(实际上是通过同一页面但通过多次刷新)
第一次导航到新页面时,变量的值被保留并且可以被echo使用,但是在刷新页面后该值无法重用时,它会显示变量没有值的错误。
我正在制作一个用于在php聊天的webapp
我想在每个页面(发送消息的每一页)上显示用户(发件人)的名称。所以我正在使用代码
<?php
$writtervar = $_POST['writter'];
echo $writtervar;
?>
我通过单独的页面进行输入,代码是
<form action="ddd.php" method="post">
Enter your name <input type="text" name="writter" >
<input type="submit" id="submit" value="Press" >
</form>
答案 0 :(得分:2)
HTTP是无状态的。当用户发出请求时,将填充$_POST
数组。如果您想要访问网络视图中的值,请阅读setcookie或sessions。
如果您不想使用cookie,则需要在每次请求时重新发送参数(可能会以某种方式模糊)。或者在每个请求上发送一个标识符来保存您的信息服务器(无论如何你都可以使用php会话)。但这样做既不方便也不安全。
答案 1 :(得分:1)
您可以使用会话。根据您的代码,您可以尝试这样做: 在开始页面(ddd.php)中,您必须设置会话值。
<?php
session_start();
$_SESSION["writer"] = $_POST["writter"];
?>
...
在其他页面中使用您的会话值,例如:
<?php
session_start();
...
echo $_SESSION["writer"];
?>
请注意取消设置并销毁您的会话结束时。
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
答案 2 :(得分:0)
您可以设置Cookie
SetColor
并获取值:
$value = 'something from somewhere';
setcookie("TestCookie", $value);
您还可以使用会话:
echo $_COOKIE["TestCookie"];
您最好使用像Laravel这样的框架来帮助您处理会话,表单,重定向值等。
您可以在php.net上找到documentation