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

Registered : 107,927

HOME > PHP > PHP Forum > ขอความช่วยเหลือ PHP เกี่ยวกับการเรียก session_start หน่อยครับ



 

ขอความช่วยเหลือ PHP เกี่ยวกับการเรียก session_start หน่อยครับ

 



Topic : 133261



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



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




* เนื่องจากว่าผม เรียกค่าของ session_start(); แล้ว ค่าที่ได้มันไม่ซ้ำกันเลยสักครั้ง ผมควรแก้ไขจากตรงไหนดีครับ

- ทุกหน้าที่เรียก session_start(); จะมีการได้ค่า session_id ใหม่ ๆ เสมอ ซึ่งปกติมันจะต้องได้ค่าเดิม (ใช่หรือไม่ครับ ?)
เช่น sess_00a4u4tq38320aa1a8uofp9s66 , sess_0conuldsog7giic97cdihl8fc6

- การรีเฟรชหน้าเดิมก็ทำให้ค่าของ session_id มีการเปลี่ยนและได้ค่าใหม่ด้วยนะครับ

- โฮลดิ้งใช้บริการของบริษัทแห่งหนึ่ง ได้โทรปรึกษาแล้วเขาบอกว่าปกติในเรื่องของการตั้งค่า แนะนำให้กลับไปแก้ไขที่โค๊ดอาจมีการผิดพลาด

* ปัญหาดังกล่าวทำให้ผมไม่สามารถทำระบบ Login ได้ครับ มันจะเกี่ยวกับการตั้งค่าของ http หรือ https หรือไม่ครับ

รบกวนช่วยแนะนำผมหน่อยครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-03-06 23:52:56 By : IT47 View : 196 Reply : 12
 

 

No. 1



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



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

session โดนเขียนทับหรือป่าว ครับ
ต้องลองดูว่า ตัวแปรที่ประกาศเป็น session
ได้ถูกนำไปกำหนดอะไรเพิ่มเติมหรือป่าวเช่น

$id = $_SESSION['id_name'];
$id = $result['test'];
แล้วค่าของ session จะถูกทับไป ครับ
ลองตรวจสอบดูครับ

มีกระทู้แบบนี้เยอะนะครับ ลองค้นดูก่อนครับ ส่วนตัวที่ผมบอกไป เป็นตัวที่ผมเคยเจอครับ
แต่ว่าใน version ใหม่ ๆ อาจถูกปรับแก้ไขไปแล้ว ยังไงลองตรวจดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 08:58:28 By : nobetaking
 


 

No. 2



โพสกระทู้ ( 7,977 )
บทความ ( 2 )



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


1 ลอง ดู session time out ด้วยครับ เผลอ ไปตั้งอะไรไว้ไหม
https://solutionfactor.net/blog/2014/02/08/implementing-session-timeout-with-php/
2 ดู file permission ของตำแหน่ง path ที่เก็บ file ของ session เขียนไม่ได้หรือเปล่า
3 ตำแหน่งของ คำสั่ง session_start() อยู่ตรงไหน วางถูกที่ถูกตำแหน่งหรือไม่
4 มีการปิดกันการแสดง error หรือไม่ ทำให้ไม่รู้ว่ามันมีอะไรผิดตรงไหน

ปล.
http: หรือ https จะมีผล ก็ต่อเมื่อใช้งาน ร่วมกัน จะถือว่าเป็นคนละ url
ถ้าใช้อย่างใดอย่างหนึ่ง จะไม่มีผลอะไร


ประวัติการแก้ไข
2019-03-07 11:53:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 11:51:20 By : Chaidhanan
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : nobetaking เมื่อวันที่ 2019-03-07 08:58:28
รายละเอียดของการตอบ ::
การประกาศ ค่าการแสดงผล ไม่มีปัญหาใด ๆ ทั้งสิ้น มีปัญหาตรง SESSION_ID ที่ทุกครั้งที่รีเฟรชหรือเปิดหน้าใหม่ ๆ จะได้ค่า SESSION_ID ใหม่เสมอ ไม่ยอมทับค่า SESSION_ID เดิม จึงทำให้ไม่สามารถเรียกค่า SESSION_ID ปัจจุบันที่ทำการประกาศค่าได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 11:54:38 By : IT47
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-03-07 11:51:20
รายละเอียดของการตอบ ::
1 ลอง ดู session time out ด้วยครับ เผลอ ไปตั้งอะไรไว้ไหม
- ส่วนนี้ผมสามารถดูได้ทางไหนครับ ผมขอให้ทางผู้ให้บริการโฮลติ้งช่วยดูแล้วเค้าบอกว่าปกติ ผิดพลาดที่โค๊ดเราเอง
2 ดู file permission ของตำแหน่ง path ที่เก็บ file ของ session เขียนไม่ได้หรือเปล่า
- path ที่เก็บค่าผมตั้งเป็น 777 แต่ในส่วนไฟล์ที่สร้างขึ้นมาที่ขึ้นต้นด้วย sess_[xxxx] เป็น 600 ไม่สามารถแก้ไขอะไรได้เลย
3 ตำแหน่งของ คำสั่ง session_start() อยู่ตรงไหน วางถูกที่ถูกตำแหน่งหรือไม่
- ตำแหน่ง session_start() ผมเอาไว้บันทัดที่สองลองจากตำแหน่งของ session path
4 มีการปิดกันการแสดง error หรือไม่ ทำให้ไม่รู้ว่ามันมีอะไรผิดตรงไหน
- ส่วนนี้ผมไม่ได้ตรวจสอบนะครับ ตรวจสอบแค่ว่ามันเรียกค่า session ที่ประกาศได้ไหม ปรากฎว่าประกาศได้ปกติ แต่ค่า SESSION_ID มันสร้างไฟล์ sess_[xxxxx] มันซ้ำกันเลย ทุกครั้งที่ รีเฟรช หรือ เปิดหน้าใหม่ ค่านี้จะเปลี่ยนทุกครั้งเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 11:59:19 By : IT47
 


 

No. 5



โพสกระทู้ ( 7,977 )
บทความ ( 2 )



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


Code (PHP)
<?php
// กรณี่ที่ไม่รู้จะดู log ได้จากไหน ทำเองเลย ไม่ต้องง้อ hosting
// จะเปิดจะปิดเมื่อไหร่ก็ตามสดวก
ini_set('log_errors', 1); 
ini_set('error_log', __DIR__ . '/กำหนดpath เพื่อ เก็บ log/PHP_errors.log');
error_reporting(-1);
ini_set('display_errors', 1);


เอาโค๊ดข้างบนไว้ ต้นไฟล์ ก่อนอะไรทั้งหมด แล้วลอง รันดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 12:32:12 By : Chaidhanan
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-03-07 12:32:12
รายละเอียดของการตอบ ::

ขอบคุณครับเหมือนจะพบปัญหาแล้ว ดังตัวอย่างข้างล่าง ผมควรแก้ไขในส่วนนี้ตรงไหนดีครับ

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/xxx/domains/xxx/xxxx/xxxx/index.php:1) in/home/xxx/domains/xxx/public_html/xxx/index.php on line 11

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/xxx/domains/xxx/xxxx/xxxx/index.php:1) in /home/xxx/domains/xxx/public_html/xxx/index.php on line 11

line 11 ผมประกาศ session_start(); ไว้นะครับ




ประวัติการแก้ไข
2019-03-07 12:38:07
2019-03-07 12:38:15
2019-03-07 12:38:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 12:37:12 By : IT47
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : IT47 เมื่อวันที่ 2019-03-07 12:37:12
รายละเอียดของการตอบ ::
ศึกษาตัวอย่างตาม Link นี้

https://www.thaicreate.com/php/php-session.html

ซึ่งช่วยแก้ไขปัญหาได้ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 12:48:33 By : doanga2007
 


 

No. 8



โพสกระทู้ ( 7,977 )
บทความ ( 2 )



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


ตัวอย่างการใช้ session แบบง่ายๆ ตรงๆ ไม่ใช้ ob_start;

Code (PHP)
<?php
// กรณี่ที่ไม่รู้จะดู log ได้จากไหน ทำเองเลย ไม่ต้องง้อ hosting
// จะเปิดจะปิดเมื่อไหร่ก็ตามสดวก
ini_set('log_errors', 1); 
ini_set('error_log', __DIR__ . '/กำหนดpath เพื่อ เก็บ log/PHP_errors.log');
error_reporting(-1);
ini_set('display_errors', 1);
session_path(....);
session_start();
echo session_id();

?><!doctype html>
<html>
.....


อย่ามีอะไรมาก่อนคำสั่งชุดนี้ แม้แต่ ช่องว่าง หรือแม้แต่ utf8 with bomb (ไฟล์ ty[e utf8 ของ microsoft )
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 12:51:57 By : Chaidhanan
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-03-07 12:51:57
รายละเอียดของการตอบ ::
ผมทำตามทุกอย่าง หมดเลยครับ แต่แก้ไขปัญหาตรงที่รีเฟรช หรือเปิดหน้าใหม่ค่าของ session_id ที่แสดงมันจะเปลี่ยนค่าตลอดเวลา มันไม่ใช่ค่าเดิม จึงทำให้ประกาศค่าของ session['name'] ไม่ได้ ปัญหานี้เป็นไปได้ไหมครับที่เกิดจาก permission ของ path แต่ผมกำหนดให้เป็น 777 แล้ว แต่จะทำไงให้ค่า session_id คงที่ หรือว่าไม่มีความจำเป็น รบกวนด้วยนะครับพี่ทุกท่าน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 14:30:45 By : IT47
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : doanga2007 เมื่อวันที่ 2019-03-07 12:48:33
รายละเอียดของการตอบ ::
ผมทำตามทุกขึ้นตอนหมดแล้วครับ ปกติผมก็ไม่มีปัญหาส่วนนี้ แต่พึ่งเป็นที่ อันนี้ ไม่แน่ใจเหมือนกันว่าผิดพลาดตรงส่วนไหน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 14:31:36 By : IT47
 


 

No. 11



โพสกระทู้ ( 7,977 )
บทความ ( 2 )



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


ลองดูตัวอย่าง จาก คห 8
สร้าง ไฟล์ใหม่ เอาแค่นั้นพอ แล้วทดสอบ ไม่ต้องมีอย่างอื่น
ใช้ notepad ธรรมดานี่แหล่ะ สร้างไฟล์ แล้ว เซฟเป็น ascii ไม่ต้องเซฟเป็น utf8 เอาแค่นี้ ทดสอบระบบให้ได้ก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 14:46:24 By : Chaidhanan
 


 

No. 12



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



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


ตอบความคิดเห็นที่ : 11 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-03-07 14:46:24
รายละเอียดของการตอบ ::

ขอขอบคุณผู้รู้ทุกท่านนะครับ ตอนนี้แก้ไขปัญหาได้เรียบร้อยแล้วครับ ทำตามที่ คุณ Chaidhanan แนะนำจนเรียบร้อย


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-07 16:16:51 By : IT47
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอความช่วยเหลือ PHP เกี่ยวกับการเรียก session_start หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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