if (cancle==false) { var req = Inint_AJAX(); req.onreadystatechange = function () { if (req.readyState==4) { if (req.status==200) { var ret=req.responseText; //รับค่ากลับมา document.getElementById("login_table").innerHTML=ret; if (ret=='true'){document.location.reload();} } } }; req.open("POST", "checkuser.php"); //สร้าง connection req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=tis-620"); // set Header req.send("user="+username+"&passwd="+passwd+"&action="+action); //ส่งค่า
ใส่หลังจากอัปเดทข้อมูลแล้วภายใน Javascript ครับ
มันไม่ทำงานครับ งง
ไฟล์ login.php
<?php
ob_start();
session_start();
//header("content-type: application/x-javascript; charset=tis-620");
header("content-type: text/html; charset=tis-620");
include("setting.php");
include($config["WEB"]["PATH"]."includes/function.php");
if(!$Conn = db_connect()){
print "DB Connection fail!!!";
exit(0);
}
$_WELCOME="
<img src=\"".$config["WEB"]["URL"]."images/glass_bt1.gif\" width=\"60\" height=\"60\" alt=\"Welcome\" />
<br />ยินดีต้อนรับ คุณ <a href=\"javascript:void(0);\"
style=\"color:#000;\">\$SESSION[\"login_name\"]</a><br/><a href=\"javascript:void(0);\" onclick=\"javascript: Send_logout();\"
style=\"color:#FFF; display:block; font-weight:bold;\">ออกจากระบบ?</a>
";
$_LOGIN = "
<form name=\"frm_login\" id=\"frm_login\" action=\"javascript:Send_login();\">
<strong>เข้าระบบ</strong><br />
ชื่อผู้ใช้ : <input name=\"lname\" type=\"text\" id=\"lname\" size=\"10\" maxlength=\"255\" /><br />
รหัสผ่าน : <input name=\"lpassword\" type=\"password\" id=\"lpassword\" size=\"10\" maxlength=\"255\" /><br />
<a href=\"javascript:void(0);\" onClick=\"Send_login();\" style=\"color:#fff; text-decoration:none;
font-weight:bold;\">เข้าระบบ...</a> || <a href=\"javascript:void(0);\" style=\"color:#900;
text-decoration:none; font-weight:bold;\"> ลืมรหัสผ่าน?</a><br />
<a href=\"javascript:void(0);\" style=\"color:#fff; text-decoration:none; font-weight:bold;\">ลงทะเบียน... </a>
</form>
";
$_LOGOUT = "
<img src=\"".$config["WEB"]["URL"]."images/glass_bt1.gif\" width=\"60\" height=\"60\" alt=\"Welcome\" /><br />
แล้วกลับมาเยือนเราอีกนะ
";
//ตรวจสอบการล็อกอิน
if($_GET["send_login"] == true){
if(chk_user_state($_POST["lname"],MD5($_POST["lpassword"]))){ //เข้าระบบแล้ว
// ส่งหน้าต้อนรับกลับไป
$pt = '/(\$SESSION\["login_name"\])/i';
$_WELCOME = preg_replace($pt,$_SESSION["login_name"],$_WELCOME );
print $_WELCOME;
print "<script language=\"javascript1.5\" type=\"text/javascript\">
<!--
document.location.reload();
//-->
</script>";
exit(0);
}else{
//ส่งหน้าให้กรอกชื่อผู้ใช้ไหม
print $_LOGIN;
exit(0);
}
}
// ส่งค่าออกจากระบบมา
if($_GET["send_logout"] == true){
user_logout();
// แสดงหน้าส่งท้าย
print $_LOGOUT;
exit(0);
}
// ไม่มีการส่งค่าอะไรมา ให้แสดงฟอร์มล็อกอิน
if($_SESSION["login_state"]){ //เข้าระบบแล้ว
// ส่งหน้าต้อนรับกลับไป
$pt = '/(\$SESSION\["login_name"\])/i';
$_WELCOME = preg_replace($pt,$_SESSION["login_name"],$_WELCOME );
print $_WELCOME;
exit(0);
}else{
//ส่งหน้าให้กรอกชื่อผู้ใช้ไหม
print $_LOGIN;
exit(0);
}
@mysql_close($Conn);
?>
<script language="javascript1.5" type="text/javascript">
<!--
//โหลดหน้าล็อกอิน
doCallAjax("$CONFIG["WEB"]["URL"]includes/login.php","null","div_frm_login");
//alert("ssssssssss");
// ฟังก์ชั่น Send_login
function Send_login(){
var pmeter ="";
if(document.getElementById("lname").value.length == 0){
alert("กรุณาใส่ชื่อผู้ใช้ก่อน");
return false;
}
if(document.getElementById("lpassword").value.length == 0){
alert("กรุณาใส่รหัสผ่านก่อน");
return false;
}
pmeter = "lname=" + encodeURI(document.getElementById("lname").value ) + "&lpassword=" + encodeURI( document.getElementById("lpassword").value );
doCallAjax('$CONFIG["WEB"]["URL"]includes/login.php?send_login=true',pmeter,'div_frm_login');
// ใส่ตรงนี้แล้วมันเกิดข้อผิดพลาด เหมือนมันไม่คอย
document.location.reload();
}
//ฟังก์ชั่น Send_logout
function Send_logout(){
if(confirm("คุณมีความมั่นใจแค่ไหนที่ต้องการออกจากระบบ")){
doCallAjax('$CONFIG["WEB"]["URL"]includes/login.php?send_logout=true','','div_frm_login');
}
}
//-->
</script>
เราก็มีปัญหาเหมือนกันเราไม่รู้ว่าจะเอา document.location.reload(); ไปไว้ตรงใหนเหมือนกัน...อยากให้ logout แล้วพอเสร็จ ถึงจะ refresh
อ่ะ เราเอาตัวอย่าง login ajax มาจากเวปนี้อ่ะ รบกวนตอบหน่อยนะ
ลองแล้วค่ะ
<script language=Javascript>
function check_user(username, passwd, action) {
var cancle=false;
if (action=='login') {
if (username.length==0) {
alert('กรุณาป้อน Username ก่อน');
document.login_form.user.focus();
cancle=true;
} else if (passwd.length==0) {
alert('กรุณาป้อน Password ก่อน') ;
document.login_form.passwd.focus();
cancle=true;
}
}
if (cancle==false) {
var req = Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
var ret=req.responseText; //รับค่ากลับมา
document.getElementById("login_table").innerHTML=ret;
}
}
document.location.reload(); //ใส่ตรงนี้แล้วจะไม่มาเลยค่ะ
};
req.open("POST", "check_user.php"); //สร้าง connection
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=tis-620"); // set Header
req.send("user="+username+"&passwd="+passwd+"&action="+action); //ส่งค่า
}
}
//โหลดครั้งแรก
//check_user('', '', '');
</script>
ทำได้แล้วค่ะโดยการเพิ่มนี่ไป
window.location.reload( false );
var ret=req.responseText; //รับค่ากลับมา
document.getElementById("login_table").innerHTML=ret;
window.location.reload(); // ใส่หลังจากรับค่ากลับมาเรียบร้อยแล้วเท่านั้นครับ
}
ตอนแรกที่เราลองใช้
window.location.reload(false);
มันก็หยุดนะ แต่พอคนที่ กรอก user หรือ pass ผิดจะไม่ยอมแสดง
ช่วยหน่อยนะเราทำไม่ได้จริงๆ
ตัวอย่างบนเว็บ หรือไม่ก็ GCMS
ผมทดลองแล้วใช้ได้แล้วครับ
1. ใน Checkuser.php หลังจากที่ check user ผ่านถูกต้องแล้ว เราไม่ต้องให้ echo อะไรออกมานะครับ
แต่เรา กำหนดใหม่ให้ echo อะไรก็ได้ที่เราต้องการ เช่นผมกำหนดว่า
if (isset($user)) {
echo "true";
ให้ echo คำว่า true ครับ
2. ให้กลับไปที่ login.php ครับ ตรงบรรทัด
if (cancle==false) {
var req = Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
var ret=req.responseText; //รับค่ากลับมา
document.getElementById("login_table").innerHTML=ret;
if (ret=='true'){document.location.reload();}
}
}
};
req.open("POST", "checkuser.php"); //สร้าง connection
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=tis-620"); // set Header
req.send("user="+username+"&passwd="+passwd+"&action="+action); //ส่งค่า
ให้เพิ่มตรงตัวสีแดงเข้าไปครับ ก็จะใช้ให้ reload ได้ครับผม
ดูก่อนก็ได้ว่ามันส่งค่าอะไรกลับมาแล้วเราก็ตรวจสอบค่านั้นครับแล้วก็สั่งให้ reload