PHP 中如何將變數傳遞到下一頁

Ralfh Bryan Perez 2023年1月30日
  1. 通過 HTML 表單使用 GETPOST 來傳遞 PHP 變數
  2. 使用 sessioncookie 來傳遞 PHP 變數
PHP 中如何將變數傳遞到下一頁

PHP 變數是等於某一值的符號或名稱。它用於儲存值,例如值,數字,字元或記憶體地址,以便可以在程式的任何部分中使用它們。一個簡單的變數可以在程式的任何部分中使用,但是在它的外部無法訪問,除非它通過 HTML 形式的 GETPOSTsessioncookie 來傳遞它。

通過 HTML 表單使用 GETPOST 來傳遞 PHP 變數

HTML 表單是 PHP 最強大的功能之一。任何表單元素將自動可用於表單的 action 目標。

POST 請求

<form action="nextPage.php" method="POST">
    <input type="text" name="email">
    <input type="text" name="username">
    <input type="submit" name="submit">
</form>

獲取資料到 nextPage.php

$username = isset($_POST['username']) ? $_POST['username'] : "";
$email       = isset($_POST['email']) ? $_POST['email'] : "";
echo "Username: ".$username;
echo "Email: ".$email;

指令碼的示例輸出:

Username: johndoe
Email: johndoe@gmail.com

上面的示例顯示瞭如何通過 HTML 表單使用 POST 傳遞變數。表單元素需要具有 actionmethod 屬性。action 包含下一頁,在本例中為 nextPage.php。方法可以是 POSTGET。然後,你可以使用 $_POST$_GET 訪問 nextPage.php 中的元素。

GET 請求

<?php
$phpVariable = "Dog";
?>
<a href="nextPage.php?data=<?=$phpVariable?>">Bring me to nextPage</a>

這個例子將建立一個 GET 變數,可以在 nextPage.php 中訪問。

例子:

echo $phpVariable = $_GET['phpVariable'];
//output: Dog

可以使用 $_GET 訪問 GET

另一種方法是在 HTML 表單中新增一個隱藏元素,該元素會提交到下一頁。

例子:

<form action="nextPage.php" method="POST">
    <input type="hidden" name="phpVariable" value="Dog">
    <input type="submit" name="submit">
</form>

nextPage.php

//Using POST
$phpVariable = $_POST['phpVariable'];
//Using GET
$phpVariable = $_GET['phpVariable'];
//Using GET, POST or COOKIE;
$phpVariable = $_REQUEST['phpVariable'];

你可以將方法從 POST 更改為 GET,以使用 GET 請求。POSTGET 對於自動流量來說是不安全的,而且 GET 可以通過前端使用,因此更容易被黑客入侵。

$_REQUEST 可以接受 GETPOSTCOOKIE。最好在自引用形式上使用 $_REQUEST 來進行驗證。

sessioncookie 更易於使用,但 session 比 cookie 更為安全,雖然它並不是完全安全。

session:

//page 1
$phpVariable = "Dog";
$_SESSION['animal'] = $phpVariable;

//page 2
$value = $_SESSION['animal'];
注意
使用 session 時,要記住在訪問 $_SESSION 陣列之前在兩個頁面上都新增 session_start()
//page 1
$phpVariable = "Dog";
$_COOKIE['animal'] = $phpVariable;

//page 2
$value = $_COOKIE['animal'];

cookiesession 之間最明顯的區別是,session 將儲存在伺服器端,而 cookie 將客戶端作為儲存端。

相關文章 - PHP Variable