HTML / HTTP นั้นไร้สัญชาติกล่าวอีกอย่างคือสิ่งที่คุณทำ / เห็นในหน้าก่อนหน้านั้นไม่มีการเชื่อมต่อกับหน้าปัจจุบันอย่างสมบูรณ์ ยกเว้นถ้าคุณใช้สิ่งต่าง ๆ เช่นเซสชันคุกกี้หรือตัวแปร GET / POST เซสชั่นและคุกกี้ค่อนข้างใช้งานง่ายโดยเซสชันมีความปลอดภัยมากกว่าคุกกี้ ปลอดภัยยิ่งขึ้น แต่ไม่ปลอดภัยอย่างสมบูรณ์
เซสชั่น:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
อย่าลืมเรียกใช้session_start();
คำสั่งบนหน้าทั้งสองเหล่านี้ก่อนที่คุณจะพยายามเข้าถึง$_SESSION
อาร์เรย์และก่อนที่ผลลัพธ์ใด ๆ จะถูกส่งไปยังเบราว์เซอร์
คุกกี้:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
ความแตกต่างที่สำคัญระหว่างเซสชันและคุกกี้คือค่าของตัวแปรจะถูกเก็บไว้บนเซิร์ฟเวอร์หากคุณใช้เซสชันและบนไคลเอนต์หากคุณใช้คุกกี้ ฉันไม่สามารถนึกถึงเหตุผลที่ดีในการใช้คุกกี้แทนเซสชันยกเว้นว่าคุณต้องการให้ข้อมูลคงอยู่ระหว่างเซสชัน แต่ก็อาจจะดีกว่าที่จะเก็บไว้ในฐานข้อมูลและดึงข้อมูลโดยใช้ชื่อผู้ใช้หรือรหัส
รับและโพสต์
คุณสามารถเพิ่มตัวแปรในลิงค์ไปยังหน้าถัดไป:
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
สิ่งนี้จะสร้างตัวแปร GET
อีกวิธีคือการรวมเขตข้อมูลที่ซ่อนอยู่ในแบบฟอร์มที่ส่งไปยังหน้าสอง:
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
จากนั้นในหน้าสอง:
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
เพียงเปลี่ยนวิธีสำหรับแบบฟอร์มเป็นpost
หากคุณต้องการทำผ่านโพสต์ ทั้งสองอย่างไม่ปลอดภัยเท่ากันแม้ว่า GET จะง่ายต่อการแฮ็ก
ความจริงที่ว่าคำขอใหม่แต่ละคำขอยกเว้นข้อมูลเซสชันเป็นตัวอย่างใหม่ทั้งหมดของสคริปต์ที่จับฉันเมื่อฉันเริ่มเขียนโค้ดใน PHP เป็นครั้งแรก เมื่อคุณคุ้นเคยกับมันแล้วมันค่อนข้างง่าย