ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingรบกวนช่วยทีครับ ไม่ทราบว่าเกิดไรขึ้นกับการทำงานของ SESSION
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: รบกวนช่วยทีครับ ไม่ทราบว่าเกิดไรขึ้นกับการทำงานของ SESSION  (อ่าน 3685 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« เมื่อ: 20 มกราคม 2013, 21:39:23 »

โค๊ด:
@session_start();
ob_start();
$useradmin = $_SESSION["useradmin"];
if(empty($useradmin))
{
echo "<script>alert('หน้านี้จำกัดเฉพาะ Admin เท่านั้น');history.back();</script>";
exit();
}

ตาม code ด้านบนครับ ตรวจสอบมาจากตาราง ซึ่ง username , password ถูกต้องหมดครับ
แต่ก็ขึ้นหน้าแสดงข้อความว่า หน้านี้จำกัดเฉพาะ Admin เท่านั้น

เคยเขียนมาอย่างนี้ตลอด แต่ไม่รู้ว่าทำไมใช้งานไม่ได้

ปล.ตัวนี้ลองกะ host นอกครับ
ส่วน host ไทยปกติครับ

รบกวนผู้ชี้ทางทีครับ  wanwan017
บันทึกการเข้า

เหนื่อย..
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #1 เมื่อ: 20 มกราคม 2013, 21:51:16 »

@session_start();
ob_start();

ผมก็ใส่ถูกนะครับ  wanwan004
บันทึกการเข้า

เหนื่อย..
manchy
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 85
ออฟไลน์ ออฟไลน์

กระทู้: 2,166



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 20 มกราคม 2013, 21:54:21 »


ลอง Debug ดูครับว่ามีค่าไหม  wanwan020

แล้วลองไล่ต่อ
« แก้ไขครั้งสุดท้าย: 20 มกราคม 2013, 21:54:51 โดย manchy » บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #3 เมื่อ: 20 มกราคม 2013, 21:56:11 »


ลอง Debug ดูครับว่ามีค่าไหม  wanwan020

แล้วลองไล่ต่อ

ยังไงเหรอครับ  wanwan017
บันทึกการเข้า

เหนื่อย..
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 183
ออฟไลน์ ออฟไลน์

กระทู้: 1,672



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 20 มกราคม 2013, 21:56:27 »

ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start();

ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ  Tongue
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #5 เมื่อ: 20 มกราคม 2013, 21:59:27 »

ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start();

ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ  Tongue


ลองสลับแล้วครับ อาการเดิม ๆ เลย
ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย  wanwan004 wanwan017
บันทึกการเข้า

เหนื่อย..
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 183
ออฟไลน์ ออฟไลน์

กระทู้: 1,672



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 20 มกราคม 2013, 22:00:41 »

ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start();

ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ  Tongue


ลองสลับแล้วครับ อาการเดิม ๆ เลย
ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย  wanwan004 wanwan017

มันเป็นยังไงครับที่ว่าใช้ไม่ได้ มี error อะไรโผล่มาไหมครับ
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #7 เมื่อ: 20 มกราคม 2013, 22:01:58 »

ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start();

ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ  Tongue


ลองสลับแล้วครับ อาการเดิม ๆ เลย
ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย  wanwan004 wanwan017

มันเป็นยังไงครับที่ว่าใช้ไม่ได้ มี error อะไรโผล่มาไหมครับ

ไม่มีเลยครับท่าน มันขึ้นตรงที่ผมดัก
if(empty($useradmin))
{
echo "<meta http-equiv=Content-Type content=text/html; charset=utf-8>";
echo "<script>alert('หน้านี้จำกัดเฉพาะ Admin เท่านั้น');history.back();</script>";
exit();
}

นั่นก็คงหมายถึง มันไม่จำค่า useradmin ให้อ่ะครับ
บันทึกการเข้า

เหนื่อย..
manchy
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 85
ออฟไลน์ ออฟไลน์

กระทู้: 2,166



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 20 มกราคม 2013, 22:02:19 »

echo ค่าทีมีทั้งหมด หรือ print array ดูว่ามีค่าอะไรบ้าง แล้วค่าที่คิดว่าจะมีนั้นมีจริงหรือเปล่า

print_r ();

http://php.net/manual/en/function.print-r.php

« แก้ไขครั้งสุดท้าย: 20 มกราคม 2013, 22:10:34 โดย manchy » บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #9 เมื่อ: 20 มกราคม 2013, 22:05:21 »

คือผมทำงานกับ host ไทย ไม่มีปัญหานะครับ
host นอกต้อตั้งค่าหรือเขียนให้ต่างกันมากแค่ไหนอ่ะครับ
บันทึกการเข้า

เหนื่อย..
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 183
ออฟไลน์ ออฟไลน์

กระทู้: 1,672



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 20 มกราคม 2013, 22:08:42 »

มั่นใจน่ะครับว่าค่า $useradmin = $_SESSION["useradmin"]; มันมีการประกาศเซสชั่น useradmin มาแล้ว เห็นบอกว่า "ตรวจสอบมาจากตาราง ซึ่ง username , password ถูกต้องหมดครับ
"

หรือไม่ก็ลองเอา @ ออกดูครับเผื่อช่วยไรได้ ไม่งั้นก็คงเป็นทีเวอร์ชั่น php หรือไม่ก็ลองนอนสักตื่นค่อยกลับมาทำต่อครับ  wanwan004
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #11 เมื่อ: 20 มกราคม 2013, 22:12:57 »

เอาตรงนี้เลยดีกว่าครับ อิอิ
ตารางผมชื่อ admin

หน้า admin หรอกช่องสองค่าคือ useradmin และ passadmin

จากนั้นไปที่หน้า adminsignin.php ดังนี้ครับ

โค๊ด:
<?php
@session_start();
ob_start();
require_once 
"connectdb.php";
$sql "select * from admin where useradmin = '$_POST[useradmin]' and passadmin = '$_POST[passadmin]'";
$dbquery mysql_db_query($db$sql); 
$num_rows mysql_num_rows($dbquery);
$rowLogin mysql_fetch_array($dbquery);
if($num_rows == 1){ 

$_SESSION['useradmin'] = $rowLogin['useradmin'];
echo "<meta http-equiv='refresh' content='0;URL=adminhome.php'>";
}else{ 
echo "<meta http-equiv='Content-Type' content='text/html; charset=tis-620' />";
echo "<script language='javascript'>alert('invalid username & password');</script>";
echo "<meta http-equiv='refresh' content='0;URL=admin.php'>";
}

?>

มันหุดหน้านี้ไปที่ adminhome.php อ่ะครับ ถ้าใส่ useradmin และ passadmin ถูก
โค๊ด:
<?
@session_start();
ob_start();
$useradmin = $_SESSION["useradmin"];
if(empty($useradmin))
{
echo "<meta http-equiv=Content-Type content=text/html; charset=utf-8>";
echo "<script>alert('หน้านี้จำกัดเฉพาะ Admin เท่านั้น');history.back();</script>";
exit();
} ?>

ใส่ถูกหมดครับ
แต่ขึ้น หน้านี้จำกัดเฉพาะ Admin เท่านั้น ตลอดเลยครับ
« แก้ไขครั้งสุดท้าย: 20 มกราคม 2013, 22:13:47 โดย $100perday » บันทึกการเข้า

เหนื่อย..
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 183
ออฟไลน์ ออฟไลน์

กระทู้: 1,672



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 20 มกราคม 2013, 22:20:05 »

เอาตรงนี้เลยดีกว่าครับ อิอิ
ตารางผมชื่อ admin

หน้า admin หรอกช่องสองค่าคือ useradmin และ passadmin

จากนั้นไปที่หน้า adminsignin.php ดังนี้ครับ

โค๊ด:
<?php
@session_start();
ob_start();
require_once 
"connectdb.php";
$sql "select * from admin where useradmin = '$_POST[useradmin]' and passadmin = '$_POST[passadmin]'";
$dbquery mysql_db_query($db$sql); 
$num_rows mysql_num_rows($dbquery);
$rowLogin mysql_fetch_array($dbquery);
if($num_rows == 1){ 

$_SESSION['useradmin'] = $rowLogin['useradmin'];
echo "<meta http-equiv='refresh' content='0;URL=adminhome.php'>";
}else{ 
echo "<meta http-equiv='Content-Type' content='text/html; charset=tis-620' />";
echo "<script language='javascript'>alert('invalid username & password');</script>";
echo "<meta http-equiv='refresh' content='0;URL=admin.php'>";
}

?>

มันหุดหน้านี้ไปที่ adminhome.php อ่ะครับ ถ้าใส่ useradmin และ passadmin ถูก
โค๊ด:
<?
@session_start();
ob_start();
$useradmin = $_SESSION["useradmin"];
if(empty($useradmin))
{
echo "<meta http-equiv=Content-Type content=text/html; charset=utf-8>";
echo "<script>alert('หน้านี้จำกัดเฉพาะ Admin เท่านั้น');history.back();</script>";
exit();
} ?>

ใส่ถูกหมดครับ
แต่ขึ้น หน้านี้จำกัดเฉพาะ Admin เท่านั้น ตลอดเลยครับ


งั้นก็คงเป็น SESSION ไม่ทำงานครับ คงอาจเป็นเพราะเวอร์ชั่น php หรือค่าอะไรสักอย่างบน Host ไม่ลองเช็คอย่างนี้ดูครับ ใส่เฉพาะ session เพรียวๆ เลยโดยไม่เอา ob_start แล้วก็เอา @ ที่หน้า session ออกดูครับ ถ้ายังไม่ได้ก็ลองอย่างนี้เลยครับ เพื่อเช็คว่า session ทำงานได้ไหม  Tongue

<?php session_start();
$_SESSION['testSession'] = 'ทดสอบตัวแปร';
echo $_SESSION['testSession'];
?>
บันทึกการเข้า

ICheer_No0M
Newbie
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 78



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 20 มกราคม 2013, 23:27:27 »

ไม่รู้ว่าเกี่ยวหรือไม่ ลอง encode ไฟล์ php เป็น utf8 without bom ด้วย notepad++ ดูครับ
บันทึกการเข้า

dekmv
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 222
ออฟไลน์ ออฟไลน์

กระทู้: 3,264



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 21 มกราคม 2013, 01:07:35 »

<? session_start();?>
<? ob_start();?>


ผมเขียนแบบนี้อ่ะครับ ...
บันทึกการเข้า
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #15 เมื่อ: 21 มกราคม 2013, 07:48:19 »

เบื้องต้นผมว่าน่าจะเกี่ยวกับ host ด้วยแหละครับ
ทดสอบกับของไทย ปกติสุขดี แต่ host นอกมีปัญหา
เดี๋ยวลองแก้ก่อนครับ ได้แล้วจะนำมาบอกกล่าวให้ทราบครับ
 wanwan017
บันทึกการเข้า

เหนื่อย..
dragons_first
สมุนแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 953



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 21 มกราคม 2013, 08:51:34 »

นั่งยันนอนยันว่าเป็นที่โฮสต่างประเทศนะครับ วิธีแก้ ต้องทำ 2 วิธี
1.เอา @ ตรง session_start(); ออกครับ เพื่อดู error
2.encode เป็น windows-874 (กรณีที่ไม่สามารถใช้งาน เซสชั่นได้)

ผมเดาว่า session ไม่ทำงานนะครับ
บันทึกการเข้า

รับทำเว็บไซต์ ตามขอบเขตของลูกค้าราคาเบาๆ

รับแก้สคริปท์ เพิ่มระบบ เปลี่ยนแปลงเลเอาท์เว็บไซต์ จัด cssใหม่ แก้การแสดงผลผิดเพี้ยน
ท่านจะได้รับการบริการที่เป็นกันเอง ราคาไม่แพง ต่อรองได้(แต่ไม่น่าเกลียด) คุยกันฉันมิตร นะฮ๊าฟฟฟฟฟ
marus
ก๊วนเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 467



ดูรายละเอียด
« ตอบ #17 เมื่อ: 21 มกราคม 2013, 08:58:46 »

if($useradmin == null) ไม่ก็ if($useradmin == '') ลองดู
ถ้าไม่ได้ให้
print_r($_SESSION) check ค่า ใน session
ถ้าไม่มีค่าให้ set
โค๊ด:
session_set_cookie_params
ลองค่าดู
บันทึกการเข้า
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #18 เมื่อ: 21 มกราคม 2013, 09:02:18 »

นั่งยันนอนยันว่าเป็นที่โฮสต่างประเทศนะครับ วิธีแก้ ต้องทำ 2 วิธี
1.เอา @ ตรง session_start(); ออกครับ เพื่อดู error
2.encode เป็น windows-874 (กรณีที่ไม่สามารถใช้งาน เซสชั่นได้)

ผมเดาว่า session ไม่ทำงานนะครับ
ขอบคุณทุกท่านที่ตอบครับ
และท่านนี้ด้วยครับ รอท่านมาตอบอ่ะครับ เพราะท่านเคยช่วยผมในส่วนนี้
แต่ก็ไม่ได้สังเกตุว่าเพราะอะไร ขอบคุณมาก ๆครับ
บันทึกการเข้า

เหนื่อย..
หน้า: [1]   ขึ้นบน
พิมพ์