ช่วยด้วยครับ php ทำฟอร์มเพิ่มลงฐานข้อมูลแล้ว แต่ดันเป็นชื่อ id ของฟอร์ม ลงไปแทน

เริ่มโดย adjobb, 19 พฤษภาคม 2014, 18:34:22

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

adjobb

ในฐานข้อมูลมันเพิ่มอันนี้ลงไปอะครับ มือใหม่จริงๆ หัดเขียนดูแต่ ผมผิดพลาดตรงไหนหว่า  :'(
txt_user   txt_pass   txt_name   txt_address


อันนี้โค้ดครับ

<!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
include ('../includes/config.php');
if(
$_POST[button] == 'Submit'){
$txt_user $_POST[txt_user];
$txt_pass $_POST[txt_pass];
$txt_name $_POST[txt_name];
$txt_address $_POST[txt_address];
$txt_phone $_POST[txt_phone];

$query "INSERT INTO tbl_member (username,password,name,address,phone) values ('txt_user','txt_pass','txt_name','txt_address','txt_phone')";
$result mysql_db_query($dbname,$query);
if ($result) {
echo "เรียบร้อย";

}else{
echo "ผิดพลาด";

}


}
?>

<form id="form1" name="form1" method="post" action="">
  <p>
    username
    <label for="txt_user"></label>
    <input type="text" name="txt_user" id="txt_user" />
  </p>
  <p>
    password
    <input type="text" name="txt_pass" id="txt_pass" />
  </p>
  <p>
    name
    <input type="text" name="txt_name" id="txt_name" />
  </p>
  <p>
    address
    <label for="txt_address"></label>
    <textarea name="txt_address" id="txt_address" cols="45" rows="5"></textarea>
  </p>
  <p>
    phone
    <input type="text" name="txt_phone" id="txt_phone" />
  </p>
  <p>
    <input type="submit" name="button" id="button" value="Submit" />
  </p>
</form>
</body>
</html>


antimage3114

$query = "INSERT INTO tbl_member (username,password,name,address,phone) values ('".$txt_user."','".$txt_pass."','".$txt_name."','".$txt_address."','".$txt_phone.'')";

ลองดูครับ

ปล. แนะนำให้ศึกษามา mysqli หรือใช้ pdo ดีกว่าครับ ปลอดภัยกว่าอีกอย่าง php เวอร์ชั้นใหม่ๆนี้เขาเอาออกแล้วครับ mysql_* พวกนี้


คำแนะนำเพิ่มเติมหากจะใช้ mysql_* อยู่ให้ใช้ function mysql_real_escape_string or mysqli_real_escape_string เข้าไปที่ที่ตัวแปรทุกตัวที่ใช้ใน query ด้วยครับ

ลองศึกษาพวก security เพิ่มเติมด้วยครับมือใหม่หลายท่านพลาดจุดนี้โดน sql injection กันละนาว
Imagination is more important than knowledge.

dekdoo

ลองแบบนี้ครับ
แก้ตรงนี้
$query = "INSERT INTO tbl_member (username,password,name,address,phone) values ('$txt_user','$txt_pass','$txt_name','$txt_address','$txt_phone')";


ต้องแทนค่าตัวแปรที่กำหนดไว้เข้าไปครับ

imagineverend

เหมือนความเห็นด้านบน ครับ คุณลืมใส่ $

$query = "INSERT INTO tbl_member (username,password,name,address,phone) values ('$txt_user','$txt_pass','$txt_name','$txt_address','$txt_phone')";

แนะนำมือใหม่หัดเล่นตัวนี้ดูครับ
http://usercake.com/
(ฟรี Open Source)

User Management
มีระบบสมาชิกให้เราจัดการเกือบครบ สามารถไปต่อยอดสร้างโปรเจ็คเล็กๆ จนถึงระดับกลางได้เลย

adjobb

ขอบคุณ ทั้ง 3 ท่านมากเลยครับ เส้นผมบังภูเขาจริงๆ

เดียวเรื่อง mysqli ผมขอศึกษาเบื้องต้นก่อน พอดีมือใหม่จริงๆ