|
|
|
ค่า Cookies ที่เป็นตัวเลขหายไปครับ แต่ค่าที่เป็น string ยังอยู่ |
|
|
|
|
|
|
|
จากโค้ดด้านล่างเป็นโค้ดในส่วนของระบบ login ครับ ซึ่งในที่นี้ผมได้ Cookies มาช่วยในการทำระบบล็อกอิน ถ้าดูจากโค้ดก็น่าจะเข้าใจได้ไม่ยากครับ ก็คือเงื่อนไขง่ายๆเลยคือ ถ้า password ที่กรอกเข้ามาตรงกันกลับ password ในฐานข้อมูล ก็จะทำให้เข้าสู่ระบบได้ และจากโค้ดจะเห็นว่า ผมได้ set ค่า COOKIE ต่างๆไว้เพื่อเรียกใช้งาน ซึ่งผมได้ Set expire time ไว้ที่ 1 ปี (31536000) ครับ.
ทีนี้มันมีปัญหาตรงนี้ครับ ถ้าผมทำการล็อกอินเข้าสู่ระบบ และปล่อยทิ้งไว้ประมาณ 24 ชั่วโมง (เวลาโดยประมาณครับ) เมื่อหลังจาก 24 ชั่วโมงผมกลับมาลองใช้งานระบบอีกที ปรากฎว่าค่า COOKIE ที่เป็นตัวเลขนั้นหายไปครับ ถ้าดูจากโค้ดด้านล่างจะมีอยู่ 2 ตัวแปรด้วยกันที่เป็นค่าแบบตัวเลขซึ่งก็คือ
Code (PHP)
setcookie("member_tmp", $mb_timp, time() + 31536000); // ----- ค่า timestamp (ค่าหายไป)
setcookie("member_phone", $mb_phne, time() + 31536000); //------ หมายเลขโทรศัพท์ (ค่าหายไป)
ผมได้ลอง Echo ค่าสองค่าที่กล่าวไปข้างต้นออกมาดู ปรากฎว่าเป็นค่าว่างครับ ไม่มีอะไรปรากฎออกมาเลย แต่ในขณะที่ค่าอื่นๆที่ไม่ใช่ตัวเลขสามารถ Echo ค่าออกมาได้ เช่น
Code (PHP)
setcookie("member_name", $mb_name, time() + 31536000); // ------ ชื่อ (ค่ายังอยู่)
setcookie("member_lastname", $mb_lastname, time() + 31536000); // ----- นามสกุล (ค่ายังอยู่)
setcookie("member_email", $mb_mail, time() + 31536000); // ----- อีเมล์ (ค่ายังอยู่)
setcookie("login_status", "login_ok", time() + 31536000); // ----- login status (ค่ายังอยู่)
ส่วนชนิดข้อมูลในฐานข้อมูลผมเก็บเป็น VARCHAR ทั้งหมดครับ และโฮสที่ใช้ก็ยังเป็น localhost อยู่ ไม่รู้ว่ามันจะเกี่ยวข้องกันหรือเปล่า รบกวนท่านที่เคยมีประสบการณ์ช่วยชี้แนะด้วยนะครับ ขอบคุณครับ...
Code (PHP)
if($mb_md5_pass == $md5_pass){
$mb_timp = $rsl[mb_regis_tmp];
$mb_name = $rsl[mb_name];
$mb_lastname = $rsl[mb_last_name];
$mb_phne = $rsl[mb_phone];
$mb_mail = $rsl[mb_email];
setcookie("member_tmp", $mb_timp, time() + 31536000);
setcookie("member_name", $mb_name, time() + 31536000);
setcookie("member_lastname", $mb_lastname, time() + 31536000);
setcookie("member_phone", $mb_phne, time() + 31536000);
setcookie("member_email", $mb_mail, time() + 31536000);
setcookie("login_status", "login_ok", time() + 31536000);
echo "login_ok";
}
Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2015-07-26 13:58:35 |
By :
prcancle-13 |
View :
927 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setcookie("member_tmp", $mb_timp, time() + 31536000);
setcookie("member_phone", $mb_phne, time() + 31536000);
ลองดูชื่อตัวแปร สกดถูกหรือเปล่าครับ
ทดสอบแทนค่า เป็นตัวเลข เข้าไปตรงๆ แล้วค่ายังอยู่ไหม
|
ประวัติการแก้ไข 2015-07-26 14:31:51
|
|
|
|
Date :
2015-07-26 14:28:55 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวแปรน่าจะถูกต้องทั้งหมดครับ เพราะหลังจากที่ล็อกอินเข้าระบบใหม่ๆ ค่าทุกค่าสามารถ Echo ออกมาดูได้ครับ แต่ปัญหาคือเมื่อล็อกอินทิ้งไว้ประมาณ 1วัน ลองกลับมา Echo ค่าดูอีกที ปรากฎว่า ค่า timstamp และ หมายเลขโทรศัพท์หายไป ซึ่งผมก็มองว่าทำไมหายไปเฉพาะที่เป็นตัวเลข แต่ทำไมพวกตัวแปรที่เก็บค่าตัวอักษรยังอยู่....
|
|
|
|
|
Date :
2015-07-26 14:55:18 |
By :
prcancle-13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|