簡體   English   中英

使用PHP會話

[英]Working with PHP Sessions

我剛剛開發了一個用戶登錄系統,並希望為不同的用戶創建不同的會話。

如何使用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

session_start();

// ...

if ($_SESSION['username'] == 'a') {
    header("Location: ./page_a");
} else if ($_SESSION['username'] == 'b') {
    header("Location: ./page_b");
} else {
    header("Location: ./otherpage");
}

只需通過以下方式開始php會話:

session_start() ;

然后,在登錄時,將登錄用戶的ID保存到:

$_SESSION['currentuser'] = $userid ;

注銷時,請不要忘記:

unset($_SESSION['currentuser']) ;

在您要針對每個用戶顯示的頁面上,檢查$_SESSION['currentuser'] ,然后重定向:

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

您所有的PHP頁面均應以以下內容開頭:

<?php
session_start();

您將像這樣設置會話變量:

$_SESSION['myVariableName'] = 'myIntendedValue';

因此,在處理登錄時,您可能會為用戶名或用戶ID設置一個會話變量,然后可以處理該重定向:

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_start()並執行類似的檢查,以允許用戶查看此頁面,然后再顯示頁面內容。

session_start();
if($_SESSION['username'] == 'a')
   header('Location: pageA.php');
else
   header('Location: pageB.php');

您可能需要閱讀session_start()上的PHP.net文檔。

基本上,每個頁面都將從session_start()開始以啟動PHP會話。 之后,您可以訪問全局$_SESSION[]數組,可用於存儲和讀取數據。

例如,您可以在登錄過程中將用戶名存儲在會話中:

$_SESSION['username'] = 'a';

然后,在其他頁面中,您將讀取會話用戶名,找出用戶名並進行適當的處​​理:

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

就像quantumSoup的代碼一樣,但是他犯了一個簡單的錯誤,請使用以下代碼:

在session_start();

// ...

if($ _SESSION ['username'] =='a'){header(“ Location:./ page_a”); }否則if($ _SESSION ['username'] =='b'){header(“ Location:./page_b”); } else {header(“ Location:./ otherpage”); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM