[PHP] ส่งค่าจาก form ไปแล้วได้ค่าว่างครับ
พอดีผมส่งค่าจากฟอร์มไปแล้วมันเป็นค่าว่าง ครับ
นี่เป็นตัวอย่างโค้ด ครับ
form.php
<html>
<head>
<form name="form1" method="post" action="form2.php">
ชื่อ
<input type="text" name="name">
<br>
นามสกุล
<input type="text" name="surname">
<br>
<br>
<input type="submit" value="Submit">
<input type="reset"value="Reset">
</form>
</body>
</html>
form2.php
<html>
<body>
ชื่อ<? echo"$name" ?>
นามสกุล<? echo "$surname" ?>
<?
if($name=='')
{
echo "<br>name is NULL";
}if($surname==''){
echo"<br>surname is NULL";
}
?>
</body>
</html>
แล้ว ผลลัพออกมา
ชื่อ นามสกุล
name is NULL
surname is NULL
เลยสงสัยว่าทำไมมันถึงเป็นค่าว่างครับ แล้วมีวิธีแก้ปัญหายังไงครับ
ขอบคุณล่วงหน้าครับ
ฟอร์มต้องรับค่าด้วย $_POST หรือ $_GET ครับ
ในปัจจุบันการรับค่าด้วย ตัวแปรตรงๆ คงเหลือไม่กี่ server แล้ว ดังนั้นเพื่อความปลอดภัยควรใช้การรัยค่าด้วย $_POST หรือ $_GET แทน
ส่วนจะใช้ตัวแปรไหนรับก็ดูที่ method ของ ฟอร์ม ครับ
รายละเอียดเกี่ยวกับฟอร์ม ลองคลิกที่ Form ใน Category ซ้ายมือ หรืออาจไปหาอ่านเองต้นได้ที่ thaicreate.com ครับ
ขอบคุณมากครับ เดี๋ยวจะลองศึกษาดูอีกทีครับ
ได้นี้ คือได้ค่าที่กรอกไปโชว์ขึ้นมาเลยเหรอครับ ถ้าได้แล้วมันปิดตรงไหนหว่าทำไมของผมไม่ขึ้น Apaceเหมือนกันครับ
========================================
form1.php
<form name="form1" method="post" action="form2.php">
<input type="text" name="name">
<input type="text" name="surname">
<input type="submit" value="Submit">
</form>
========================================
========================================
form2.php
วิธีการรับค่านะครับแล้วรู้ได้ยังไงว่า GET หรือ POST
<form name="form1" method="post" action="form2.php"> ให้ดูที่ method หนะครับของ form1.php ถ้า post ก็ต้องรับค่าด้วย post ถ้า get ก้รับด้วย get หนะครับ
การส่งค่าด้วย get จะเป็นการ ส่งค่า ผ่าน QueryString หนะครับ อย่างเช่น
http://localhost/...surname=valueSurname
ตั้งแต่ ?name=valueName&surname=valueSurname คือค่า QueryString นะครับ แต่ไม่สมควรส่งค่า Username Password เรียกว่าสิ่งสำคัญเกี่ยวกับด้านความปลอดภัยทุกๆอย่างนะครับ เพราะค่า querystring จะถูกเก็บไว้ในเครื่องคอมพิวเตอร์เครื่องนั้นซึ่ง ลองนึกว่า เวลาใช้ เว๊บอย่าง google ก็ได้ครับ เวลาพิมพ์ www.google.com แล้วจะพบค่า querystring อื่นๆ ซึ่งถ้าคนอื่นมาใช้ไม่ใช่เจ้าของเครื่อง แล้วถ้ามีพื้นฐานการเขียนโปรแกรมด้วยแล้วไม่ต้องห่วงครับโดยขโมยแน่ๆครับ ขอโทษทีนะครับยาวไปหน่อยมาดูต่อเลยครับ
แต่ในกรณีคุณส่งเป็น post นะครับก็ต้องรับด้วย post เช่น
<?php
$name = $_POST['name'];
$surname = $_POST['surname'];
echo $name . "<br>";
echo $surname;
?>
เท่านี้แหละครับก็ได้แล้ว แล้วจะเอาตัวไป อะไรก็เชิญตามสบายเลยครับ
เพิ่มเติม อีกนิดนะครับ ในค่าของ POST จะรู้ได้ไงว่าจะต้องใส่อะไร
$name = $_POST['name']; ค่า name สีแดงหนะครับ ก็เอามาจาก ชื่อ ของ textbox ในหน้า form1.php
ตัวแปรจะตั้งชื่อยังไงก็ตามสบายครับไม่จำเป็นจะต้องเป็น
$name = $_POST['name']; เสมอไป
========================================
ถ้าไม่เข้าใจก็ถามไว้หนะครับเดียวช่วยพี่ Goragod ตอบเท่าที่ตอบได้หนะครับ