ได้ทำการสร้างฟอร์ม login โดยมีการเช็คค่าโดยการใช้ ajax
ในไฟล์ที่ ajax เรียนนั้นถ้าข้อมูลถูกต้องจะกำหนดค่า session ขึ้นมาเพื่อที่เก็บค่า user
จึงใช้ session เก็บค่านั้นเพื่อส่งไปยังหน้าถัดไป ปัญหาที่เกิดคือ ค่า session ที่ส่งไปยังเพจถัดไปหลังจาก login สำเร็จกลับไม่มี ทั้งที่ประกาศ session_start(); ไว้ทั้งสามหน้า
หน้า main -> chkLogin ถ้าสำเร็จ -> member
ปัญหาการส่งค่า session ใน ajax
Moderator: mindphp, ผู้ดูแลกระดาน
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41343
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: ปัญหาการส่งค่า session ใน ajax
ลองเอาโค้ดแต่ละหน้ามาลงดูหน่อยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
Re: ปัญหาการส่งค่า session ใน ajax
ขออภัยที่มาลงให้ช้านะคะ
นี้ code หน้า login.php
นี้ code หน้า login.php
โค้ด: เลือกทั้งหมด
if(defined('MAIN_INIT')){
$login_root = MAIN_INIT == 'chklogin' ? '../../' : '';
if($_REQUEST[action] == 'login'){
$login_user = trim($_POST[login_user]);
$login_password = trim($_POST[login_password]);
}elseif($_REQUEST[action] == 'logout'){
setCookie($prefix.'login_user', '', time(), '/');
setCookie($prefix.'login_password', '', time(), '/');
$login_user = '';
$login_password = '';
unset($_SESSION[$prefix][login]);
}elseif(isset($_SESSION[$prefix][login])){
$login_user = $_SESSION[$prefix][login];
$login_password = $_SESSION[$prefx][login][password];
}else{
$_SESSION[$prefix][login] ;
$_SESSION[$prefix][login][password];
}
if($login_user != '' && $login_password != ''){
$login_result = $db->search($config[db_member],'username',$login_user);
if($login_result[username] == $login_user && $login_result[password] == $login_password){
$_SESSION[$prefix][login] = $login_user;
$_SESSION[$prefix][login][password] = $login_password;
if($_SESSION[$prefix][login] == '' && $_SESSION[$prefix][password] == ''){
echo 'no';
}else{
$error = false;
}
}else{
$error = $lng[LOGIN_ERROR];
$login_user = '';
$login_password = '';
}
}
if($login_user == '' || $login_password == ''){
$patt = array('/{(LNG_[A-Z_]+)}/e','/{USERNAME}/','/{PASSWORD}/','/{FUNCTION}/','/{FORMACTION}/','/{REGISTER}/','/{FORGOT}/');
unset($replace);
$replace[] = '$lng[$1]';
$replace[] = $login_user;
$replace[] = $login_password;
$replace[] = 'return chkLogin(login_form.login_user.value,login_form.login_password.value,\'error\')';
$replace[] = 'index.php?action=login';
$replace[] = getURL('register','','','');
$replace[] = getURL('forgot','','','');
$content = preg_replace($patt,$replace,file_get_contents("$login_root$config[temp]member/loginform.html"));
}
}
Re: ปัญหาการส่งค่า session ใน ajax
chkLogin.php
<?php
@header("content-type: text/html; charset=UTF-8");
$referer = getenv("HTTP_REFERER");
$referer = ($referer == '') ? $_SERVER[HTTP_REFERER] : $referer;
$host = $_SERVER[HTTP_HOST];
if(preg_match("/$host/ui",$referer)){
include ('../../bin/config.php');
include ("../../language/$config[lng].php");
include ('../../bin/function.php');
include ('../../bin/db_class.php');
$db = new sql($config[db_server], $config[db_username], $config[db_password], $config[db_name]);
DEFINE('MAIN_INIT', 'chklogin');
include ('login.php');
echo $error;
$db->close();
}
?>
member.php
if(defined('MAIN_INIT')){
if($_SESSION[$prefix][login] == '' && $_SESSION[$prefix][password] == ''){
echo 'no';
}else{
echo 'yes';
}
}
<?php
@header("content-type: text/html; charset=UTF-8");
$referer = getenv("HTTP_REFERER");
$referer = ($referer == '') ? $_SERVER[HTTP_REFERER] : $referer;
$host = $_SERVER[HTTP_HOST];
if(preg_match("/$host/ui",$referer)){
include ('../../bin/config.php');
include ("../../language/$config[lng].php");
include ('../../bin/function.php');
include ('../../bin/db_class.php');
$db = new sql($config[db_server], $config[db_username], $config[db_password], $config[db_name]);
DEFINE('MAIN_INIT', 'chklogin');
include ('login.php');
echo $error;
$db->close();
}
?>
member.php
if(defined('MAIN_INIT')){
if($_SESSION[$prefix][login] == '' && $_SESSION[$prefix][password] == ''){
echo 'no';
}else{
echo 'yes';
}
}
Re: ปัญหาการส่งค่า session ใน ajax
ส่วน
ob_start() และ session_start() นั้นอยู่ในหน้า config.php ซึ่งมีการ include อยู่ในส่วนของ index.php อยู่แล้วคะ
เมื่อทำการ login จะตรวจสอบค่าถ้าถูกต้องจะส่งค่า $error=false เพื่อให้ในส่วนของ ajax ตรวจสอบค่าถ้าได้ค่าคืนมาเป็น false ก็จะไปยังหน้า member.php เมื่อไปหน้า member.php ที่ลองทำการทดสอบค่าว่าค่าใน session ว่างหรือไม่ ปรากฏว่าค่า session เป็นค่าว่าง
*ค่าในหน้า member.php ลงผิด
แก้จาก $_SESSION[$prefix][password] เป็น $_SESSION[$prefix][login][password]
ob_start() และ session_start() นั้นอยู่ในหน้า config.php ซึ่งมีการ include อยู่ในส่วนของ index.php อยู่แล้วคะ
เมื่อทำการ login จะตรวจสอบค่าถ้าถูกต้องจะส่งค่า $error=false เพื่อให้ในส่วนของ ajax ตรวจสอบค่าถ้าได้ค่าคืนมาเป็น false ก็จะไปยังหน้า member.php เมื่อไปหน้า member.php ที่ลองทำการทดสอบค่าว่าค่าใน session ว่างหรือไม่ ปรากฏว่าค่า session เป็นค่าว่าง
*ค่าในหน้า member.php ลงผิด
แก้จาก $_SESSION[$prefix][password] เป็น $_SESSION[$prefix][login][password]
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41343
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: ปัญหาการส่งค่า session ใน ajax
ลงโค้ดช่วยครอบโค้ดหน่อยครับ
ขั้นต้น ลอง print_r($_SESSION);
ท้ายไฟล์ที่สร้างก่อนครับ และลองดูให้หน้าอื่นๆ
ขั้นต้น ลอง print_r($_SESSION);
ท้ายไฟล์ที่สร้างก่อนครับ และลองดูให้หน้าอื่นๆ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
- 0 ตอบกลับ
- 2611 แสดง
-
โพสต์ล่าสุด โดย jataz2
17/05/2016 4:17 pm
-
- 0 ตอบกลับ
- 1979 แสดง
-
โพสต์ล่าสุด โดย abdkode
14/01/2019 1:49 pm
-
-
โพสต์ใหม่ สอน PHP7 การใช้งาน Session
โดย เซสชั่นเบื้องต้น » 25/10/2021 1:41 pm » ใน Programming - PHP - 1 ตอบกลับ
- 2499 แสดง
-
โพสต์ล่าสุด โดย mindphp
25/10/2021 1:54 pm
-
-
- 0 ตอบกลับ
- 1133 แสดง
-
โพสต์ล่าสุด โดย seomail
31/01/2022 4:11 pm
-
- 0 ตอบกลับ
- 3791 แสดง
-
โพสต์ล่าสุด โดย จันนุสรณ์ ดีแก่
23/11/2018 4:40 pm
-
- 0 ตอบกลับ
- 2903 แสดง
-
โพสต์ล่าสุด โดย จันนุสรณ์ ดีแก่
26/11/2018 6:35 pm
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 81