|
|
|
เปลี่ยน User ใหม่ ได้แต่พอรีเพจกลับมาชื่อใหม่ไม่แสดง เป็นเพราะCookie หรือเปล่า? |
|
|
|
|
|
|
|
โค๊ดคุณไม่เห็นได้ใช้คุ๊กกี้เลยนี่ครับ?
ผมว่ามันอาจจะผิดที่คำสั่ง sql ที่ส่งไป select ครับ
ลอง เอาบรรทัดนี้
$result = mysql_query("select * from admin_member where user='$login_true_admin'") or die ("Err Can not to result") ;
ไป echo ออกมาดูก่อนครับว่าตอนที่มันส่งคำสั่งไป sql มันเอาอะไรไปเป็นเงื่อนไขในช่วง where
เพราะผมว่ามันอาจจะส่งค่าไปเทียบผิด มันเลย select ไม่เจอ
พอคุณสั่ง echo มันเลยไม่มีอะไรแสดงออกมา
แต่ในกรณีที่คุณ logout ออกไปก่อนนั้น แล้วแสดงค่าถูกต้อง
อาจจะเป็นเพราะว่า
ตัวแปร $login_true_admin ที่ถูก reset ค่ากลายเป็นค่าที่ถูกต้องแล้ว
เมื่อส่งไป select มันเลยหาเจอครับ
จบ
|
|
|
|
|
Date :
2010-02-28 14:06:16 |
By :
iamatomix |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ได้ใช้ cookie ครับแต่สงสัยว่าเลาเปลี่ยนชื่อได้แล้ว รีเพจกลับมา ชื่อใหม่ไม่ยอมแสดง เป็นเพราะ cookie
ที่ browser จำของเดิมไว้หรือเปล่า ถ้าใช่แล้วจะ เคลีรย์มันอย่างไร เพื่อให้ User ใหม่ปรากฎเดี๋ยวนั้นเลย
ซึ่งเมื่อ Login เข้ามาครั้งแรกมันแสดงชื่อผู้ใช้ถูกต้องทุกครั้งแต่มีปัญหาเฉพาะตอนเปลี่ยนชื่อใหม่แล้ว รีเพจกลับมา
มันไม่ยอมแสดงเดี๋ยวนั้นเลยเป็นเพราะอะไร
|
|
|
|
|
Date :
2010-02-28 14:47:52 |
By :
Mammoth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง Logout ออกแล้ว login เข้ามาใหม่
ถ้า login เข้ามาด้วยชื่อ username ใหม่ แล้วได้
แสดงว่า ตอนเปลี่ยน ชื่อ login ตอนแก้ไขข้อมูล
คุณไม่ได้สั่งให้ register ชื่อ login ที่เปลี่ยนใหม่ด้วย
ก็เลย จำชื่อเก่าไว้ ชื่อใหม่ไม่จำ
ประมาณนี้ครับ
|
|
|
|
|
Date :
2010-02-28 15:01:05 |
By :
yomaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ ตอนคุณสั่งเปลี่ยน username ใช่ไหมครับ
ก็ บันทึก ฐานข้อมูลปกติ
และตอนจะลงทะเบียน session ก็เหมือนกับตอนคุณ login เข้าระบบ นั่นแหล่ะครับ
ผมไม่แน่ใจว่าคุณตั้งตัวแปรว่าอย่างไร
แต่ก็จะประมาณนี้ นะครับ หลักการ
$username="$newusername";
session_register("username");
ประมาณนี้ครับ
|
|
|
|
|
Date :
2010-02-28 15:18:02 |
By :
yomaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้ครับเบื้องต้นผม insert ตัวเอง (Admin) ด้วยการเขียนไฟล์ setup.php include("config.inc.php") ;
โยน user admin และ pwd เข้า msql เองก่อน
$sql[3] = "INSERT INTO admin_member (user,password) VALUES ('admin', 'admin')" ;
for($i=0;$i<4;$i++) {
$result = mysql_query($sql[$i]) ;
}
หลังจากนั้นก็ใช้
Code (PHP)
<?
/*เช็คสถานะ Admin user*/
include("../config.inc.php") ;
mysql_select_db($db) ;
$result = mysql_query("select * from admin_member where user='$login_true_admin'") or die ("Err Can not to result") ;
$dbarr = mysql_fetch_array($result) ;
?>
/*ตัวโค้ดที่ใช้แสดง Admin user*/
11.<?php echo $dbarr['user'] ; ?>
และเขียน Form change_pwd.php เพื่อเปลี่ยน User ไปสั่งไฟล์ admin_update.php แค่นี้เองครับ
ด่านล่างคือไฟล์ admin_update.php
Code (PHP)
<?php
session_start() ;
if(!session_is_registered("login_true_admin")){
echo "<meta http-equiv='refresh' content='0; url = index.php'>" ;
exit() ;
}
include("../config.inc.php") ;
mysql_select_db($db) ;
$sql = "update admin_member set user='$user' " ;
$result = mysql_query($sql) or die("ERR PROGRAME") ;
if($result){
echo "<p> </p><center><font face='Tahoma,MS Sans Serif' size='3' color='#003F84'><b>ชื่อของคุณ ได้ถูกเปลี่ยนใหม่แล้วครับ <br>โปรดรอสักครู่...</b></font></center>";
echo "<meta http-equiv='refresh' content='4 ;url=change_pwd.php'>" ;
}
?>
เมื่อ refresh กลับมาที่หน้า Form change_pwd.php ซึงมีคำสั่ง
/*เช็คสถานะ Admin user*/ กับ /*ตัวโค้ดที่ใช้แสดง Admin user*/ ก็มีแค่นี้ครับ แต่มันไม่แสดงหลังจากเปลี่ยน
user ใหม่
|
|
|
|
|
Date :
2010-02-28 15:50:11 |
By :
Mammoth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนโปรแกรมในหน้า Login มีดังนี้ครับ
Code (PHP)
<?php
session_start() ;
if(isset($user_login) and isset($pwd_login)) {
include("../config.inc.php") ;
$connect = mysql_connect($host,$username,$password) ;
mysql_select_db($db) ;
$result = mysql_query("select user,password from admin_member where user='$user_login' and password='$pwd_login'") ;
$num = mysql_num_rows($result) ;
if($num<=0) {
echo "<br><br><center><font size='3' color='#FD2B00'face='Tahoma,MS Sans Serif'><b>รหัสผ่านไม่ถูกต้องครับ</b></font></center>" ;
print "<meta http-equiv=refresh content=2;URL=index.php>";
exit() ;
}
else {
$dbarr = mysql_fetch_array($result) ;
if($user_login!=$dbarr['user'] and $pwd_login!=$dbarr['password']) {
echo "รหัสผ่านไม่ถูกต้อง" ;
exit() ;
}
else {
$login_true_admin = $user_login ;
session_register("login_true_admin") ;
echo "<meta http-equiv='refresh' content='0 ;url=menu.php'>" ;
exit() ;
}
}
}
?>
ผ่าน Form ใส่ User และ Pwd สั่งที่หัว Form ดังนี้ครับ
<form name="checkForm" method="post" action="<?php echo "$PHP_SELF" ; ?>" onSubmit="return check()">
|
|
|
|
|
Date :
2010-02-28 16:01:35 |
By :
Mammoth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สั้นๆครับ
คุณอัพเดทค่าใน DB
แต่ไม่ได้อัพเดทค่าที่เก็บไว้ในตัวแปร <== มันก็จะจำค่าล่าสุดที่มันอ่านมา
เมื่อสั่งแสดง จึงเป็นค่าเก่า
เมื่อคุณล๊อกเอ้าท์แล้วล๊อกอินใหม่
ก็จะอ่านค่าใน DB เข้าใหม่และเอาไปเก็บใส่ตัวแปร
เมื่อสั่งแสดง เลยเป็นค่าปัจจุบัน
วิธีแก้
เมื่อตอนอัพเดทค่าใน DB
ก็ให้โหลดค่าปัจจุบันมาเก็บในตัวแปรด้วย
จบ
|
|
|
|
|
Date :
2010-02-28 22:48:45 |
By :
iamatomix |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะพยายามลองงมทำดูนะครับ ขอบคุณครับ
|
|
|
|
|
Date :
2010-02-28 23:41:39 |
By :
Mammoth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห้อๆ มั่วจนได้ ถูกไม่ถูกหลักไม่รู้ แต่ใส่แล้วมันไปค้นหาค่าใหม่แล้วรีกลับมาได้
Code (PHP)
<?
/*เช็คสถานะ Admin user select * from admin_member */
include("../config.inc.php");
mysql_select_db($db) ;
$sql = "select * from admin_member " ;
$result = mysql_query($sql) ;
$row = mysql_num_rows($result) ;
$dbarr = mysql_fetch_array($result) ;
?>
admin มีคนเดียวนะครับถ้ามีหลายคนคงเละ งิงิ
|
|
|
|
|
Date :
2010-03-01 17:48:34 |
By :
Mammoth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|