GORAGOD.com

freelance, web developer, web designer, hosting, domain name

[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


เลยสงสัยว่าทำไมมันถึงเป็นค่าว่างครับ แล้วมีวิธีแก้ปัญหายังไงครับ


ขอบคุณล่วงหน้าครับ
07 พ.ย. 2551 6 28,027

สงสัยต้องไปเรียนเรื่องฟอร์มใหม่แล้ว

ฟอร์มต้องรับค่าด้วย $_POST หรือ $_GET ครับ

ในปัจจุบันการรับค่าด้วย ตัวแปรตรงๆ คงเหลือไม่กี่ server แล้ว ดังนั้นเพื่อความปลอดภัยควรใช้การรัยค่าด้วย $_POST หรือ $_GET แทน

ส่วนจะใช้ตัวแปรไหนรับก็ดูที่ method ของ ฟอร์ม ครับ

รายละเอียดเกี่ยวกับฟอร์ม ลองคลิกที่ Form ใน Category ซ้ายมือ หรืออาจไปหาอ่านเองต้นได้ที่ thaicreate.com ครับ
#1

ขอบคุณมากครับ เดี๋ยวจะลองศึกษาดูอีกทีครับ

#2

ผมลองดูมันก็เหมือนจะได้นะครับ ผมก็เลยลองก๊อปเอาไปทำ ก็ได้จริงๆ ผมรันเครื่อง Server ด้วย Apace อะครับ
#3

ได้นี้ คือได้ค่าที่กรอกไปโชว์ขึ้นมาเลยเหรอครับ ถ้าได้แล้วมันปิดตรงไหนหว่าทำไมของผมไม่ขึ้น Apaceเหมือนกันครับ

#4

ช่วยตอบเพิ่มเติมนะครับ วิธีการใช้นะครับอย่างเช่น ชื่อ TextBox ที่คุณตั้งนะครับ คือ
========================================
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 ตอบเท่าที่ตอบได้หนะครับ
#5

ได้เระครับ ยำๆ มั่วๆ แก้ๆ ดูของคนอื่นบ้างปรับไปปรับมาได้เระครับ ขอขอบคุณทุกความคิดเห็นนะครับที่ช่วยให้ความรู้คร๊าบบบบ
#6
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^