Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ช่วยดูโค้ด redirect ไปยังเพจต่างๆ หลังจากการ login หน่อยครับ ใช้ jquery (ต้องการแบ่งสิทธิการเข้าถึง)


ช่วยดูโค้ด redirect ไปยังเพจต่างๆ หลังจากการ login หน่อยครับ ใช้ jquery (ต้องการแบ่งสิทธิการเข้าถึง)

 
Topic : 050416



โพสกระทู้ ( 22 )
บทความ ( 0 )



สถานะออฟไลน์



ผมไปหาตัว jQuery มาใช้นะครับ
ตอนนี้ปรับใช้กับฐานข้อมูลได้แล้ว user ในฐานข้อมูลสามารถ login เข้าสู่ระบบได้
แต่ทีนี้ผมต้องการให้ user แต่ละระดับเข้าสู่ระบบไม่เหมือนกัน
user ธรรมดาก็เข้าไป page แรก
admin ก็เข้าไปจัดการ backend

จะต้องปรับโค้ดยังไงหรอครับ หรือมีแหล่งให้ผมศึกษาเพิ่มรึเปล่าครับ
แบบว่ามือใหม่ พึ่งเริ่ม Ajax jQuery ความรู้ยังไม่พอครับ อาศัยแก้ไปเรื่อยๆ


init.js
// Preload Images
img1 = new Image(16, 16);  
img1.src="images/spinner.gif";

img2 = new Image(220, 19);  
img2.src="images/ajax-loader.gif";

// When DOM is ready
$(document).ready(function(){

// Launch MODAL BOX if the Login Link is clicked
$("#login_link").click(function(){
$('#login_form').modal();
});

// When the form is submitted
$("#status > form").submit(function(){  

// Hide 'Submit' Button
$('#submit').hide();

// Show Gif Spinning Rotator
$('#ajax_loading').show();

// 'this' refers to the current submitted form  
var str = $(this).serialize();  

// -- Start AJAX Call --

$.ajax({  
    type: "POST",
    url: "do-login.php",  // Send the login info to this page
    data: str,  
    success: function(msg){  
   
$("#status").ajaxComplete(function(event, request, settings){  
 
 // Show 'Submit' Button
$('#submit').show();

// Hide Gif Spinning Rotator
$('#ajax_loading').hide();  

 if(msg == 'OK') // LOGIN OK?
 {  
 var login_response = '<div id="logged_in">' +
	 '<div style="width: 350px; float: left; margin-left: 70px;">' + 
	 '<div style="width: 40px; float: left;">' +
	 '<img style="margin: 10px 0px 10px 0px;" align="absmiddle" src="images/ajax-loader.gif">' +
	 '</div>' +
	 '<div style="margin: 10px 0px 0px 10px; float: right; width: 300px;">'+ 
	 "You are successfully logged in! <br /> Please wait while you're redirected...</div></div>";  

$('a.modalCloseImg').hide();  

$('#simplemodal-container').css("width","500px");
$('#simplemodal-container').css("height","120px");
 
 $(this).html(login_response); // Refers to 'status'

// After 3 seconds redirect the 
setTimeout('go_to_private_page()', 3000); 
 }  
 else // ERROR?
 {  
 var login_response = msg;
 $('#login_response').html(login_response);
 }  
      
 });  
   
 }  
   
  });  
  
// -- End AJAX Call --

return false;

}); // end submit event

});

function go_to_private_page()
{
window.location = 'admin/index.php'; // ผมต้องการแก้ตรงนี้ครับ ถ้าเป็น user ธรรมดาให้ไป user/index.php
}



do-login.php
<?php
session_start();

if($_POST['action'] == 'user_login')
{
$username = $_POST["username"];
$password = $_POST["password"];

$sql = "select * from member as m, classmember as c where m.username = '$username' and m.password = '$password' and m.classid = c.classid";
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);
$user = $rows["username"];
$pass = $rows["password"];
$class = $rows["classname"];
$firstname = $rows["firstname"];
$lastname = $rows["lastname"];
if(isset($user))
{
$_SESSION["user"] = $user;
$_SESSION["password"] = $pass;
$_SESSION["firstname"] = $firstname;
$_SESSION["lastname"] =  $lastname;
$_SESSION["class"] = $class;

			if($_POST['remember_me'])
			{
			// set the cookies for 1 month

			setcookie ("remember_me", true, (time() + TIME_DIFF) + (3600 * 24 * 30));
			setcookie ("info", $user_id.','.md5($password), (time() + TIME_DIFF) + (3600 * 24 * 30));
			}
	        echo 'OK'; // this response is checked in 'process-login.js'
	

}
	else 
	{
    $auth_error = '<div id="notification_error">The login info is not correct.</div>';

    echo $auth_error;
	}
}

?>



ส่วนของ form login
<!-- jqyrey login -->					
<div id="login_form" style='display:none'>
	<div id="status" align="left">
	<center>
	<h1><img src="images/key.png" align="absmiddle">&nbsp;LOGIN</h1> 
	<div id="login_response"><!-- spanner -->
	</div> <!--end div login_respone-->
	</center>
	<form id="login" action="javascript:alert('success!');">
		<input type="hidden" name="action" value="user_login">
		<input type="hidden" name="module" value="login">
		<label>username</label><input type="text" name="username"><br />  
		<label>Password</label><input type="password" name="password"><br />  
		<label>&nbsp;</label><input value="Login" name="Login" id="submit" class="big" type="submit" />
		<div id="ajax_loading">
			<img align="absmiddle" src="images/spinner.gif">&nbsp;Processing...	
  		</div> <!--end div ajax_loading -->
	</form>
	</div> <!--end div status -->
</div> 
<!--end jquery login -->           




Tag : PHP, MySQL, Ajax, jQuery



ประวัติการแก้ไข
2010-10-18 23:09:37
2010-10-18 23:10:17
2010-10-18 23:11:50
2010-10-18 23:12:38
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-18 23:06:01 By : taleblue View : 3588 Reply : 8
 

 

No. 1

Guest


ไฟล์ do-login.php ที่แสดงคำว่า OK ก็เปลี่ยนเป็นแสกงประเภท user อย่างเช่น Admin, User, Guest

แล้วก็เช็คค่าแบบเดียวกับเช็กคำว่า OK
โดยใช้คำสั่ง javascript
window.location = 'backend.php';
เพื่อย้ายหน้า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-18 23:11:52 By : num
 

 

No. 2



โพสกระทู้ ( 22 )
บทความ ( 0 )



สถานะออฟไลน์


คือยังไม่ค่อยเข้าใจน่ะครับ

ทำไงหว่า - -"

แล้วมันไม่ต้องไปยุ่งกับตัว init.js หรอครับ
เพราะผมเห็นมันมีอยู่แค่ในไฟล์นั้นเองที่เรียกไปหน้าอื่น
ยังไงรบกวนขอละเอียดอีกนิดนะครับ


ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-18 23:45:58 By : taleblue
 

 

No. 3



โพสกระทู้ ( 47 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 2 เขียนโดย : taleblue เมื่อวันที่ 2010-10-18 23:45:58
รายละเอียดของการตอบ ::
พี่เค้าหมายถึงว่าไฟล์ที่เป็นตัวเช็คผลการล็อคอินของ JQuery ให้เช็คสิทธิ์การใช้มาแล้วแสดงแทนข้อความ OK

แล้วค่อยมาเช็คเงื่อนไขการ Redirect ด้วยข้อความที่ส่งกลับมาใน JQuery น่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-18 23:47:58 By : manosate
 

 

No. 4

Guest


//หน้า do-login.php
ไฟล์ do-login.php ที่แสดงคำว่า OK ก็เปลี่ยนเป็นแสกงประเภท user อย่างเช่น Admin, User, Guest

วิธีแก้ก็คือแสดงค่าที่อยู่ในตัวแปรแทนแสดงคำว่า OK ครับ


//หน้า init.js
แล้วก็เช็คค่าแบบเดียวกับเช็กคำว่า OK
โดยใช้คำสั่ง javascript
window.location = 'backend.php';
เพื่อย้ายหน้า

วิธีแก้ก็คือเพิ่มคำสั่ง if ไปครับ
เช่น
if (msg == 'admin'){
window.location = 'backend.php';
}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-18 23:51:02 By : num
 

 

No. 5



โพสกระทู้ ( 22 )
บทความ ( 0 )



สถานะออฟไลน์




ผมลองแก้ตามที่บอกไว้ดูแล้วนะครับ

มันบอกว่า
You are successfully logged in!
Please wait while you're redirected...
ตามปกติเลย

แต่มันมันไม่ redirect ให้น่ะครับ มันหมุนๆๆๆๆๆๆๆ แต่ไม่เปลี่ยนหน้าให้ซักที


do-login.php
if($class=='admin')
			echo 'admin'; // this response is checked in 'process-login.js
			else echo 'user';



init.js
function go_to_private_page()
{
	if(msg == 'user')
	window.location = 'package.php'; // Members Area
	else window.location = 'admin/index.php';
}


ผมแก้ไปตามโค้ดนี้ ถูกรึเปล่าครับ 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-19 00:27:10 By : taleblue
 

 

No. 6

Guest


do-login ผมไม่เห็นโค้ดเต็มแต่เข้าใจว่าโค้ดถูกแล้ว

ดูตรง init.js ครับ
// Preload Images
img1 = new Image(16, 16);  
img1.src="images/spinner.gif";

img2 = new Image(220, 19);  
img2.src="images/ajax-loader.gif";

// When DOM is ready
$(document).ready(function(){

// Launch MODAL BOX if the Login Link is clicked
$("#login_link").click(function(){
$('#login_form').modal();
});

// When the form is submitted
$("#status > form").submit(function(){  

// Hide 'Submit' Button
$('#submit').hide();

// Show Gif Spinning Rotator
$('#ajax_loading').show();

// 'this' refers to the current submitted form  
var str = $(this).serialize();  

// -- Start AJAX Call --

$.ajax({  
    type: "POST",
    url: "do-login.php",  // Send the login info to this page
    data: str,  
    success: function(msg){  
   
$("#status").ajaxComplete(function(event, request, settings){  
 
 // Show 'Submit' Button
$('#submit').show();

// Hide Gif Spinning Rotator
$('#ajax_loading').hide();  

 if(msg == 'user' || msg == 'admin') // LOGIN OK?
 {  
 var login_response = '<div id="logged_in">' +
	 '<div style="width: 350px; float: left; margin-left: 70px;">' + 
	 '<div style="width: 40px; float: left;">' +
	 '<img style="margin: 10px 0px 10px 0px;" align="absmiddle" src="images/ajax-loader.gif">' +
	 '</div>' +
	 '<div style="margin: 10px 0px 0px 10px; float: right; width: 300px;">'+ 
	 "You are successfully logged in! <br /> Please wait while you're redirected...</div></div>";  

$('a.modalCloseImg').hide();  

$('#simplemodal-container').css("width","500px");
$('#simplemodal-container').css("height","120px");
 
 $(this).html(login_response); // Refers to 'status'

// After 3 seconds redirect the 
setTimeout(function(){
	if(msg == 'user')
	window.location = 'package.php'; // Members Area
	else window.location = 'admin/index.php';
}, 3000); 
 }  
 else // ERROR?
 {  
 var login_response = msg;
 $('#login_response').html(login_response);
 }  
      
 });  
   
 }  
   
  });  
  
// -- End AJAX Call --

return false;

}); // end submit event

});


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-19 10:32:21 By : num
 

 

No. 7



โพสกระทู้ ( 22 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ

ทำแบบที่พี่บอกเลย ตัดฟังก์ชั่น go_to_private_page ทิ้ง

แล้วจับการดักจับไปยัดไว้ใน setTimeout

ตอนนี้สำเร็จแล้วครับ

ขอขอบคุณมากๆเลยนะครับ


ปล. เป็นเพราะอะไรทำไมตอนแรกมันถึงไม่ redirect ให้หรอครับ อยากรู้ไว้หน่อย เผื่อคราวหน้าจะได้ลองแก้ดูเองได้


ประวัติการแก้ไข
2010-10-19 11:31:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-19 11:10:38 By : taleblue
 

 

No. 8

Guest


อันนี้ไม่แน่ใจ แต่อาจจะเกิดจาก ใน function go_to_private_page ไม่รู้จักตัวแปรที่ชื่อ msg ครับ
เลยเกิด error และไม่ทำงานต่อครับ
ส่วน function(){} แบบข้างล่างเรียกว่า anonymous function จะรู้จักตัวแปร msg ครับ
setTimeout(function(){
if(msg == 'user')
window.location = 'package.php'; // Members Area
else window.location = 'admin/index.php';
}, 3000);
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-19 13:47:16 By : num
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูโค้ด redirect ไปยังเพจต่างๆ หลังจากการ login หน่อยครับ ใช้ jquery (ต้องการแบ่งสิทธิการเข้าถึง)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่