คือกำลังทำเว็บอยู่ แล้วเกิดสงสัยอยากทำตามคือ

อย่าง Facebook,google,อื่นๆ เวลาเข้าระบบ ก็พิมพ์ อีเมล์กับรหัสผ่าน แล้วก็ล็อกอิน เข้าไปได้เลย

ไม่มีหน้าแสดงผลการเข้าระบบ อย่างใน http://www.phpeasystep.com/phptu/6.html

เลยอยากทำได้บ้าง

ขอบคุณล่วงหน้า

//////////
ขอบคุณ คุณ jingjingmaple

แก้ปัญหาได้แล้ว

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

หน้าขึ้นมาเช็คกับฐานข้อมูลนี่คือยังไงครับ ปกติเวลาเราเข้าสู่ระบบ มันก็ต้องเข้าใช้งานได้เลยไม่ใช่หรือครับ ไม่จำเป้นต้องมีหน้าอะไรขึ้นมาขวาง

ใช่ๆ เราต้องการทำอย่างนั้นแหละ ล็อกอินแล้วก็ผ่านไปเลย แต่ที่เห็นสอนๆกันอยู่ ในเน็ตเนี้ย มันเป็นแบบมีหน้า เช็ดล็อกอินขึ้นมา แล้วก็ส่งไปอีกหน้าเอา

ถ้าผมเข้าใจไม่ผิดก็ลองดูอันล่างนี้

ของ Facebook
https://developers.facebook.com/docs/facebook-login/web#steps

ของ Google อันนี้มั้ง
https://developers.google.com/identity/sign-in/web/backend-auth

หลัก Flow การทำงานของมันคือเวลากด login มันจะ popup หน้า login ของ facebook,google
จากนั้นพอ login เสร็จ เค้าจะส่ง access_token มาซึ่งเราเอาไปใช้ get id ของ facebook,google ได้
จากนั้นเราก็เก็บ id ที่ได้มาบนเว็บเราซะ ส่วน access_token ไม่ต้องเก็บใน db เพราะเดียวมันก็หมดอายุ
พอเค้า login มาก็ เอา access_token ส่งให้ server เรา เราก็เอา access_token ไปดูว่าอันนี้ของ user id ใด แล้วก็ให้ login ประมาณนี้มั้งครับ

ไม่ใช่ครับ อันนั้นคือ OAuth login สำหรับแอพข้างนอกที่จะเข้าไปใช้ข้อมูลของ Facebook, google, twitter

ส่วนใหญ่แอพพวกนี้จะมี Cookie ทำหน้าที่เหมือนกับเป็น Remember me
ค่าใน Cookie มักจะเป็น MD5 Hash หรือการเข้ารหัสของ Username, Password, Salt แล้วแต่ที่ว่าจะผสมยังไง อันนี้ก็คือแบบที่ 1 เวลาเราเปิด Facebook เราก็จะส่ง Cookie ไปให้ทาง Facebook แล้ว Facebook ก็จะทำการ ล็อกอินให้กับเราเองครับ

แบบที่ 2 ก็คือ Cookie ข้างในมีค่า Random อะไรซักอย่างที่ Facebook สร้างขึ้นมา
เวลาเราเปิด Facebook. คุ๊กกี้จะถูกส่งไป Facebook ก็จะเช็คกับฐานข้อมูลว่า cookie นี้ของใคร แล้วก็ Login ให้

ปัญหาก็คือ ไม่มีใครรู้ว่า Facebook, twitter, google ใช้วิธีไหนในการเก็บ cookie ไงครับ เราถึงยังปลอดภัยอยู่ถึงตอนนี้ หรือไม่ก็อาจจะมีวิธีพิศดารแบบอื่นก็เป็นไปได้

อธิบายใหม่ละกัน คือ เข้าระบบปกติที่เห็นสอนๆกันคือ มีหน้า Login แล้วก็หน้าเช็ดกับฐานข้อมูลว่าตรงไหม แล้วก็ redirect ไป สงสัยว่า

พวก Facebook Google อื่นๆ มันไม่แสดงหน้า เช็ดล็อกอินให้เห็นเลย เขาเขียนโค้ดซ่อนไว้ หรือเร็วจน url ไม่เปลี่ยนเลย

AmidoriA Tue, 06/10/2015 - 10:06

In reply to by KuroNeko_Hiki

ปกติ เค้าก็ทำอย่างนี้กันนะครับ แต่ checklogin.php เนี่ย มันไม่ได้แสดงขึ้นมาให้ผู้ใช้เห็นอยู่แล้วครับ เพราะมันก็ redirect ไปเลย คนใช้ก็ไม่รู้อยู่ดีว่ามันทำงานผ่านไฟล์ไหนอะไรบ้าง

จะให้เร็วกว่านี้ก็คงต้อง AJAX ไปเลย แต่คิดว่าคงไม่จำเป็นครับ

saratlim Mon, 05/10/2015 - 22:31

ก็พอรับ @_POST มาแล้วก็ไม่ต้องเขียนหน้า check login ดิครับ

อยากโยนไปหน้าไหนก็ได้

อย่างที่ผมเขียนประจำก็โยนไปหน้าเดิม แล้วเช็คว่า UserID ตรงกับ Password ไหมค่อยทำอย่างอื่น

เท่าที่นึกออกแบบเบสิค ก็คือมีหน้าเช็คอยู่ แต่แทนที่จะทำฟอร์มปกติแล้วโยนให้ไปอีกหน้านึงเพื่อล็อคอิน (ซึ่งต้องเปลี่ยนหน้า) ก็ใช้ ajax โยนแบบเงียบๆ ทำงานบนเบื้องหลังแทน
ลองดู http://api.jquery.com/jQuery.ajax/ ครับ

ทำแบบนี้ก็ได้ครับ หน้า login.php แบ่งเป็น 2 ส่วนคือ GET กับ POST เวลาเข้าหน้า Login ให้ใช้ส่วนของ method GET แสดง
พอ user กด login ให้ยิง post form มาที่หน้าเดิมแล้วใช้ส่วนของ method post ในการเช็คจากฐานข้อมูล แล้วค่อย redirect

วิธี login มีหลายแบบ คนอื่นตอบให้แล้ว ผมขอพูดอย่างอื่นต่อเลยแล้วกัน

ประเด็นของการ log in คือ ทำยังไงให้ server รู้ว่า request หลังจากนั้นเป็น user คนไหน
ปกติก็จะจำ ID อะไรสักอย่างไว้ใน cookie ฝั่ง client หรือ session ฝั่ง server
วิธีมันพลิกแพลงได้หลากหลายมากครับ แล้วแต่ภาษาหรือวิธีที่ถนัดเลย

ปกติผมจะใช้วิธีจำใส่ session ที่ server ครับ โดยแยกส่วน web ของเราไว้ดังนี้

(1. ขั้นตอนการ log in

1.1. หน้า log in form สำหรับให้ user ส่ง user หรือ password หรืออะไรที่ใช้แสดงและยืนยันตนได้
ตรงนี้จะใช้ HTML tag form post หรือ get ก็ได้ทั้งนั้น
หรือจะใช้ JavaScript AJAX ก็ได้ แล้วแต่ความล้ำ

1.2. Log in script ฝั่ง server สำหรับรับจาก 1.1 และสร้างและจำ ID ที่จะใช้ระบุตัว user ทีหลัง
ถ้าเก็บใส่ cookie ก็ระวังไว้ด้วยว่ามันเก็บอยู่ที่ browser ฝั่ง client ซึ่ง user สามารถแก้เองได้
ถ้าเก็บใส่ session ฝั่ง server PHP ก็จะแยกให้เองว่าเป็นคนไหน แต่ถ้าปิด browser ก็จะหายทันที

(2. หน้าเนื้อหาอื่นๆ ของ web ทุกๆ หน้าจะ check ID ว่า log in หรือยังและเป็น user คนไหน
ถ้ายังไม่ log in ก็ redirect ไปหน้า log in form
ถ้า log in แล้วก็ดึงข้อมูลของ web สำหรับ user คนนั้น

(3. ส่วน redirect ทำได้หลายแบบ แบ่งเป็น 2 แบบใหญ่ๆ คือ

3.1. Redirect ด้วย client: จะใช้วิธีดั้งเดิมใส่ HTML tag meta refresh ก็ได้ หรือจะ redirect ด้วย JavaScript ก็ได้

3.2. แอบ redirect จาก server วิธีนี้เร็วกว่าเพราะไม่ต้องรอ request/response กลับไปกลับมาและ user จะไม่เห็นลำดับการ redirect แต่ข้อเสียคือทำให้ URL ค้างอยู่ที่ log in script เช่น เมื่อ log in แล้วให้แสดงหน้า newTopic.php ต่อเลย เราก็ใช้วิธี include ท้าย log script ให้ส่งเนื้อหาของ newTopic.php กลับไปให้ browser ได้เลย แต่ browser จะค้างอยู่ที่ logInScript.php ก็ไม่ค่อยสวยเท่าไหร่

ตอนนี้ที่ลองทำอยู่ ยังไม่ได้ทดสอบกับตอนที่ปิด JavaScript ว่าจะเป็นยังไง

ตอนนี้กำลังมองหา Host ฟรี แต่จดโดเมนนี่น่าจะได้แล้ว

ทำเว็บบล็อกเล่นๆ ไม่อยากใช้พวกสำเร็จรูป เลยลองเขียนเองเล่นๆ

ขอบคุณที่แนะนำจ้า