รบกวนอีกครับน่ะครับพี่ การล๊อคอิน
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนอีกครับน่ะครับพี่ การล๊อคอิน
ตามลิงค์ที่พี่ให้มาผมลองไปแก้ ผมทดสอบป้อนข้อมูลแต่ก็ล๊อคอินไม่ได้สักทีครับ
https://www.ninenik.com/แนวทาง_การสร้าง_ระบบตรวจสอบ_การล็อกอิน_อย่างง่าย_ด้วย_ajax_ใน_jQuery_และ_php-348.html
ผมลองทดสอบการติดต่อกับ DB ก็ติดต่อได้น่ะครับ ผมลองทดสอบ ป้อน user &pass พอกดsubmit มันก็เหมือนเดิมไม่ไปหน้าไหนเลย
เหมือนจะอยู่ที่ฟังก์ชั่น ทั้งๆที่ผมลองป้อน user & pass ถูกแล้วครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <script type= "text/javascript" > $( function (){ $( "#form_login_x" ).submit( function (){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน // ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax $.post( "check_login.php" ,$( "#form_login_x" ).serialize(), function (data){ if (data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location= 'main_page.php' ; } else { /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $( "#form_login_x" )[0].reset(); } }); return false; }); }); |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ผมเอาโค๊ดที่ผมแก้มาให้ดูด้วยครับ
หน้า perlogin.php
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 | <form id= "form_login_x" name= "form_login_x" method= "post" action= "" > <h1>ระบุข้อมูลของท่านเพื่อเข้าใช้ระบบ E-Document</h1> <p>This is the basic look of my form without table</p> <label>Name <span class = "small" >Add your name</span> </label> <input type= "text" name= "user_name" id= "user_name" /> <BR/><BR/><BR /><BR /> <label>Password <span class = "small" >Min. size 6 chars</span> </label> <p> <input type= "password" name= "user_pass" id= "user_pass" /> <BR /><BR /> <input type= "submit" name= "LoginBT" id= "LoginBT" value= "Login" /> </p> </form> </div> </center> <script type= "text/javascript" > $( function (){ $( "#form_login_x" ).submit( function (){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน // ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax $.post( "check_login.php" ,$( "#form_login_x" ).serialize(), function (data){ if (data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location= 'information-ps.php' ; } else { /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $( "#form_login_x" )[0].reset(); //alert("กรุณาตรวจสอบ Password ของท่านให้ถูกต้อง") ; } }); return false; }); }); </script> |
/*หน้า check_login.php */
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 | <?php session_start(); header( "Content-type:text/html; charset=UTF-8" ); header( "Cache-Control: no-store, no-cache, must-revalidate" ); header( "Cache-Control: post-check=0, pre-check=0" , false); // ส่วนของการเชิ่อมต่อกับฐานข้อมูล mysql_connect( "localhost" , "root" , "415236" ) or die ( "Cannot connect the Server" ); mysql_select_db( "DB_position1" ) or die ( "Cannot select database" ); mysql_query( "set character set utf8" ); if ( $_POST [ 'user_name' ]!= "" && $_POST [ 'user_pass' ]!= "" ){ $q = "SELECT * FROM tbl_admin WHERE User_ID='" . $_POST ['user_name ']."' "; //ฟิวด์ User_ID $q .= " AND Password='" . $_POST ['user_pass ']."' LIMIT 1 "; //ฟิวด์ Password $qr =mysql_query( $q ); if (mysql_num_rows( $qr )>0){ $rs =mysql_fetch_array( $qr ); // $_SESSION['ses_user']=$rs['user_id']; // สร้างตัวแปร session ตามต้องการ echo "1" ; // เมื่อล็อกอินผ่าน echo $_POST [ 'user_name' ]; } else { echo "0" ; } } else { echo "0" ; } ?> หลังจากลองคีย์ ยุเซอและรหัส ก็ไม่กระโดนไปหน้าไหนเลยคับ อยู่หน้าเดิมคือหน้า ฟอร์มที่ให้กรอก ยูเซอร์พาสเวิร์ด |

ทดสอบ โดยสร้างฟอร์มปกติ ไม่ต้องใช้ javascript ส่ง action ไปที่ไฟล์ check_login.php method เป็น post
ถ้าไฟล์ check_login.php ถูกต้องตามการตรวจสอบแล้ว แต่ยังไม่ได้ ก็เป็นกับไฟล์ หน้าล็อกอิน

อ๋อ ไม่ต้อง echo $_POST['user_name']; เพราะจะทำให้ค่าที่กลับมาตรวจสอบไม่เท่ากับ 1

ครับพี่ผมลองดู ให้ แอคชั่นไปที่ check_login.php จะแสดง 1 ครับ
และผมลองกลับมาดูหน้าฟอร์ม ผมลองสร้าง alert หากป้อน user หรือ pass ผิดก็ให้แสดง .... ผมลองป้อนให้ผิดก็จะ alert ขึ้นมาครับ แต่พอลองป้อนให้ถูก ทั้ง user pass มันจะนิ่งอ่ะครับไม่กระโดนไปตามคำสั่ง window.location='information-ps.php'; ผมว่าน่าจะผิดคำสั่งนี้ป่าวครับ ช่วยดูอีกน่ะครับ ขอบคุณครับ

ไม่ต้อง echo $_POST['user_name']; เพราะจะทำให้ค่าที่กลับมาตรวจสอบไม่เท่ากับ 1 ในไฟล์ check_login.php

ครับพี่ เอาออกแล้วครับแต่ก็ยังไม่ได้ครับ
1 2 3 4 5 6 7 8 9 | if (data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location= 'information-ps.php' ; alert( "OK " ) ; } else { /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $( "#form_login_x" )[0].reset(); alert( "กรุณาตรวจสอบ Password ของท่านให้ถูกต้อง" ) ; } |
ผมลองให้ alert เมื่อถูกหรือผิด ก็ alert น่ะครับ ไม่ทราบ window.location='information-ps.php'; คือไม่ทำงานอ่ะคับผมคิดว่า

แสดงว่าการตรวจสอบไม่มีปัญหาแล้วหละ สวนปัญหาการลิ้งค์ด้วย window.location ตามโค้ดไม่มีอะไรผิดพลาด ลองไล่ดู
บางทีเป็นไปในลักษณะเส้นผม บังภูเขา

ได้แล้วครับพี่ เส้นผมบังภูเขาจริงๆครับ ขอรบกวนอีกเรื่องน่ะครับพี่ คือเมื่อผมทำการล๊อคเอ้า ออกจากระบบ คือผมเก็บข้อมูลในตัวแปล session เหมือนที่พี่แนะนำมาครับ แล้วผมอยากออกจากระบบก็คืออยากทำลาย session ตอนนี้ก็ได้แล้วน่ะครับ แต่อยากได้แบบ เมื่อผู้ใช้คลิกที่ Logout ให้ผู้ใช้ คอนเฟิร์ม อีกครับ ว่าจะออกหรือไม่ เช่น เมื่อกด Logout อยากให้ alert ขึ้น คุณต้องการออก หรือไม่ yes หรือ no
ประมาณนี้ครับ
/**นี้เป็นโค๊ด ล๊อคเอ้าครับชื่อไฟล์ check_logout.php อ่ะครับ **
1 2 3 4 | <?php if (session_is_registered( "ses_user" )) session_unregister( "ses_user" );?> <script language= 'javascript' > parent.location.href= "perlogin.php" ; </script> |


มีเรื่องรบกวนพีๆอีกแล้วครับ เรื่องของการล๊อคอินอ่ะครับ จากโค๊ด
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | **ส่วนของฟอร์มล๊อคอิน <form id= "form_login_x" name= "form_login_x" method= "post" action= "" > <h1>ระบุข้อมูลของท่านเพื่อเข้าใช้ระบบ E-Office</h1> <p>Identifiable information from you to use E-Office.</p> <label>Name <span class = "small" >Add your name</span> </label> <input type= "text" name= "user_name" id= "user_name" /> <BR/><BR/><BR /><BR /> <label>Password <span class = "small" >Min. size 6 chars</span> </label> <p> <input type= "password" name= "user_pass" id= "user_pass" /> <BR /><BR /> <!--<input type= "submit" name= "LoginBT" id= "LoginBT" value= "Login" />--> <button type= "submit" name= "LoginBT" id= "LoginBT" value= "Login" >Login</button> </p> <strong>*การเข้าระบบครั้งแรกจำเป็นต้องขอ User & Password กรุณาติดต่อ แผนก IT น่ะครับ*</strong><BR /> <strong>หรือหากมีปัญหาในการ เข้าระบบกรุณาติดได้ที่ info@oonraksamui.com</strong> <div class = "spacer" ></div> <!-- <script language= "JavaScript" > function check() { if (document.form.user.value== "" ) { alert( "กรุณากรอกข้อมูล User ของท่านให้ถูกต้อง" ) ; document.form.user.focus() ; return false ; } else if (document.form.password.value== "" ) { alert( "กรุณาตรวจสอบ Password ของท่านให้ถูกต้อง" ) ; document.form.password.focus() ; return false ; } else return true ; } </script> --> </form> </div> </center> <BR /><div align= "center" >ระบบ E-Office พัฒนาขึ้นโดย ศูนย์สารสนเทศโรงเรียนอุ่นรักเพื่ออำนวยความสะดวกในการจัดการข้อมูลให้กับ ครู / บุคลากร ในโรงเรียนเท่านั้น <script type= "text/javascript" > $( function (){ $( "#form_login_x" ).submit( function (){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน // ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax $.post( "check_login.php" ,$( "#form_login_x" ).serialize(), function (data){ if (data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location = 'home.php' //alert("OK ") ; } else { /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $( "#form_login_x" )[0].reset(); alert( "กรุณาตรวจสอบ User & Password ของท่านอีกครั้งครับ" ) ; } }); return false; }); }); </script> |
---------------------------------
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 | **ส่วนเช็คชื่อไฟล์ check_login.php ** <?php session_start(); header( "Content-type:text/html; charset=UTF-8" ); header( "Cache-Control: no-store, no-cache, must-revalidate" ); header( "Cache-Control: post-check=0, pre-check=0" , false); // ??????????????????????????????? mysql_connect( "localhost" , "root" , "415236" ) or die ( "Cannot connect the Server" ); mysql_select_db( "DB_position" ) or die ( "Cannot select database" ); mysql_query( "set character set utf8" ); if ( $_POST [ 'user_name' ]!= "" && $_POST [ 'user_pass' ]!= "" ){ $q = "SELECT * FROM tbl_admin WHERE User_ID='" . $_POST ['user_name ']."' "; $q .= " AND Password='" . $_POST ['user_pass ']."' LIMIT 1 "; $qr =mysql_query( $q ); if (mysql_num_rows( $qr )>0){ $rs =mysql_fetch_array( $qr ); $_SESSION [ 'ses_user' ]= $rs [ 'User_ID' ]; // ???????????????? session ??????????? echo "1" ; // ???????????????? //echo $_POST['user_name'] . $_POST['user_pass']; } else { echo "0" ; } } else { echo "0" ; } ?> |
ปัญหาคือผมทดสอบใน เครื่องใช้ localhost ทดสอบก็ล๊อคอินผ่านน่ะครับ แต่พอผมอัพขึ้นโฮตส์ ดันล๊อคอินไม่ได้อ่ะคับ ไม่รู้เป็นเพราะอะไรอ่ะครับ ในส่วนของ DB ก็โอเคดีครับ รบกวนหน่อยน่ะคับ
Link http://oonraksamui.com/perlogin.php
