使用PHP会话

使用PHP会话,php,Php,我刚刚开发了一个用户登录系统,希望为不同的用户创建不同的会话 如何用PHP编写代码,使其启动会话,如果输入的用户名是“a”,它将重定向到另一个页面,如果用户名是“b”,它将重定向到另一个页面 更新: 我用过这个 session_start(); switch ($_SESSION['username']) { case 'a': // $_SESSION['username'] is 'a' // redirect to file1.php

我刚刚开发了一个用户登录系统,希望为不同的用户创建不同的会话

如何用PHP编写代码,使其启动会话,如果输入的用户名是“a”,它将重定向到另一个页面,如果用户名是“b”,它将重定向到另一个页面

更新: 我用过这个

session_start();

switch ($_SESSION['username']) {
    case 'a':
        // $_SESSION['username'] is 'a'
        // redirect to file1.php
        header('Location: file1.php');
        die();
        break;
    case 'b':
        // $_SESSION['username'] is 'b'
        // redirect to file2.php
        header('Location: file2.php');
        die();
        break;
    default:
        // $_SESSION['username'] is neither a, nor b, or is not set at all
        // redirect to default.php
        header('Location: default.php');
        die();
        break;
}

但无论我输入什么用户名,它都会将我带到file1.php

只需使用以下内容启动php会话:

session_start();

// ...

if ($_SESSION['username'] == 'a') {
    header("Location: ./page_a");
} else if ($_SESSION['username'] == 'b') {
    header("Location: ./page_b");
} else {
    header("Location: ./otherpage");
}
session_start() ;
然后,在登录时,将登录用户的id保存到:

$_SESSION['currentuser'] = $userid ;
注销时,不要忘记:

unset($_SESSION['currentuser']) ;
在要对每个用户显示不同内容的页面上,选中
$\u SESSION['currentuser']
,然后重定向:

if($_SESSION['currentuser'] == 1) {
    Header("Location:/page1.php") ;
} else {
    Header("Location:/page_default.php") ;
}
exit ;

只需使用以下命令启动php会话:

session_start() ;
然后,在登录时,将登录用户的id保存到:

$_SESSION['currentuser'] = $userid ;
注销时,不要忘记:

unset($_SESSION['currentuser']) ;
在要对每个用户显示不同内容的页面上,选中
$\u SESSION['currentuser']
,然后重定向:

if($_SESSION['currentuser'] == 1) {
    Header("Location:/page1.php") ;
} else {
    Header("Location:/page_default.php") ;
}
exit ;

您可能需要阅读上的PHP.net文档

基本上,每个页面都将以
session\u start()
启动PHP会话。之后,您可以访问全局
$\u会话[]
数组,您可以使用该数组存储和读取数据

例如,您可以在登录过程中将用户名存储在会话中:

$_SESSION['username'] = 'a';
然后,在其他页面中,您将阅读会话用户名,找出用户名并进行适当处理:

if (isset($_SESSION['username']))
{
    header("Location: newlocation.php");
}

您可能需要阅读上的PHP.net文档

基本上,每个页面都将以
session\u start()
启动PHP会话。之后,您可以访问全局
$\u会话[]
数组,您可以使用该数组存储和读取数据

例如,您可以在登录过程中将用户名存储在会话中:

$_SESSION['username'] = 'a';
然后,在其他页面中,您将阅读会话用户名,找出用户名并进行适当处理:

if (isset($_SESSION['username']))
{
    header("Location: newlocation.php");
}

所有PHP页面都应以以下内容开头:

<?php
session_start();
因此,当您处理登录时,您可能会为username或userid设置一个会话变量,然后您可以处理该重定向:

if (isset($_SESSION['userName']) && $_SESSION['userName'] == "a") {
    header("Location: pageA.php");
    exit();
} else if (isset($_SESSION['userName']) && $_SESSION['userName'] == "b") {
    header("Location: pageB.php");
    exit();
}

所有PHP页面都应以以下内容开头:

<?php
session_start();
因此,当您处理登录时,您可能会为username或userid设置一个会话变量,然后您可以处理该重定向:

if (isset($_SESSION['userName']) && $_SESSION['userName'] == "a") {
    header("Location: pageA.php");
    exit();
} else if (isset($_SESSION['userName']) && $_SESSION['userName'] == "b") {
    header("Location: pageB.php");
    exit();
}
使用
switch()
而不是if语句:

session_start();

switch ($_SESSION['username'])
{
    case 'a':
        // $_SESSION['username'] is 'a'
        // redirect to file1.php
        header('Location: file1.php');
        die();
        break;
    case 'b':
        // $_SESSION['username'] is 'b'
        // redirect to file2.php
        header('Location: file2.php');
        die();
        break;
    default:
        // $_SESSION['username'] is neither a, nor b, or is not set at all
        // redirect to default.php
        header('Location: default.php');
        die();
        break;
}
请注意,仅此一点还不足以确保安全。在file1.php和file2.php中,在显示页面内容之前,还必须调用
session\u start()
,并执行类似的检查,确保允许用户查看此页面。

使用
switch()
而不是if语句:

session_start();

switch ($_SESSION['username'])
{
    case 'a':
        // $_SESSION['username'] is 'a'
        // redirect to file1.php
        header('Location: file1.php');
        die();
        break;
    case 'b':
        // $_SESSION['username'] is 'b'
        // redirect to file2.php
        header('Location: file2.php');
        die();
        break;
    default:
        // $_SESSION['username'] is neither a, nor b, or is not set at all
        // redirect to default.php
        header('Location: default.php');
        die();
        break;
}

请注意,仅此一点还不足以确保安全。在file1.php和file2.php中,您还必须调用
session_start()
,并在显示页面内容之前执行类似的检查,确保允许用户查看此页面。

就像quantumSoup的代码一样,但他犯了一个简单的错误,请使用以下命令:

会话_start()

//

如果($\会话['username']=='a'){ 页眉(“位置:./page_a”); }else if($\会话['username']=='b'){ 标题(“位置:./page_b”); }否则{ 标题(“位置:./otherpage”);
}

就像quantumSoup的代码一样,但他犯了一个简单的错误,请使用以下命令:

会话_start()

//

如果($\会话['username']=='a'){ 页眉(“位置:./page_a”); }else if($\会话['username']=='b'){ 标题(“位置:./page_b”); }否则{ 标题(“位置:./otherpage”);
}

使用“代码”按钮标记代码时更容易阅读。我似乎无法使用它,我按下它,它不会给代码上色。使用“代码”按钮标记代码时更容易阅读。我似乎无法使用它,我按下它,它不会给代码上色。开关很好,但只有在我看来他需要超过2个不同的页面时,你才需要写更多的代码嘿,我用了这个,但不管我输入什么用户名,它都会把我带到file1.php。你能帮帮我吗?谢谢。@Sarthak-您如何设置用户名?可以看到一个代码片段!我正在使用session_start();switch($\u SESSION['username']){case'sarthak://$\u SESSION['username']是'a'//重定向到file1.php头('Location:file1.php');die();break;case'great'://$\u SESSION['username']是'b'//重定向到file2.php头('Location:file2.php');die();break;default://$_SESSION['username']既不是a,也不是b,或者根本没有设置//重定向到default.php头('Location:default.php');die();break;}其中sarthak和great是用户名。切换很好,但只有在我看来他需要超过2个不同的页面时,你才需要写更多的代码嘿,我用了这个,但不管我输入什么用户名,它都会把我带到file1.php。你能帮帮我吗?谢谢。@Sarthak-您如何设置用户名?可以看到一个代码片段!我正在使用session_start();switch($\u SESSION['username']){case'sarthak://$\u SESSION['username']是'a'//重定向到file1.php头('Location:file1.php');die();break;case'great'://$\u SESSION['username']是'b'//重定向到file2.php头('Location:file2.php');die();break;default://$_SESSION['username']既不是a,也不是b,或者根本没有设置//重定向到default.php头('Location:default.php');die();break;}其中sarthak和great是用户名。您是否只想将某些用户重定向到其他页面,因为如果要将他们发送到他们的配置文件页面(例如),您最好使用$\u GET参数(在url中),您只是想将他们重定向到其他页面,因为如果要将他们发送到他们的配置文件页面(例如),您最好使用