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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสอบถาม เขียน code check-login อีกรอบค่ะ
หน้า: 1 [2]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถาม เขียน code check-login อีกรอบค่ะ  (อ่าน 8204 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #20 เมื่อ: 29 กรกฎาคม 2014, 10:57:43 »

ลองเอา session_start(); ขึ้นเป็นบรรทัดแรกสุด
เอาไว้ก็ไม่ได้เหมือนเดิมค่ะ
บันทึกการเข้า
ttong
สมุนแก๊งเสียว
*

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

กระทู้: 633



ดูรายละเอียด
« ตอบ #21 เมื่อ: 29 กรกฎาคม 2014, 11:37:46 »

ที่หน้า check-login.php ก่อนจะ refresh ไปหน้า tes.php
ลองแบบนี้ดูว่ามี อะไรออกมาหรือเปล่า
โค๊ด:
echo $_SESSION["username"];
echo $_SESSION["name"];

ลองทดสอบบนเครื่องตัวเองก่อนนะครับ
หากเครื่องตัวเองไม่มีปัญหา ค่อยลองทดสอบบนเซิร์ฟเวอร์
บันทึกการเข้า

pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #22 เมื่อ: 29 กรกฎาคม 2014, 11:52:19 »

ที่หน้า check-login.php ก่อนจะ refresh ไปหน้า tes.php
ลองแบบนี้ดูว่ามี อะไรออกมาหรือเปล่า
โค๊ด:
echo $_SESSION["username"];
echo $_SESSION["name"];

ลองทดสอบบนเครื่องตัวเองก่อนนะครับ
หากเครื่องตัวเองไม่มีปัญหา ค่อยลองทดสอบบนเซิร์ฟเวอร์

ค่ะทดสอบแล้วค่ะใช้งานได้ปกติไม่มีปัญหาอะไรเลยข้อมูลออกมาหมดทุกขั้นตอน แต่พอขึ้นโฮสต์ หน้า tes.php มีปัญหาค่ะ
บันทึกการเข้า
ยิ้มโค้ด.คอม
สมุนแก๊งเสียว
*

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

กระทู้: 729



ดูรายละเอียด เว็บไซต์
« ตอบ #23 เมื่อ: 29 กรกฎาคม 2014, 14:27:18 »

ที่หน้า check-login.php ก่อนจะ refresh ไปหน้า tes.php
ลองแบบนี้ดูว่ามี อะไรออกมาหรือเปล่า
โค๊ด:
echo $_SESSION["username"];
echo $_SESSION["name"];

ลองทดสอบบนเครื่องตัวเองก่อนนะครับ
หากเครื่องตัวเองไม่มีปัญหา ค่อยลองทดสอบบนเซิร์ฟเวอร์

ค่ะทดสอบแล้วค่ะใช้งานได้ปกติไม่มีปัญหาอะไรเลยข้อมูลออกมาหมดทุกขั้นตอน แต่พอขึ้นโฮสต์ หน้า tes.php มีปัญหาค่ะ

หากที่ Localhost ได้ปกติ แล้วพออัปขึ้นเซริฟ์เวอร์จริงแล้วมีปัญหา อันนี้ผมว่าน่าจะเกี่ยวกับเวอร์ชั่น PHP หรือการ Config ค่าของโฮสต์น่ะครับ ไม่ลองเอาโค้ดล่าสุดปัจจุบันที่ยังมีปัญหามาดูอ่ะครับ เผื่อแก้ไปหลายอย่างแล้วมันไปผิดตรงอื่นอีกครับ

ปล. โฮสต์ใช้ค่า Session ได้หรือเปล่าครับ ลองเอาเฉพาะโค้ดนี้แล้วลองไปรันบนโฮสต์ดู
โค๊ด:
<?php
session_start
();
$_SESSION['test']='Session Ok';
echo 
$_SESSION['test'];
?>

หากไม่มีค่า Session Ok ออกมาก็มุ่งไปที่โฮสต์เลยครับ เพราะนั่นคือ Session บนโฮสต์ไม่ทำงาน แต่หากมีค่าก็เอาโค้ดล่าสุดที่อัปบนโฮสต์แล้วไม่ได้มาดูครับ
บันทึกการเข้า

pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #24 เมื่อ: 29 กรกฎาคม 2014, 15:19:36 »

ที่หน้า check-login.php ก่อนจะ refresh ไปหน้า tes.php
ลองแบบนี้ดูว่ามี อะไรออกมาหรือเปล่า
โค๊ด:
echo $_SESSION["username"];
echo $_SESSION["name"];

ลองทดสอบบนเครื่องตัวเองก่อนนะครับ
หากเครื่องตัวเองไม่มีปัญหา ค่อยลองทดสอบบนเซิร์ฟเวอร์

ค่ะทดสอบแล้วค่ะใช้งานได้ปกติไม่มีปัญหาอะไรเลยข้อมูลออกมาหมดทุกขั้นตอน แต่พอขึ้นโฮสต์ หน้า tes.php มีปัญหาค่ะ

หากที่ Localhost ได้ปกติ แล้วพออัปขึ้นเซริฟ์เวอร์จริงแล้วมีปัญหา อันนี้ผมว่าน่าจะเกี่ยวกับเวอร์ชั่น PHP หรือการ Config ค่าของโฮสต์น่ะครับ ไม่ลองเอาโค้ดล่าสุดปัจจุบันที่ยังมีปัญหามาดูอ่ะครับ เผื่อแก้ไปหลายอย่างแล้วมันไปผิดตรงอื่นอีกครับ

ปล. โฮสต์ใช้ค่า Session ได้หรือเปล่าครับ ลองเอาเฉพาะโค้ดนี้แล้วลองไปรันบนโฮสต์ดู
โค๊ด:
<?php
session_start
();
$_SESSION['test']='Session Ok';
echo 
$_SESSION['test'];
?>

หากไม่มีค่า Session Ok ออกมาก็มุ่งไปที่โฮสต์เลยครับ เพราะนั่นคือ Session บนโฮสต์ไม่ทำงาน แต่หากมีค่าก็เอาโค้ดล่าสุดที่อัปบนโฮสต์แล้วไม่ได้มาดูครับ

ค่า session ขึ้น ok ค่ะ


หน้า checklogin.php (ถ้ารันในหน้านี้เลยข้อมูลแสดงไม่มีปัญหาค่ะ)

<?php
ob_start();
session_start();
include('connect.php');
header("content-type: text/html; charset=UTF-8");
$username=trim($_REQUEST[username]);
$password=md5(trim($_REQUEST[password]));
$sql=mysql_query("Select * From tb_member Where username='$username' && password='$password'");
if(mysql_num_rows($sql)>0){


while($row=mysql_fetch_array($sql)){

$_SESSION['id_mem']=$row['id_mem'];
$_SESSION['username']=$row['username'];
$_SESSION['name']=$row['name'];
$_SESSION['province']=$row['province'];
$_SESSION['status']=$row['status'];
mysql_query("Update tb_member Set login=NOW() Where username='$row[username]'");

}


echo"กำลังเข้าสู่ระบบ<br>";

print_r($_SESSION);

//echo"<meta http-equiv='refresh' content='2;URL=tes.php'>";


}else{
echo"ไม่สามารถเข้าสู่ระบบได้";
//echo"<meta http-equiv='refresh' content='2;URL=./.'>";
}

ob_end_flush();
?>

หน้า tes.php (ไม่มีข้อมูลสมาชิกส่งไปค่ะเป็นค่าว่าง)

<?php
ob_start();
session_start();
header("content-type: text/html; charset=UTF-8");
?>

<?Php echo $_SESSION["username"]; ?>

<?Php echo $_SESSION["name"]; ?>

ดูที่ phpinfo ตอนนี้  ใช้ php ver 5.3.3 ค่ะ
register_globals = off
register_argc_argv = On
magic_quotes_gpc = On
output_buffering = 4096
session.cookie_path = "/"
Session Support enabled
« แก้ไขครั้งสุดท้าย: 29 กรกฎาคม 2014, 15:20:51 โดย pum_pam » บันทึกการเข้า
ยิ้มโค้ด.คอม
สมุนแก๊งเสียว
*

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

กระทู้: 729



ดูรายละเอียด เว็บไซต์
« ตอบ #25 เมื่อ: 29 กรกฎาคม 2014, 16:07:14 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ
บันทึกการเข้า

pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #26 เมื่อ: 29 กรกฎาคม 2014, 16:11:55 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ

ลองปิดดูแล้วก็ไม่ได้ค่ะ
บันทึกการเข้า
ttong
สมุนแก๊งเสียว
*

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

กระทู้: 633



ดูรายละเอียด
« ตอบ #27 เมื่อ: 29 กรกฎาคม 2014, 16:14:57 »

ผมว่าลองติดต่อกับทาง Hosting ดีกว่าครับ
ให้ทางนั้นเค้าตรวจสอบให้
บันทึกการเข้า

ยิ้มโค้ด.คอม
สมุนแก๊งเสียว
*

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

กระทู้: 729



ดูรายละเอียด เว็บไซต์
« ตอบ #28 เมื่อ: 29 กรกฎาคม 2014, 16:18:16 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ

ลองปิดดูแล้วก็ไม่ได้ค่ะ

checklogin.php กับ tes.php นี่อยู่ใน directory เดียวกันหรือเปล่าครับ แล้วลองเอา copy โค้ดนี้ไปแทนที่ในหน้า tes.php ดูครับ

โค๊ด:
<?php
ob_start
();
session_start();
header("content-type: text/html; charset=UTF-8");

echo 
'username='.$_SESSION['username'];
echo 
'username='.$_SESSION['name'];

ob_end_flush();
?>

มันมีอะไรออกมาไหมครับ
บันทึกการเข้า

pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #29 เมื่อ: 29 กรกฎาคม 2014, 16:35:04 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ

ลองปิดดูแล้วก็ไม่ได้ค่ะ

checklogin.php กับ tes.php นี่อยู่ใน directory เดียวกันหรือเปล่าครับ แล้วลองเอา copy โค้ดนี้ไปแทนที่ในหน้า tes.php ดูครับ

โค๊ด:
<?php
ob_start
();
session_start();
header("content-type: text/html; charset=UTF-8");

echo 
'username='.$_SESSION['username'];
echo 
'username='.$_SESSION['name'];

ob_end_flush();
?>

มันมีอะไรออกมาไหมครับ
ออกมาแค่นี้ค่ะ
username=
name=  
อยู่ root นอกสุดเหมือนกันค่ะ
« แก้ไขครั้งสุดท้าย: 29 กรกฎาคม 2014, 16:36:06 โดย pum_pam » บันทึกการเข้า
ยิ้มโค้ด.คอม
สมุนแก๊งเสียว
*

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

กระทู้: 729



ดูรายละเอียด เว็บไซต์
« ตอบ #30 เมื่อ: 29 กรกฎาคม 2014, 17:35:27 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ

ลองปิดดูแล้วก็ไม่ได้ค่ะ

checklogin.php กับ tes.php นี่อยู่ใน directory เดียวกันหรือเปล่าครับ แล้วลองเอา copy โค้ดนี้ไปแทนที่ในหน้า tes.php ดูครับ

โค๊ด:
<?php
ob_start
();
session_start();
header("content-type: text/html; charset=UTF-8");

echo 
'username='.$_SESSION['username'];
echo 
'username='.$_SESSION['name'];

ob_end_flush();
?>

มันมีอะไรออกมาไหมครับ
ออกมาแค่นี้ค่ะ
username=
name=  
อยู่ root นอกสุดเหมือนกันค่ะ


ที่เทสนี่เทสด้วยการ Login ใหม่เลยน่ะครับ แต่ถ้ายังไม่ได้แล้วคงต้องถามทาง HOst ดูครับ เพราะดูอาการแล้วก็ไม่น่าจะมีอะไรแล้ว
บันทึกการเข้า

tlecreate
Newbie
*

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

กระทู้: 44



ดูรายละเอียด
« ตอบ #31 เมื่อ: 29 กรกฎาคม 2014, 23:14:31 »

ไม่รู้เหมือนผมป่าว session_start(); เอาขึ้น host ใช้ไม่ได้เลย ขึ้น error ต้องสร้าง file ใหม่ที่เครื่อง server แล้วโหลดกลับมาแก้ แล้วอัพขึ้นไป ก็ใช้ได้ ของผมน่าจะเกี่ยวกับ charset ไฟล์มันเป็น ASCI หรือ UTF-8 ต้องอะไหนไม่รู้


แนะนำเพิ่มเติม หน้าก่อน login เก็บ $_SESSION['x'] = session_id(); เพิ่มไปด้วยครับ
หน้า check ให้ check  $_POST['user'] == $row['user'] && $_SESSION['x'] == session_id(); ป้องกันการ ดักแล้วปลอม session ไปใช้อีกเครื่องครับ
บันทึกการเข้า
pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #32 เมื่อ: 30 กรกฎาคม 2014, 08:01:40 »

ปิด  ob_end_flush(); ที่หน้า tes.php ดูครับ

ลองปิดดูแล้วก็ไม่ได้ค่ะ

checklogin.php กับ tes.php นี่อยู่ใน directory เดียวกันหรือเปล่าครับ แล้วลองเอา copy โค้ดนี้ไปแทนที่ในหน้า tes.php ดูครับ

ค่ะทดสอบ login ใหม่เลยค่ะ

โค๊ด:
<?php
ob_start
();
session_start();
header("content-type: text/html; charset=UTF-8");

echo 
'username='.$_SESSION['username'];
echo 
'username='.$_SESSION['name'];

ob_end_flush();
?>

มันมีอะไรออกมาไหมครับ
ออกมาแค่นี้ค่ะ
username=
name=  
อยู่ root นอกสุดเหมือนกันค่ะ

บันทึกการเข้า
pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #33 เมื่อ: 30 กรกฎาคม 2014, 08:05:30 »

ไม่รู้เหมือนผมป่าว session_start(); เอาขึ้น host ใช้ไม่ได้เลย ขึ้น error ต้องสร้าง file ใหม่ที่เครื่อง server แล้วโหลดกลับมาแก้ แล้วอัพขึ้นไป ก็ใช้ได้ ของผมน่าจะเกี่ยวกับ charset ไฟล์มันเป็น ASCI หรือ UTF-8 ต้องอะไหนไม่รู้


แนะนำเพิ่มเติม หน้าก่อน login เก็บ $_SESSION['x'] = session_id(); เพิ่มไปด้วยครับ
หน้า check ให้ check  $_POST['user'] == $row['user'] && $_SESSION['x'] == session_id(); ป้องกันการ ดักแล้วปลอม session ไปใช้อีกเครื่องครับ
ขอบคุณค่ะ แต่นี่ session ใช้งานได้ค่ะแต่ทำงานในหน้าเดียวกันข้ามหน้า page กลายเป็นค่าว่างค่ะ
บันทึกการเข้า
seowizard
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #34 เมื่อ: 30 กรกฎาคม 2014, 10:07:14 »

ลองใส่ session_write_close() ก่อนเปลี่ยนไปหน้าอื่น

หรือไม่ก็ลองสร้าง folder ให้ cookie path แล้ว chmod ให้อ่านเขียนได้
บันทึกการเข้า
dekdoo
สมุนแก๊งเสียว
*

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

กระทู้: 891



ดูรายละเอียด เว็บไซต์
« ตอบ #35 เมื่อ: 30 กรกฎาคม 2014, 10:08:49 »

ในฐานข้อมูลฟิลด์ username และ password ต้องไม่ใช่ค่าว่าง และ username ไม่ซ้ำกับแถวอื่น

ที่หน้า checklogin.php
จากตรงนี้
โค๊ด:
echo"กำลังเข้าสู่ระบบ<br>";

print_r($_SESSION);

//echo"<meta http-equiv='refresh' content='2;URL=tes.php'>";

ลองแก้เป็น
โค๊ด:
header('Location: tes.php');
exit();
« แก้ไขครั้งสุดท้าย: 30 กรกฎาคม 2014, 10:16:40 โดย dekdoo » บันทึกการเข้า

pum_pam
ก๊วนเสียว
*

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

กระทู้: 273



ดูรายละเอียด
« ตอบ #36 เมื่อ: 30 กรกฎาคม 2014, 10:27:28 »

ขอบคุณทุกคนนะคะที่พยายามแก้ปัญหาช่วย ตอนนี้ ระบบ session ใช้งานได้ตามปกติแล้วค่ะสรุปต้อง แก้ session.save_path ไปที่ /tmp ก็ใช้งานได้ปกติแล้วค่ะ ไม่มีปัญหาที่ code ค่ะ
บันทึกการเข้า
หน้า: 1 [2]   ขึ้นบน
พิมพ์