ในตอนที่ 1 นั้นเป็นการสร้างฐานข้อมูลเพื่อใช้ในระบบสมาชิก และในบทความนี้(ตอนที่2)เป็นการเขียนโปรแกรมโดยใช้ Netbeans IDE โดยเริ่มจากการสร้างโปรเจ็คและเขียนไปทีละส่วนงาน เพื่อให้ผู้อ่านทุกคนสามารถเข้าใจได้ง่าย ในบทความนี้จะเขียนอธิบายเกี่ยวกับการเข้าสู่ระบบ เริ่มจากการสร้างหน้าจอและการเขียนโค๊ด และท้ายบทความจะเขียนขั้นตอนการทำงาน
– เปิด Netbeans IDE ขึ้นมาแล้วสร้าง Project ชื่อว่า “member” โดยขั้นตอนการสร้าง Project สามารอ่านได้จากบทความนี้ คลิกที่นี้เพื่ออ่าน
– สร้างไฟล์ signin.php (ไฟล์หน้าจอเข้าสู่ระบบ)? โดยให้คุณคลิกขวาที่ Soruce files -> New -> PHP FIle… แล้วตั้งชื่อไฟล์ signin.php และนำ Code ด้านล่างไปใส่ในไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php session_start(); $_SESSION['frmAction'] = md5('itoffside.com' . rand(1,999999)); ?> <html> <head> <meta charset="UTF-8"> <title>เข้าสู่ระบบสมาชิก</title> </head> <body> <form name="signin" action="signin-action.php" method="POST"> <table border="0"> <thead> <tr> <th></th> <th>เข้าสู่ระบบ</th> </tr> </thead> <tbody> <tr> <td style="text-align: right; width: 200px;">Username :</td> <td><input type="text" name="username" value="" size="25" /></td> </tr> <tr> <td style="text-align: right;">Password :</td> <td><input type="password" name="password" value="" size="20" /></td> </tr> <tr> <td></td> <td><input type="submit" value="ตกลง" name="submit" /></td> </tr> </tbody> </table> <input type="hidden" name="frmAction" value="<?php echo $_SESSION['frmAction']; ?>" /> </form> </body> </html> |
– หลังจากสร้างหน้าจอเข้าสู่ระบบแล้วให้สร้างไฟล์ชื่อ “config.php” แล้วนำ Code ไปวางใส่ในไฟล์
อธิบาย code : ไฟล์ที่ใช้ในการเชื่อมต่อฐานข้อมูล mysql และสามารถเปลี่ยนค่าตัวแปรรหัสผ่านเข้า SQL? หรือชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php /* * set var */ $cfHost = "localhost"; $cfUser = "root"; $cfPassword = ""; $cfDatabase = "mydata"; /* * connection mysql */ $meConnect = mysql_connect($cfHost,$cfUser,$cfPassword) or die("Error conncetion mysql..."); $meDatabase = mysql_select_db($cfDatabase); mysql_query("SET NAMES UTF8"); ?> |
– แทรกแถวข้อมูลใส่ตาราง member ซึ่งในบทความนี้จะแทรก user ชื่อ admin และรหัสผ่าน 1234 ลงไป โดยให้ผู้อ่านคัดลอกแล้วนำไป run ที่ PHPMYAdmin
1 |
INSERT INTO `mydata`.`member` (`id`, `username`, `password`, `firstname`, `lastname`, `sex`, `phone`, `email`, `active`, `create_date`, `modified_date`) VALUES (NULL, 'admin', '81dc9bdb52d04dc20036dbd8313ed055', 'ขจร', 'ปรามาร', '1', '0811448147', 'it@itoffside.com', '2', '2014-02-13 02:11:04', ''); |
– เมื่อคุณสร้างแถวข้อมูลเสร็จแล้วต่อจากนั้นคุณก็สร้างไฟล์ “signin-action.php” แล้วนำ code ด้านล่างไปใส่ในไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php session_start(); echo "<meta charset=\"UTF-8\">"; if (isset($_SESSION['frmAction']) == isset($_POST['frmAction'])) { /* * include file */ include 'config.php'; /* * set var */ $username = mysql_real_escape_string(trim($_POST['username'])); $password = mysql_real_escape_string(trim(md5($_POST['password']))); /* * unset var */ unset($_SESSION['frmAction']); /* * logical programming&Database */ $meSQL = "SELECT id,username,active FROM member WHERE username='{$username}' AND password='{$password}' AND active != 0"; $meQuery = mysql_query($meSQL); $meCount = mysql_num_rows($meQuery); if ($meCount == 1) { $meResult = mysql_fetch_assoc($meQuery); $_SESSION['id'] = $meResult['id']; $_SESSION['username'] = $meResult['username']; $_SESSION['active'] = $meResult['active']; $_SESSION['checkSign'] = 'itoffside'; echo "เข้าสู่ระบบสำเร็จ"; echo "<br/>"; echo "<a href='mainpage.php'>ไปหน้าจัดการข้อมูล</a>"; } else { echo "ไม่สามารถเข้าสู่ระบบได้เนื่องจากรหัสผิดพลาด"; echo "<br/>"; echo "<a href='signin.php'>กลับไปหน้าเดิม</a>"; } } else { echo "มีข้อผิดพลาดระหว่าง Session!"; echo "<br/>"; echo "<a href='signin.php'>กลับไปหน้าเดิม</a>"; } ?> |
– ไฟล์ config.php เป็นไฟล์เชื่อมต่อฐานข้อมูลจะถูกเรียกใช้เมื่อมีการเชื่อมต่อฐานข้อมูล โดยส่วนมากมักจะเรียกใช้แบบ include,require
– ไฟล์ signin.php หน้าจอการเข้าสู่ระบบ โดยระบบผู้ใช้และผู้ดูแลสามารถใช้งานในหน้าจอเดียวกันได้
– ไฟล์ signin-action ทำหน้าที่ตรวจสอบข้อมูลจากการส่งค่า POST มาจากไฟล์ signin.php หากมีข้อมูลถูกต้องก็สามารถเข้าถึงและจัดการข้อมูลได้
อ่านต่อ บทความต่อไปของ PHP Workshop ระบบสมาชิก แบบละเอียด ตอนที่ 3
ผม copy Code ของคุณไปลองหัดทำ
แต่มีปัญหาครับ ผมไม่สามารถ Login เข้าได้ ขึ้นรหัสไม่ถุกต้องตลอด
ทั้งๆที่ เช็คดูใน phpMyAdmin แล้วนะ มันก็ถูก แต่เข้าไม่ได้ งงเลยครับ
ยังไง ติดต่อผมมาทาง facebook ก็ได้ครับหลังจากอ่าน ข้อความนี้แล้ว ที่
https://www.facebook.com/e.charat.aa
update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
แล้วแก้ไขโค๊ดในไฟล์ signin-action.php บรรทัด 16 เป็น $password = mysql_real_escape_string(trim(md5($_POST[‘password’])));
ยังไงหรอครับ update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
ใช่ครับ
แก้แล้วยังไงก็ login ไม่ผ่าน T..T
ถ่ายรูปส่งมาที่เมล์และก็โค๊ดให้ผม ดูหน่อยครับ
ตอนนี้ login ได้แล้วครับ ตรงส่วน
>> name=”usename” ตก r ไปตัวนึง
แต่ตอนนี้ มีปัญหาใหญ่กว่าเลยครับ พออัพเดทข้อมูลแล้วกดบันทึก มันขึ้นว่า มีปัญหาการบันทึกข้อมูล กรุณากลับไปบันทึกใหม่ แล้วพอสร้างรายชื่อใหม่ มันก็ขึ้นว่า มีปัญหาการบันทึกข้อมูล กรุณากลับไปบันทึกใหม่ เหมือนกันครับ
ตอนนี้สามารถ แก้ไข เพิ่มผู้ใช้ ได้แล้วนะครับ – -* คำว่า firstname ใน php พอไปดูในดาต้าเบส เขียนเป็น fristname มันเลยบันทึกไม่ได้ แล้วมีวิธีทำให้ password ใน ดาต้าเบสเป็นเลขธรรมดาที่ไม่ต้องเข้ารหัสไหมครับ และอีกอย่าง พอสร้างผู้ใช้ใหม่ มันใช้ชื่อตั้ง login ไม่ผ่านอ่ะครับ
ได้ละครับ ขอบคุณครับ
ครับผม
update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
แล้วแก้ไขโค๊ดในไฟล์ signin-action.php บรรทัด 16 เป็น $password = mysql_real_escape_string(trim(md5($_POST[?password?]))); แก้ ยังไง อ่ะครับพอดีผม งง ให้ดรีมแก้ได้ไหมอ่ะครับ
แก้ไขโค๊ดในไฟล์ signin-action.php
แก้ไขข้อมูลใน phpmyadmin
พอผม login เข้าสู่ระบบ ในส่วนของหน้า signin-action.php ไม่ขึ้นข้อความอะไรมาเลยครับ ภายในเพจขึ้นหน้าขาวๆ โล่งๆ ไม่สามารถทำในส่วนต่อไปได้ ลองเช็คทั้ง PHPmyAdmin แล้ว ก็ตรงตามโค้ดทุกอย่าง ขอคำแนะนำด้วยครับ
การ connect database/table ลองตรวจสอบครับ
ล็อกอินไม่ได้อ่าฮ ะ ทำตามวิธีแล้วว
update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
แล้วแก้ไขโค๊ดในไฟล์ signin-action.php บรรทัด 16 เป็น $password = mysql_real_escape_string(trim(md5($_POST[‘password’])));
พี่คัรบ โค๊ด นี่เอาไป แทรกตรงไหน สร้าง ฟิล์ใหม่เหรอครับ
INSERT INTO `mydata`.`member` (`id`, `username`, `password`, `firstname`, `lastname`, `sex`, `phone`, `email`, `active`, `create_date`, `modified_date`) VALUES (NULL, ‘admin’, ’81dc9bdb52d04dc20036dbd8313ed055′, ‘ขจร’, ‘ปรามาร’, ‘1’, ‘0811448147’, ‘it@itoffside.com’, ‘2’, ‘2014-02-13 02:11:04’, ”);
งง นิดๆๆๆ พี่มี facebook ไหมครับ จะได้สอบถาม
แทรกใน table mydata ครับ
ผม Login ไม่ได้ครับ ขึ้นว่า ไม่สามารถเข้าสู่ระบบได้เนื่องจากรหัสผิดพลาด
update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
แล้วแก้ไขโค๊ดในไฟล์ signin-action.php บรรทัด 16 เป็น $password = mysql_real_escape_string(trim(md5($_POST[‘password’])));
md5(‘itoffside.com’ . rand(1,999999))
ตรงนี้ถ้าจะเปลี่ยนนี่เปลี่ยนเป็นได้ไหมคะ
หน้า manager_user-add.php จาก code นี้…
เพิ่มผู้ใช้งานใหม่
เพิ่มผู้ใช้งาน
หน้าแรก
จัดการผู้ใช้งาน
แก้ไขข้อมูลส่วนตัว
ออกจากระบบ
ข้อมูลส่วนตัว
ชื่อผู้ใช้งาน
รหัสผ่าน
ชื่อจริง
นามสกุลจริง
เพศ
ชาย |
หญิง
เบอร์โทรศัพท์
อีเมล์
ระดับผู้ใช้งาน
ผู้ใช้ทั่วไป |
ผู้ดูแลระบบ
<input type="hidden" name="frmAction" value="” />
<?php
} else {
echo "”;
echo “คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อน!”;
echo “”;
echo “คลิกเพื่อเข้าสู่ระบบ“;
}
อยากทราบว่าจะทำเป็นสมัครสมาชิกหน้าเว็ได้เลยโดยไม่ต้องเข้าสู่ระบบ แต่เวลาเข้าสู่ระบบให้แยกระบบแบบผadmin กับ user ยังไม่ครัับ
พอเพิ่มผู้ดูแลระบบเข้าไป มันLogin ไม่ได้ค่ะ แต่ Login ด้วp admin 1234 ได้อย่างเดียวค่ะ
มือให้หัดทำค่ะ
ต้องเพิ่ม user ไปครับ password เข้ารหัส md5 ไว้ด้วย
รบกวนสอบถามครับ
เข้าระบบแล้วขึ้นข้อความแบบนี้
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\mydata\config.php:13 Stack trace: #0 C:\xampp\htdocs\mydata\signin-action.php(10): include() #1 {main} thrown in C:\xampp\htdocs\mydata\config.php on line 13
เปิด extension ของ mysql ครับ ที่ php.ini
ขึ้น ไม่สามารถเข้าสู่ระบบได้เนื่องจากรหัสผิดพลาด ทำยังไงคะ
แก้ update ฐานข้อมูลตรงฟิล์ดรหัสผ่านใหม่เป็น 81dc9bdb52d04dc20036dbd8313ed055
แล้วแก้ไขโค๊ดในไฟล์ signin-action.php บรรทัด 16 เป็น $password = mysql_real_escape_string(trim(md5($_POST[‘password’]))); ตามที่บอกแล้วอะคะ ช่วยตอบหน่อยนะคะ
ลอง จะได้เป็นรหัส ยาวๆ ให้เอาไปใส่ในฐานข้อมูลครับ แล้วเวลาจะเข้าระบบก็พิมพ์รหัส 1234