จากนั้น เราก้อมาลุยกันเลยคับ!!!
เมื่อสั่งให้มันรันและกรอกข้อมูลลงในช่องUsernameและPassword ดังรูป
หากใส่Username และ Password ถูกต้องจะได้ผลลัพธ์ดังรูปคับ
หากใส่ไม่ถูกต้องจะได้ผลลัพธ์ดังรูป
เรามาดูโค๊ดกันคับ
++ให้กำหนด Star Session และ Import ไฟล์ config.php เข้ามา
บรรทัดที่ 2 คำสั่ง session_start() คือ การประกาศการเก็บค่าจาก Web Server เพื่อนำมาเก็บไว้ในเครื่องของClient เพื่อใช้อ้างอิงเกี่ยวกับการใช้งานของUserคนนั้นๆ (เราจะได้เห็นภาพมากยิ่งขึ้นในบทความต่อไป คือในส่วนของระบบข้อมูลส่วนตัวของสมาชิกคับ) ส่วนบรรทัดที่ 3 คือการเรียกใช้คำสั่งของADODBเพื่อเข้าถึงฐานข้อมูลของเรา
++สำหรับพระเอกของบทความนี้คับ พิมพ์สคริปต์เหล่านี้เข้าไปใต้สคริปต์ของจาวาสคริปต์
บรรทัดที่ 49 ตรวจสอบParameter Request ที่ส่งมาว่าคือ POST(ส่งค่าผ่านฟอร์ม) หรือไม่ หากว่าใช่ ให้ทำงานตั้งแต่บรรทัดที่ 50-62
บรรทัดที่ 52 ตรวจสอบUsername และ Password ซ้ำอีกครั้งนึง ว่าเป็นค่าว่างหรือไม่ หากไม่เป็นค่าว่า ให้คำสั่งตั้งแต่ 53-61 ทำงาน
บรรทัดที่ 53 ส่งคำสั่ง SQL ไปตรวจสอบในฐานข้อมูลว่ามีUsername กับ Passwordนี้อยู่หรือไม่ แล้ว Return ค่ามาเก็บไว้ในตัวแปร $rs_login ซึ่งค่าที่ได้คือจำนวนของแถว หากเป็นศูนย์แสดงว่า ไม่พบUsernameและPasswordในเทเบิล tb_member คับ
บรรทัดที่ 54 กำหนดเงื่อนไขว่า ถ้าค่าที่ได้เท่ากับ1 ให้สร้างตัวแปรแบบsession (บรรทัดที่ 55 ) มารับค่าคือ ชื่อUsername นั่นเอง และแสดงไดอะล็อก(บรรทัด56-57) หากมีค่าที่ได้นอกเหนือจาก 1 ให้แสดงไดอะล็อกแจ้งเตือนว่า Username หรือ Password ไม่ถูกต้อง
สามารถดาวโหลดโค๊ดที่สมบูรณ์แล้วของบทความนี้ได้จากที่นี่คับ
Warning: require_once(/bigsia/adodb/adodb.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\AppServ\www\bigsia\config.php on line 2
ตอบลบFatal error: require_once() [function.require]: Failed opening required '/bigsia/adodb/adodb.inc.php' (include_path='.;C:\php5\pear') in C:\AppServ\www\bigsia\config.php on line 2
พี่คะมันขึ้น ERROR งี้อะคะ บรทัดเดียวเรย แก้ไงก็ไม่ได้ ช่วยทีนะคะ
path ของ ไฟล์ adodb.inc.php ไม่ถูกคับ มันเลยฟ้องว่า ไม่พบไฟล์ในไดเร็กทอรี่
ตอบลบFatal error: Call to a member function Execute() on a non-object in C:\AppServ\www\phpweb\weppage\Gen_register.php on line 210
ตอบลบมันขึ้น error อย่างนี้ค่ะ ต้องแก้อย่างไรคะ
มันไม่พบ เมธอด Execute() ครับ
ตอบลบแสดงว่า ยังไม่ได้ใช้คำสั่ง require_once ('config.php'); ให้เลื่อนขึ้นไปดูโคีดข้างบนเลยครับ ที่เขียนว่า ให้กำหนด Start Session และ Import ไฟล์ config.php เข้ามา
ใส่ไปแล้วค่ะ แต่มันยังขึ้นอยู่
ตอบลบต้องไปตั้งค่าอะไรที่ไฟล์ config.php ไหมคะ
คุณจะต้องมี ADODB ด้วยนะครับ ศึกษาได้จาก -> การสร้างไฟล์ config.php เพื่อเก็บคำสั่งที่ใช้งานบ่อยๆ ภาค คำสั่ง Connection Database
ตอบลบผมเขียนหน้า login ตามทุกขั้นตอน หน้าสมัครสมาชิกสามารถใช้งานได้เข้าไปตรวจที่ phpAdmin ข้อมูลเข้าทุกอย่าง แต่พอผมลอง login ดูกลับถูกว่า Useneme กับ Password ไม่ถูกต้อง เข้าไปดูที่ phpAdmin
ตอบลบก็ตรง ตรวจการเขียนก็ถูก ไม่รู้ว่าผิดตรงส่วนไหนครับ และควรแก้ยังไงครับ
ลอง echo $_POST['User'] กับ $_POST['Pass'] ออกมาดูครับ ว่ามีค่าหรือป่าว และตรวจสอบคำสั่ง sql ด้วยครับ ว่าใส่ชื่อ table,field ตรงกับฐานข้อมูลหรือไม่
ตอบลบมีคำถามครับ
ตอบลบถ้าผมต้องการให้userID มันโชเวลาเค้าlockin แล้วอะครับ
จะทำยังไง เพราะผมลองใช้โคตแบบที่โชเวลาโชitem สินค้าแล้ว
มันก็โชตามปกติ แต่เวลาlockout แล้ว มันก็ยังโชชื่อเดิมอยู่
โคตนี้อะครับที่ผมบอกว่าใช้แล้วมันไม่เปลียนชื่อ เวลาlockout
Execute("SELECT * FROM tb_member ORDER BY mb_userID");
?>
fields["mb_userID"];?>
ผมจะทำยังไงดีครับ
ขอบคุณครับ
ก็สร้างตัวแปรsessionเก็บUserIDไงครับ
ลบ$_SESSION['ss_userID']=$userID;
เวลาจะเอาไปใช้ก็เอาตัวแปร $_SESSION['ss_userID'] ไปใช้ได้ทุกเพจเลยครับ
เวลา logout ต้องเขียนโค๊ดเคลียร์ค่าsessionตัวนี้ด้วยครับคือ unset($_SESSION['ss_userID']);
ขอโทษนะครับ ผมทำแล้วมันไม่ได้ ส่งสัยผมจะวางผิดที่มั่งครับ
ตอบลบ$_SESSION['ss_userID']=$userID; ผมจะเอาไปวางไว้ตรงไหนอะครับ
$_SESSION['ss_userID'] คือตัวที่โชชื่อช่ายป่าวครับ แล้วจะไปวางไว้ตรงไหนดีอะครับ
เพราะทำผมทำมันไม่มีขึ้นอะไรเยยอะครับ
ขอบคุณครับ
ตกลงจะให้แสดงอะไรกันแน่ครับ UserID หรือ Username หรือ ชื่อ-นามสกุล ของสมาชิกครับ
ลบถ้าจะให้แสดงอะไรก็ใช้ session เก็บฟิลด์นั้นๆได้ครับ เช่น
$_SESSION['SS_USERNAME']=$result['username'];
$result คือตัวแปรที่ดึงค่าจากฐานข้อมูลนะครับโดยจัดเก็บแบบ array ส่วน username คือชื่อฟิลด์จากฐานข้อมูลนะครับ
ถ้าจะให้แสดงก็ใช้คำสั่ง echo ได้เลยครับ เช่น echo $_SESSION['SS_USERNAME'];
พี่ครับถ้าผมอยากเขียนcode ให้ถ้าเป็นแอดมินเท่าานั้นถึงจะเข้าไปยังหน้า หลังร้านได้อ่ะครับ
ตอบลบต้องแก้ยังไงบ้างหรอครับ ในส่วนของlogin
สังเกตุฟิลด์ mb_level ของเทเบิล tb_member ในบทความนี้ นะครับ จะเป็นตัวแยกผู้ใช้งานแต่ละระดับครับ สามารถกำหนดค่าได้ตามใจชอบเช่น 1=admin , 2=user เราใช้ตัวแปร Session มาเก็บครับ ถ้ามีค่าเป็น 1 ก็ให้ลิงค์ไปหน้า adminหรือหลังร้าน ถ้าเป็น 2 ก็ไปหน้า member
ลบรบกวนพี่แนะนำการเขียนไส่ลงไปได้ป่ะครับ ผมมือใหม่ครับ
ลบกำลังศึกษาอยู่ ผมลองๆแล้วมันไม่ผ่านอ่ะครับ ขอบคุณมากครับสำหรับความรู้
บรรทัด 53 เพิ่มคำสั่ง SELECT COUNT(mb_user),mb_level
ลบให้สังเกตุคำสั่ง $_SESSION['ss_login']=$User;
บรรทัดต่อมาให้ใส่คำสั่ง $_SESSION['ss_level']=$rs_login->fields[1];
โดยผมกำหนดให้ค่า 1=admin นะครับ
if($_SESSION['ss_level']==1){//แสดงว่าเป็น admin
header('Location:admin.php');//ไปหน้า admin
} else{//แสดงว่าเป็น user
header('Location:user.php');//ไปหน้าสมาชิก
}
แต่ต้องเอาบรรทัดที่มีคำสั่ง echo ออกด้วยนะ ไม่งั้นคำสั่ง header จะมีปัญหาครับ
เป็นคอนเซ็ปง่ายๆ ลองเอาไปใช้งานดุนะครับ
ขอบคุณมากๆนะครับ
ลบขอโค๊ดตัวอย่างแบบเต็มได้ไหมค่ะ ในส่วนการ login ของ admin พอดีทำตามแล้วยังไม่เข้าใจค่ะ ยังมือใหม่อยู่เลย รบกวนด้วยนะค่ะ...
ตอบลบลองค้นให้ไฟล์นี้ดูครับ http://www.4shared.com/file/ASJptEkC/exshops.html ไฟล์น่าจะชื่อ login.php ครับ
ลบขอลิงโหลดไฟหน่อยครับ
ลบขอบคุณมากนะค่ะ โหลดมาแล้วเจอ flogin.php มีแต่ในส่วนของการเข้าระบบของ user เท่านั้นค่ะ รบกวนด้วยนะค่ะ คือต้องการให้เข้าไปหน้าของ admin ดังความเห็นที่ระบุข้างต้นค่ะ ลองเพิ่มคำสั่งบรรทัดที่ 53 ตามที่พี่อธิบายคนข้างบนแล้วแต่ยังไม่ได้ ขอโค๊ดในส่วนนี้แบบเต็มนะค่ะ ขอบคุณมากๆๆๆค่ะ
ตอบลบนี่เป็นโค๊ดที่สอนจบแล้วครับ ผมจะสอนมาถึงแค่ล็อกอินเท่านั้น ถ้าอยากให้เด้งไปหน้า admin เมื่อล็อกอินผ่านแล้ว ให้เพิ่มคำสั่ง window.location='admin.php'; หลังคำสั่ง $('#dialog').dialog('open'); ใน if เงื่อนไขแรกนะครับ
ลบ