首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP Session 實戰應用:股票投資組合追蹤系統

     編輯:PHP 相關知識

情境描述

金融入口網站允許使用者選擇四檔股票,跨頁面保存選擇並即時顯示最新價格。使用 Session 儲存使用者名稱與股票代碼,配合 MySQL 讀取偏好設定。

完整程式碼

<?php
session_start();

// 註冊 Session 變數(PHP 4 風格,新版直接用 $_SESSION)
$username = $_SESSION['username'] ?? 'Guest';
$stocks   = ['stock1', 'stock2', 'stock3', 'stock4'];
foreach ($stocks as $s) { if (!isset($_SESSION[$s])) $_SESSION[$s] = ''; }

// 連線資料庫
$db = mysqli_connect("localhost", "user", "pass", "stock_db");
if (!$db) die("連線失敗: " . mysqli_connect_error());

// 讀取使用者偏好
$query = "SELECT stock_pref1, stock_pref2, stock_pref3, stock_pref4
          FROM user_info WHERE username = ?";
$stmt = mysqli_prepare($db, $query);
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $s1, $s2, $s3, $s4);
if (mysqli_stmt_fetch($stmt)) {
    $_SESSION['stock1'] = $s1;
    $_SESSION['stock2'] = $s2;
    $_SESSION['stock3'] = $s3;
    $_SESSION['stock4'] = $s4;
}
mysqli_stmt_close($stmt);

// 模擬即時股價 API(實際應串接金融 API)
function getPrice($symbol) { return rand(100, 500) / 10; }
?>
<!DOCTYPE html>
<html><head><title>我的投資組合</title></head><body>
<h1>歡迎,<?= htmlspecialchars($username) ?></h1>
<h2>您關注的股票</h2>
<table border="1" cellpadding="5">
    <tr><th>代碼</th><th>即時價格</th></tr>
    <?php foreach ($stocks as $s): ?>
    <tr>
        <td><?= $_SESSION[$s] ?></td>
        <td><?= getPrice($_SESSION[$s]) ?></td>
    </tr>
    <?php endforeach; ?>
</table>
<p><a href="logout.php">登出</a></p>
</body></html>

Session 相關函式速查

函式說明
session_start()啟動或恢復 Session
session_destroy()銷毀所有 Session 資料(登出用)
session_name()取得/設定 Session 名稱(預設 PHPSESSID)
session_id()取得/設定目前 Session ID
session_unregister()註銷單一變數(PHP 4,新版用 unset($_SESSION['var']))
session_is_registered()檢查變數是否已註冊(PHP 4,新版用 isset($_SESSION['var']))
session_encode()將 Session 資料編碼為字串
session_decode()將字串解碼還原 Session 資料

無 Cookie 環境下的 Session 傳遞

若瀏覽器禁用 Cookie,需在所有連結/表單手動帶入 Session ID:

<a href="preferences.php?<?= session_name() ?>=<?= session_id() ?>">編輯投資組合</a>

或啟用 session.use_trans_sid = 1(PHP 會自動重寫 URL),但需注意安全性。

Session 編碼解碼範例

<?php
session_start();
$_SESSION['someString'] = "I hate cats!";
$sessStr = session_encode(); // 輸出:someString|s:12:"I hate cats!";
$sessStr = str_replace("cats", "dogs", $sessStr);
session_decode($sessStr);
echo $_SESSION['someString']; // I hate dogs!
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved