|
|
|
ถามเรื่องการส่งค่าแบบ POST ค่ะ การส่งค่าแบบ POST ปกติเราจะทำแบบนี้คือ |
|
|
|
|
|
|
|
ใช้ทำกับโปรเจคเลยแบบนี้ทั้งหมดกะทัดรัดดีฮะ
Code (PHP)
$sql = "SELECT * FROM student WHERE stu_id='$_POST[stu_id]' ";
|
|
|
|
|
Date :
2010-04-24 12:06:08 |
By :
icute |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ใช่แบบนี้นะ
ส่งค่าจาก form หน่ะค่ะ
อย่างเช่น
<form method="post">
<input type="text" name="name" />
</form>
เวลาจะรับค่าจาก textbox ปกติเราก้ทำแบบนี้
$name=$_POST['name'];
แต่ที่อยากรู้ก็คือถ้าเราไม่ต้องกำหนด $name=$_POST['name']; เราจะใช้วิธีใช้ใหนต้องไปกำหนดค่าอะไรตรงใหน
ให้มัน่สงค่า $_POST['name'] มาอยู่ในตัวแปร $name
|
|
|
|
|
Date :
2010-04-24 17:01:25 |
By :
Avrill |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่แบบนี้เปล่า
Code (PHP)
<form name="frmSearch" method="get" action="<?=$_SERVER['REQUEST_URI']?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
ไม่ต้องกำหนดอย่างที่ว่าด้วย
|
|
|
|
|
Date :
2010-04-24 17:21:27 |
By :
test |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รู้สึกว่า php ver ใหม่ ไม่ต้องแล้วก็ได้นะ
แค่ $name เฉยๆ ก็ได้แล้ว
ปล. ไม่รู้ว่าเข้าใจถูกไหม(ยินดีฟังคำชี้แนะ)
|
|
|
|
|
Date :
2010-04-24 17:56:52 |
By :
onedan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ ครับ
$name=$_POST['name'];
การประกาศแบบนี้ หรือ แบบ $_POST['name'] เเล้ว เเต่คน ถนัดครับ
เเต่ เราต้องเขียนไป เปน tag มาตราฐาน อะครับ ถึง จะถูก
แบบ คุณ onedan ก้อ ถูกครับ เเต่ มัน ไม่มาตราฐาน ใช้งานได้ เหมือนกัน ใน window นะ
หุหุ
|
|
|
|
|
Date :
2010-04-24 18:03:19 |
By :
deathzap |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ DeathZClu3 ค่ะแสดงว่าเรา ต้องกำหนด $name=$_POST['name'];
เพื่อให้เป็นมาตรฐานใช่ไหมค่ะ
แต่พอดีเห็นว่ามันต้องเสียเวลาถ้ามีตัวแปรเยอะๆ เผอิญไปเจอสคิปของ CMS ตัวหนึ่ง
ไม่ได้กำหนดไว้แต่ก็ทำงานได้ เลยทำให้สงสัยค่ะ
ถ้าเรากำหนดแบบนี้ได้ไหมค่ะ ใส่ value เป็นตัวแปรเลย
Code (PHP)
<INPUT type=\"text\" NAME=\"name\" VALUE=\"$name\";
|
|
|
|
|
Date :
2010-04-24 18:49:22 |
By :
Avrill |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ่อ ใช่ แหะผมลองทำดูแล้วน่ะครับ
post.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body><form method="post" action="include.php">
<input type="text" name="post1">
<input type="text" name="post2">
<input type="submit" value="OK">
</form>
</body>
</html>
include.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php echo"$post1 And $post2";?>
</body>
</html>
จะเห็นได้ว่ามัน echo ค่าออกมาได้เลยไม่ต้อง $_POST แต่อย่างใด เพิ่งรู้น่ะนี่ -..-*
|
|
|
|
|
Date :
2010-04-24 19:15:43 |
By :
icute |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ icute ค่ะ
แล้วต้องกำหนด value="$post1" ไหมค่ะ เราลองทำดุแล้วไม่ได้อ่ะ
<input type="text" name="post1">
|
|
|
|
|
Date :
2010-04-24 19:40:17 |
By :
Avrill |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Php 5 เหมือนกัน ทำไมเราไม่ได้อ่ะ
ต้องไป คอนฟิก ค่าอะไรหรือป่าวค่ะ
|
|
|
|
|
Date :
2010-04-24 20:10:34 |
By :
Avrill |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้configเพิ่มแต่อย่างใดเลยครับ (เขียนในดรีม)
|
|
|
|
|
Date :
2010-04-24 20:14:47 |
By :
icute |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปกติผมก็ไม่ได้ใช้แบบนี้ เลย
$_POST["name"];
ผมก็รับค่าธรรมดาแบบคุณ icute ผมเห็นตอนแรกๆ ที่มี แบบนี้ $_POST["name"]; ผมก็งง ว่ามันคือะไรจนไปอ่านเจอในหนังสือบางเล่มมันก็คือ post ธรรมดาเอง แต่น่าจะมาจากฟังชั่งแทรกที่เราใช้โปรแกรมที่เราใช้เขียนนั้นเองครับ เหมือนที่เจอ รุ่นน้องเขียน ติดต่อฐานข้อมูล แล้วงง มากๆ เพราะเขาใช้เครื่องมือจาก dreamwaver ตัวไหม่ๆ
|
|
|
|
|
Date :
2010-04-24 20:32:47 |
By :
tingtongkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
config แบบ register global เป็นรูปแบบที่ไม่แนะนำให้ทำครับ
เพราะตัวแปร get post cookie session มีโอกาสที่จะชนกันแล้วเกิดปัญหาว่าข้อมูลมาจากทางไหนกันแน่
อย่างเช่นเรากำหนดให้เช็ค $_SESSION['user_type'] ซึ่งปกติเราจะกำหนดค่าให้หลังจาก login ผ่านแล้วโดยคำสั่งที่เกี่ยวข้องกับการ login แต่ถ้าตั้งเป็น register_global on เช่น $user_type มีค่าตัวแปรอัตโนมัติ ผู้ใช้กลับสามารถส่งค่า $_GET['user_type'] มาให้โปรแกรมตรวจสอบค่า login ได้เหมือนกับว่าผ่านการ login มาแล้วเลย
เช่น
if ($user_type == 'admin'){
//คำสั่งจัดการระบบ
}
จะเห็นว่าค่า config register global on จะมีปัญหาทำให้ตรวจสอบหาข้อผิดพลาดยากมาก
กับ security ร้ายแรง อย่างเช่นการกำหนดสิทธิให้ตัวเองตามใจชอบโดยไม่ต้องผ่านการ login ครับ
ดังนั้นยอมเขียนเยอะนิดนึงเพื่อจะได้มีปัญหาน้อยกว่าครับ
ถ้ารู้สึกรำคาญการเขียนซ้ำๆ ลองดูว่าใช้โปรแกรม editor อะไรในการเขียน
แล้วค้นหาวิธีสร้างโปรแกรมมาโครใน editor ตัวนั้น เพื่อช่วยให้เขียนได้เร็วขึ้นดูครับ
อย่างใน netbean
ผมจะต้องไว้ pp แล้วกด tab จะทำให้แสดงโค้ด autocomplete ค่า $name = $_POST['name']; ครับ
หรืออาจจะเขียนโค้ดช่วยเขียนโค้ดอีกทีครับเช่นสำหรับตารางชื่อ users ก็จะเขียนโค้ดช่วยเขียนโค้ดดังนี้
<?php
$link = @mysql_connect('localhost', 'mysql_user', 'mysql_password');
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
$res = mysql_query('select * from users', $link);
for($i=0;$i<mysql_num_fields($res); $i++){
echo '$'.mysql_field_name($res,$i) .'='. '$_POST'."['".mysql_field_name($res,$i)."'];";
}
?>
|
|
|
|
|
Date :
2010-04-24 22:29:09 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เข้าใจเลยครับ ต้องระวังการชนกันของตัวแปร session ด้วยนะเออ >,.<
|
|
|
|
|
Date :
2010-04-24 23:31:42 |
By :
icute |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ เข้าใจแล้วค่ะ มันเป็นอย่างนี้นี่เอง
|
|
|
|
|
Date :
2010-04-25 10:48:19 |
By :
Avrill |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|