通过PHP中的许多页面维护变量的值,没有COOKIES,SESSIONS

时间:2016-12-26 17:55:04

标签: php variables

我在通过几个页面维护变量值时遇到了问题(实际上是通过同一页面但通过多次刷新) 第一次导航到新页面时,变量的值被保留并且可以被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>

3 个答案:

答案 0 :(得分:2)

HTTP是无状态的。当用户发出请求时,将填充$_POST数组。如果您想要访问网络视图中的值,请阅读setcookiesessions

如果您不想使用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