如何在多个页面之间共享PHP变量?

时间:2014-08-14 19:33:45

标签: php html forms login

想法/目标:

我的计算机上的文本文件中有用户名和密码。索引页面上的表单允许用户使用其用户名和密码登录。登录页面是PHP用于验证用户输入的信息的地方,其中包含我在本地文本文件中的信息。在用户输入的信息与我的文本文件信息匹配后,用户将被重定向到主页,其中显示他们的姓名,并带有欢迎消息。

问题:

在验证工作之前的所有内容。问题是,当我将用户重定向到Home.php时,我无法显示其用户名。在完成所有验证后,我将如何显示其用户名?无论如何,我可以永久地将他们的用户名存储在一个可以在我的所有页面上访问的变量中吗?

The Index.php page with the form

The login page that validates the form info with the info i have on my local text file

5 个答案:

答案 0 :(得分:4)

使用$_SESSION - !

session_start();
$_SESSION['username'] = $_POST['username'];

您当然希望过滤/清理/验证您的$ _POST数据,但这超出了此问题的范围......

只要在使用session_start();之前致电$_SESSION - $_SESSION数组中的值将在页面中保留,直到用户关闭浏览器为止。

如果你想在此之前结束会话,就像在退出按钮中一样---使用session_destroy()

答案 1 :(得分:1)

您可以启动会话并将表单值放入$ _SESSION变量中,该变量将在所有页面上提供。

// On the page where your form is submitted:
session_start();
$_SESSION['name'] = $_POST['name'];

// On the page where the user is redirected:
session_start();
echo $_SESSION['name'];

请注意,实际上您可能还想要包含一些表单验证!

答案 2 :(得分:0)

我同意@ClémentMalet& @Hammerstein。会话和/或cookie。

<?php 
    // always need this
    session_start();

    // set the value
    $_SESSION['username'] = 'Person';
?>

<?php
    //get session data
    echo $_SESSION['username'];

   // output: Person
?>

答案 3 :(得分:0)

  1. 在打开php标签后立即在每个页面上启动一个php会话:

    在session_start();

  2. 确定名称和密码后,在执行重定向之前,请添加以下行:

    $ _ SESSION [&#39; name&#39;] = $ name;

    在任何后续页面上,只需回显如下内容:

    echo "Welcome ".$_SESSION['name'];
    

答案 4 :(得分:-1)

使用会话变量

组:

session_start();
$_SESSION['username'] = "user1";

得到:

session_start();
$username = $_SESSION['username'];