รายละเอียดบริการลงโฆษณา
 บริการจดโดเมนเนม เว็บไซด์ .Com, .Net, .Org เพียง 550 บาท / ปี    สำหรับโดเมนอื่นๆ คลิกเพื่อดูรายละเอียด สายด่วน WebSite, Domain, Hosting
 คลิก Banner เพื่อสนับสนุนเว็บไทยดีดี กำลังโหลดข้อมูล... 
   สนใจติดต่อโฆษณา คลิกดูรายละเอียด    โทร. 02-591-7857, 087-499-5540 หน้าหลัก เว็บไทยดีดี | คำติชมของคุณ  
หน้าแรกเว็บไทยดีดี บทความ PHP เว็บบอร์ด PHP แจ้งชำระเงิน ลงโฆษณากับเรา
  Webmaster Talk     webmasterwebthaidd.com
Webthaidd.COM 2.9 Beta Community Version
Build 0979
ปรับการใช้งานเว็บบอร์ดใหม่ เข้าถึงการเรียนรู้ได้มากขึ้น
เว็บบอร์ดใหม่ URL : http://www.webthaidd.com/webboard
เว็บบอร์ดเก่า URL : http://www.webthaidd.com/board
 
แจ้งปัญหาการใช้งาน หรือแนะนำติชม
webmaster@webthaidd.com
   หน้าแรกเว็บบอร์ด   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  
กันยายน 08, 2010, 05:57:36 pm
นิตยสารออนไลน์ ฉบับแรกของคนไทย
ยินดีต้อนรับคุณ, บุคคลทั่วไป
กรุณาเข้าสู่ระบบ หรือ สมัครสมาชิก
 
 
 
ส่งอีเมล์ยืนยันการใช้งาน?
สมัครสมาชิก
ลืมรหัสผ่าน
วิธีใช้งานระบบ
 
ออกแบบเว็บไซต์ (Design)
พัฒนาโปรแกรมเฉพาะด้าน (Dev)
ปรับปรุงเว็บไซต์ (Re Design)
จดโดเมนเนม (Domain)
เช่าพื้นที่จัดทำเว็บไซต์ (Hosting)
แจ้งชำระเงิน
 
  ร่วมเผยแพร่ความรู้ ส่งบทความ : คลิกที่นี่
PHP Programing
HTML Home Page
Macromedia Dreamweaver
Namo WebEditor
Macromedia Flash
Adobe Photoshop
Adobe illustrator
3ds max
Java Scripts
C,C++ Programing
Microsoft Word
Microsoft Excel
Microsoft PowerPoint
Microsoft Access
คอมพิวเตอร์ทั่วไป
ความรู้เกี่ยวกับ Flash Drive
 
เครื่องมือทำเว็บ ออนไลน์
ค้นหาเว็บไทย (Web Directory)
วิทยุ เพลงออนไลน์ (Radio)
EXPERTISE MSN
เว็บบอร์ด ถาม-ตอบปัญหา
แบบสำรวจ (Poll)
 
   รายละเอียดโฆษณาบนเว็บ คลิกที่นี่
php.net
phpmyadmin.net
mysql.com
simplemachines.org
 
บทความ PHP Programing ออนไลน์       Webthaidd Basic and Advance E-learning
จัดทำโดย : Mr.GuruZ     แสดง 102,387 ครั้ง  เว็บบอร์ด   ส่งให้เพื่อน   พิมพ์
การทำระบบ Login โดยใช้ฐานข้อมูล
Un title page

การทำระบบ Login โดยใช้ฐานข้อมูล มีหลายคนถามกันเข้ามา โดยวิธีทำนั้นจะมีหลายแบบด้วยกันแล้วแต่ว่าเราจะเขียน แต่ในที่นี้ผมจะเขียนในส่วนที่สามารถนำไปประยุกต์ต่อกันได้ ลองมาดูขั้นตอนการทำ

ขั้นตอนกาทำ
1. ให้เราสร้าง Database ขั้นมาก่อนเพื่อใช้ในการเก็บค่า user และ pass

# phpMyAdmin MySQL-Dump
# http://phpwizard.net/phpMyAdmin/
#
# Host: localhost Database : test
# --------------------------------------------------------

#
# Table structure for table 'user_login'
#

CREATE TABLE user_login (
id int(11) NOT NULL auto_increment,
user_log char(15) NOT NULL,
pass_log char(15) NOT NULL,
PRIMARY KEY (id)
);

#
# Dumping data for table 'user_login'
#

INSERT INTO user_login VALUES ( '1', 'guest', '1234');

2. หลังจากนั้นให้เราสร้างฟอร์ม Login ในที่นี้ผมใช้ชื่อไฟล์ว่า form_login.php (* ถ้าฟอร์มที่คุณสร้างนั้นไม่ใช้ภาษา php สามารถ save เป็นไฟล์ HTML ได้)

ใครงงดูโค้ดที่นี่ form_login.php

<?
session_start();
?>
<html>
<head>
<title>webthaidd.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="check.php">
User :
<input type="text" name="username_log"> //ชื่อตัวแปลที่ใช้ในการส่งค่า
<br>
Pass :
<input type="password" name="password_log"> //ชื่อตัวแปลที่ใช้ในการส่งค่า

<? echo $code_error;?>
<br>
<input type="submit" name="Submit" value="Login">
</form>
</body>
</html>

3. ทำการเขียนโค้ดที่ไฟล์ check.php เพื่อตรวจสอบการ Login ของผู้ใช้

<?
session_start();
$hostname = "localhost"; //ชื่อโฮสต์
$user = ""; //ชื่อผู้ใช้
$password = ""; //รหัสผ่าน
$dbname = "test"; //ชื่อฐานข้อมูล
$tblname = "user_login"; //ชื่อตาราง
// เริ่มติดต่อฐานข้อมูล
mysql_connect($hostname, $user, $password) or die("ติดต่อฐานข้อมูลไม่ได้");

// เลือกฐานข้อมูล
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");

// คำสั่ง SQL และสั่งให้ทำงาน
$sql = "select * from $tblname where user_log='$username_log' and pass_log='$password_log'"; //เช็คค่าข้อมูลที่ส่งมาจากฟอร์ม
$dbquery = mysql_db_query($dbname, $sql);

// หาจำนวนเรกคอร์ดข้อมูล
$num_rows = mysql_num_rows($dbquery);
if($num_rows==1){
header("location:http://www.webthaidd.com"); //ไปไปตามหน้าที่คุณต้องการ
}else {
$code_error="<BR><FONT COLOR=\"red\">ข้อมูลที่คุณกรอกไม่ถูกต้อง กรุณา Login ใหม่อีกครั้ง</FONT>";
session_register("code_error");
header("location: form_login.php"); //ไม่ถูกต้องให้กับไปหน้าเดิม
}
?>

4. หลังจากนั้นลองทดสอบดู
user=guest
pass=1234


- ถ้าถูกต้องจะเข้าไปที่เว็บ webthaidd หรือหน้าที่เรากำหนดนั้นๆ
- ถ้าผิดจะแจ้ง error ตามข้อความที่เรากำหนด

ความคิดเห็นผู้อ่านบทความนี้
ความเห็นที่ : 31 แจ้งลบ  
ตรง Password ต้องเข้ารหัสด้วย MD5 ด้วยนะครับ จะทำให้ปลอดภัยครับ
โดย : MUT    เมื่อ : 09 ก.พ. 53  

ความเห็นที่ : 30 แจ้งลบ  
Database มันคืออ่ะไรอ่าคับ
โดย : โอ๊ตผู้ไร้เดียงสา    เมื่อ : 06 ก.พ. 53  

ความเห็นที่ : 29 แจ้งลบ  
Warning: mysql_db_query() [function.mysql-db-query]: Unable to save result set in C:\AppServ\www\project\check.php on line 15 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\project\check.php on line 18 Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\project\check.php:15) in C:\AppServ\www\project\check.php on line 24 หมายความว่าอะไรค่ะ
โดย : ติบ    เมื่อ : 31 ธ.ค. 52  

ความเห็นที่ : 28 แจ้งลบ  
Fatal error: Call to undefined function mysql_connect() in D:\Work\Project\php\test\check.php on line 9 มันขึ้นแบบนี้อะค่ะ แล้วคือ line 9 มันก้อคือ mysql_connect($hostname, $user, $password) or die("ติดต่อฐานข้อมูลไม่ได้"); รบกวนช่วยตอบหน่อยนะค่ะ ด่วนมากเลย T^T
โดย : ppatt    เมื่อ : 16 ต.ค. 52  

ความเห็นที่ : 27 แจ้งลบ  
ขอบคุณมากค่ะ
โดย : betagen    เมื่อ : 13 ก.ย. 52  

ความเห็นที่ : 26 แจ้งลบ  
โค้ดใช้ได้ดีเลยค่ะ ทำส่งอาจารย์พอดีเลย อิอิ แต่ขอเพิ่ม Hello คุณ guest ต่อหน่อยได้ไหมค่ะ ขอบคุณค่ะ
โดย : คิกคิก    เมื่อ : 12 ก.ย. 52  

ความเห็นที่ : 25 แจ้งลบ  
ขอบคุณ\nครับ
โดย : อาราเล่จัง    เมื่อ : 22 ส.ค. 52  

ความเห็นที่ : 24 แจ้งลบ  
sql ในตัวอย่างนี้ หากต้องการนำไปใช้งานจริง ระวังเรื่อง sql injection ด้วยนะครับ
โดย : CPEngineer    เมื่อ : 31 ก.ค. 52  

ความเห็นที่ : 23 แจ้งลบ  
ใช้ได้จริงหรือเขียนมั่วหรือเปล่า เขียนมั่วไม่รอบครอบมือใหม่ตาแตก
โดย : x-men    เมื่อ : 20 ก.ค. 52  

ความเห็นที่ : 22 แจ้งลบ  
SELECT มีข้อผิดพลาดTable \'km.tbl_user\' doesn\'t exist มันหมายความว่ายังไง เขาบอกว่าต้องเปลี่ยน$strSQL=\"select * from tbl_user where username=\'$Username\' and Password=\'$Password\'\";ตรงนี้
โดย : pokky    เมื่อ : 25 พ.ค. 52  

ความเห็นที่ : 21 แจ้งลบ  
แล้วถ้าผมจะทำเป็น form ให้ user กรอกข้อมูล แต่ให้ user ยืนยันตนโดย login เข้าระบบ----แต่เพื่อความสะดวกในการตรวจสอบอยากให้ username จาก DB ลงในตารางที่รับข้อมูลจาก form จะต้องเพิ่มหรือแก้ไขตรงไหนอ่ะครับ
โดย : Ongshooting    เมื่อ : 02 เม.ย. 52  

ความเห็นที่ : 20 แจ้งลบ  
จากความเห็นที่4และ10นะครับ เกิดจากการเขียนโปรแกรมจาก text editor ของwindows หรือ text ที่จะสร้าง rom ขึ้นมาที่บรรทัดแรก อัตโนมัติ ซึ่งการใช้ session จำต้องเขียนเป็น สิ่งแรกเท่านั้น ก็กลับมี rom มาขั้นไว้ วิธีแก้ก็คือ ใช้ โปรแกรม dream เวอร์ชั่น mx ขึ้นไป เปิดขึ้นมา ที่แถบข้างบนเลือก modify เลือก page properties เลือก title/encoding ที่ include unicode signature(rom) ออกครับ ขอบคุณครับ
โดย : tong    เมื่อ : 14 ก.พ. 52  

ความเห็นที่ : 19 แจ้งลบ  
สมมุติว่าถ้ากรอกpasswordผิดหรือUsernameผิดอยากจะให้กระโดนไปอีกหน้าหนึ่ง และถ้ากรอกpasswordถูกต้องหรือUsernameถูกต้องอยากจะให้กระโดนไปอีกหน้าหนึ่ง จะทำอย่างไรครับ!! ตอบด่วน
โดย : นุ นักศึกษาพัฒนาเว็บเพจใหม่    เมื่อ : 16 ธ.ค. 51  

ความเห็นที่ : 18 แจ้งลบ  
ถ้าจะให้ login 1 หน้าแต่จะให้ผู้เข้าใช้หลายคนหลายสถานะ (หลายตาราง) เข้าและจะเช็คว่า user และ password นั้น มาจากตารางใด และให้ link ไปยังหน้าที่เรากำหนดสามารถทำได้ไมอ่ะคับ
โดย : อย่ารู้    เมื่อ : 26 พ.ย. 51  

ความเห็นที่ : 17 แจ้งลบ  
ถ้าเราจะเช็ค สถานะเพิ่มอีกตัวละคับ คือแบบว่ากำหนดสิทธฺิ์การเข้าใช้ที่ต่างกัน
โดย : gonzo    เมื่อ : 18 พ.ย. 51  

ความเห็นที่ : 16 แจ้งลบ  
การทำระบบ Login โดยใช้ฐานข้อมูล การทำระบบ Login โดยใช้ฐานข้อมูล มีหลายคนถามกันเข้ามา โดยวิธีทำนั้นจะมีหลายแบบด้วยกันแล้วแต่ว่าเราจะเขียน แต่ในที่นี้ผมจะเขียนในส่วนที่สามารถนำไปประยุกต์ต่อกันได้ ลองมาดูขั้นตอนการทำ ขั้นตอนกาทำ 1. ให้เราสร้าง Database ขั้นมาก่อนเพื่อใช้ในการเก็บค่า user และ pass # phpMyAdmin MySQL-Dump # http://phpwizard.net/phpMyAdmin/ # # Host: localhost Database : test # -------------------------------------------------------- # # Table structure for table 'user_login' # CREATE TABLE user_login ( id int(11) NOT NULL auto_increment, user_log char(15) NOT NULL, pass_log char(15) NOT NULL, PRIMARY KEY (id) ); # # Dumping data for table 'user_login' # INSERT INTO user_login VALUES ( '1', 'guest', '1234'); ตรงนี้ เรา สร้าง database จาก โปรแกรมอะไรครับ (มือใหม่ จริง ๆ)
โดย : gorn    เมื่อ : 03 ก.ย. 51  

ความเห็นที่ : 15 แจ้งลบ  
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\AppServ\www\Mameaw\formcheck.php on line 8 ติดต่อฐานข้อมูลไม่ได้ ไม่เข้าใจว่าทำไมถึงเชื่อมฐานข้อมูลไม่ได้ค่ะ รบกวนด้วยนะค่ะ
โดย : เด็กฝึกหัด    เมื่อ : 07 ก.ค. 51  

ความเห็นที่ : 14 แจ้งลบ  
ถ..ถูกต้องนะคร้าบ ว่าใน1tableย่อมมีหลายuser but ในความเป็นจริงแล้ว user_log จัดเป็นcandidate key ซึ่ง1ในกฎของมันก็คือต้องเป็นpropretiesที่สามารถระบุถึงความเป็นตัวตนของมันได้ อ้าเริ่มจะเข้าใจแล้วใช่มัย ดังนั้นในความเป็นจริงมันจะมีโอกาศ มัยที่ $num_rows=2 คำตอบก็คือตะแด่น..ตะแด้น โอกาศเป็น0 เพราะว่าเงื่อนไขก็คือ where user_log=\'$username_log\' and pass_log=\'$password_log\' ดังนั้นเมื่อเราทำตามกฎของ candidate key มันก็จะไม่เกิดปัญหา ผมจะบอกการทำงานคร่าวๆของสคิบนี้นะครับเขาก็แค่เอาข้อมูลusername_log password_log ไปเช็คกะdatabase ซึ่งถ้ามี $dbqueryก็จะมีค่าเป็น1 ผมได้ตอบไปหมดแล้วนะครับ สคิบนี้เป็นแค่การprocessนึงเท่านั้นยังเอาไปใช้จริงไม่ได้ยังต้องเขียนเพิ่มอีกนะครับคุณ ความเห็นที่ : 13
โดย : ....    เมื่อ : 16 เม.ย. 51  

ความเห็นที่ : 13 แจ้งลบ  
สมมุติว่าในเทเบิล user_login มีข้อมูลอยู่หลายชื่อ จะทำอย่างไรคับ เพราะ if($num_rows==1) หมายถึง ในเทเบิลมีข้อมูลอยู่ 1 เรคอรด์ใช่มั้ยครับ ให้ผ่านได้ แต่ถ้าข้อมูลเรามีมากกว่า 1 หล่ะคับ จะทำยังไงช่วยอธิบายต่อยอดอีกนิดได้มั้ยครับ
โดย : tomm    เมื่อ : 12 เม.ย. 51  

ความเห็นที่ : 12 แจ้งลบ  
แบบว่า login เข้าไปแล้วจะเป็น data ข้อสมาชิกนั้น ๆ คือแบบเก็บ ข้อมูลส่วนตัว ของใครของมัน อ่ะ กรุณาด้วย พึ่งหัดทำคับ ( เด็กใหม่)
โดย : เด็กใหม่    เมื่อ : 12 ก.พ. 51  

ความเห็นที่ : 11 แจ้งลบ  
แบบว่า login เข้าไปแล้วจะเป็น data ข้อสมาชิกนั้น ๆ คือแบบเก็บ ข้อมูลส่วนตัว ของใครของมัน อ่ะ กรุณาด้วย พึ่งหัดทำคับ ( เด็กใหม่)
โดย : เด็กใหม่    เมื่อ : 12 ก.พ. 51  

ความเห็นที่ : 10 แจ้งลบ  
แก้อาการ Error เหมือนความคิดเห็นที่ 4 ยังไงอะครับ ผมก็ติก
โดย : ผู้ประสบภัย    เมื่อ : 22 ม.ค. 51  

ความเห็นที่ : 9 แจ้งลบ  
ขอบคุณมากครับ
โดย : ขอบคุณมากๆๆๆๆครับ    เมื่อ : 22 ม.ค. 51  

ความเห็นที่ : 8 แจ้งลบ  
ขอบคุณครับ
โดย : FaNg    เมื่อ : 20 ม.ค. 51  

ความเห็นที่ : 7 แจ้งลบ  
ถึงคุณ FaNg มันเป็นการเช็คว่ามีชื่อloginนี้หรือป่าว ถ้า $num_rows == 1 ก้อสามารถ loginได้ แต่ถ้า $num_rows == 0แสดงว่าไม่มีชื่อloginนี้ในระบบก้อไม่สามารถ login ได้ครับ
โดย :    เมื่อ : 18 ม.ค. 51  

ความเห็นที่ : 6 แจ้งลบ  
คืออยากรู้ว่า $num_rows = mysql_num_rows($dbquery); if($num_rows == 1) คืออะไรครับ เหมือนไปเช็คใน database แล้วก็เข้าไม่ได้เลย ถ้าแก้เป็น 0 ใส่อะไรก็เข้าได้หมดเลย ช่วยอธิบายหน่อยน่ะครับ ขอบคุณครับ
โดย : FaNg    เมื่อ : 18 ม.ค. 51  

ความเห็นที่ : 5 แจ้งลบ  
แล้วถ้ากรอกเสร็จแล้วต้องการให้ไปหน้าที่ต้องการตรวจสอบว่ามาจากหน้าล็อกอินหรือไม่ ถ้าไม่ได้มาจากหน้าล็อกอินแล้วมีข้อความเตือนขึ้นมาจะต้องทำยังไงคะ
โดย : mookan    เมื่อ : 15 ม.ค. 51  

ความเห็นที่ : 4 แจ้งลบ  
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\Fuel\checkuser.php:1) in C:\AppServ\www\Fuel\checkuser.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\Fuel\checkuser.php:1) in C:\AppServ\www\Fuel\checkuser.php on line 17 ผมทำตามขั้นตอนแล้ว แต่มันขึ้น Cannot send session cache limiter - headers already sent ต้องทำไงคับ run ใน appserv
โดย : ต้น    เมื่อ : 12 ม.ค. 51  

ความเห็นที่ : 3 แจ้งลบ  
ขอถามต่อยอดอีกนิดนึงนะครับ ถ้าเกิดว่าผมต้องการให้แสดงชื่อผู้ที่ login สำเร็จ แบบตามเวบทั่วไปต้องทำอย่างไรต่อครับพอช่วยแนะนำวิธีหน่อยนะครับ
โดย : panupong    เมื่อ : 19 ธ.ค. 50  

ความเห็นที่ : 2 แจ้งลบ  
โค้ดในข้อ2 คือโค้ดของ from เหรอค่ะ งงค่ะแบบว่าไม่มีความรู้เลยอ่ะค่ะ
โดย : ก้อย    เมื่อ : 06 ธ.ค. 50  

ความเห็นที่ : 1 แจ้งลบ  
มัน ข้อมูลที่คุณกรอกไม่ถูกต้อง กรุณา Login ใหม่อีกครั้ง ที่หน้าฟอร์ login อ่าค่ะแล้วก็login ไม่ได้ด้วยค่ะ
โดย : unzeen    เมื่อ : 19 พ.ย. 50  

แสดงความคิดเห็น
 
  ( JPG, GIF ) ไม่เกิน 50 k
ชื่อผู้แสดงความคิดเห็น
รหัสส่งข้อมูล

 
  Shortcut : http://www.webthaidd.com/php Back to the top   
หน้าแรกเว็บไทยดีดี บทความ PHP ข่าว PHP เว็บบอร์ด ลงโฆษณากับเรา
เพื่อนบ้านเว็บไทยดีดี ติดต่อแลกลิงค์ได้ที่ webmasterwebthaidd.com
บทความ : Mac2hand | PHP.deeserver | 3d-create | Cg4d | Thairetouch | PHPThailand | MIndphp | Icphysics | blog.ubu-design | ubu-design | pichate1964
รวมของฟรี : Websocietysite | ThaiEarth | PHPScriptHost | Narongrit.net
สถิติเว็บไซต์ : Truehits | Stat08
หางาน ออนไลน์ : JobURL | Oxfordbc | Excellent-search| jobMini
ร้านค้าออนไลน์ : Dollydolls | Gemparty | shoplanla
ข่าว และการสื่อสาร : Thainn
คอมพิวเตอร์
: Mustcomp | Com-th | Nanosoft | Thaiwirelesslan | 3D-Dsign | Changsomcom | Ccsparts | ManiaGrap | Scanidea
เว็บรุ่น : Comsci60
วาไรตี้ : Cosmodesktop | Nachiengmai | Seesan | Tteen | Baanjomyut | Thaihotweb | UnlimitLife | Zazana
การเกษตร และสิ่งแวดล้อม : Orchidsiam
เพลง ดนตรี
: Tapeburapa
สุขภาพ : Thai-sle | healthy-dee
ทองเที่ยว : Tourmuangthai | Ezytrip | Elephantpark | Ekohchang | Lantalanta | Silkzpider | Silverstonetour | Varietykorea | Varietytrip | Thailand Hotels
โรงแรม รีสอร์ท : Vacationvillage | kohmook-resort | บ้านคุณตา
ผู้พิทักษ์สันติราษฎร์ : สำนักงานตำรวจแห่งชาติ | สถานีตำรวจภูธรอำเภอผักไห่ | สถานีตำรวจภูธรอำเภอเคียนซา
ทั่วไป
: Thailand | Maxpromarket | Pyayam
© 2005-2010 WebThaiDD.COM All rights reserved. แนะนำ ติ-ชม  webmaster@webthaidd.com เลขทะเบียนพาณิชย์ 0105549132957