$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 ไทยปกติครับ รบกวนผู้ชี้ทางทีครับ
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
$100perday
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 324
ออฟไลน์
กระทู้: 2,032
|
|
« ตอบ #1 เมื่อ: 20 มกราคม 2013, 21:51:16 » |
|
@session_start(); ob_start(); ผมก็ใส่ถูกนะครับ
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
manchy
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 85
ออฟไลน์
กระทู้: 2,166
|
|
« ตอบ #2 เมื่อ: 20 มกราคม 2013, 21:54:21 » |
|
ลอง Debug ดูครับว่ามีค่าไหม แล้วลองไล่ต่อ
|
|
« แก้ไขครั้งสุดท้าย: 20 มกราคม 2013, 21:54:51 โดย manchy »
|
บันทึกการเข้า
|
|
|
|
$100perday
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 324
ออฟไลน์
กระทู้: 2,032
|
|
« ตอบ #3 เมื่อ: 20 มกราคม 2013, 21:56:11 » |
|
ลอง Debug ดูครับว่ามีค่าไหม แล้วลองไล่ต่อ ยังไงเหรอครับ
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
gubaaball
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 183
ออฟไลน์
กระทู้: 1,672
|
|
« ตอบ #4 เมื่อ: 20 มกราคม 2013, 21:56:27 » |
|
ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start(); ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
$100perday
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 324
ออฟไลน์
กระทู้: 2,032
|
|
« ตอบ #5 เมื่อ: 20 มกราคม 2013, 21:59:27 » |
|
ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start(); ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ ลองสลับแล้วครับ อาการเดิม ๆ เลย ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
gubaaball
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 183
ออฟไลน์
กระทู้: 1,672
|
|
« ตอบ #6 เมื่อ: 20 มกราคม 2013, 22:00:41 » |
|
ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start(); ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ ลองสลับแล้วครับ อาการเดิม ๆ เลย ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย มันเป็นยังไงครับที่ว่าใช้ไม่ได้ มี error อะไรโผล่มาไหมครับ
|
|
|
บันทึกการเข้า
|
|
|
|
$100perday
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 324
ออฟไลน์
กระทู้: 2,032
|
|
« ตอบ #7 เมื่อ: 20 มกราคม 2013, 22:01:58 » |
|
ob_start(); ต้องอยู่บรรทัดแรกนิครับ แล้วตามด้วย @session_start(); ที่มันไม่แจ้ง error ก็เพราะมี @ นำหน้าครับ ลองสลับกันดู ผิดถูกขออภัยด้วยครับ ลองสลับแล้วครับ อาการเดิม ๆ เลย ยังไงรบกวนท่านที่พอแก้ให้ทีนะครับ งงเลย มันเป็นยังไงครับที่ว่าใช้ไม่ได้ มี 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 หรือไม่ก็ลองนอนสักตื่นค่อยกลับมาทำต่อครับ
|
|
|
บันทึกการเข้า
|
|
|
|
$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 ทำงานได้ไหม <?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 นอกมีปัญหา เดี๋ยวลองแก้ก่อนครับ ได้แล้วจะนำมาบอกกล่าวให้ทราบครับ
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
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 ไม่ทำงานนะครับ
ขอบคุณทุกท่านที่ตอบครับ และท่านนี้ด้วยครับ รอท่านมาตอบอ่ะครับ เพราะท่านเคยช่วยผมในส่วนนี้ แต่ก็ไม่ได้สังเกตุว่าเพราะอะไร ขอบคุณมาก ๆครับ
|
|
|
บันทึกการเข้า
|
เหนื่อย..
|
|
|
|