ล๊อคอินไม่ได้ครับ พอไส่ <? include "chksession.php"; ?> อันนี้เข้าไปบนเพจหน้าหลัก
ผมเขียนขึ้นมาจากหนังสือ สร้าง Web Application อย่างมืออาชีพด้วย PHP เล่ม 1 อ่ะครับ เป็นระบบสมาชิกแต่ผมจะเพิ่มฟิลด์ status เข้าไป ในฐานข้อมูล แล้วก็เปลี่ยนแค่ chkmember.php ไห้เข้าแบบ USER และ ADMIN
ขอคำแนะนำด้วยครับพี่ๆ
รูปนี้แสดงหน้า หลักซึ่งผ่านการล๊อคอินมาครับ มันจะโชว์ usename ด้วยครับ
Date :
2011-07-02 19:56:16
By :
siwarin125
ใส่นี่เข้าไปดูครับว่า มีอะไรใน session บ้าง
Code (PHP)
var_dump($_SESSION);
Date :
2011-07-02 21:32:11
By :
PlaKriM
ไส่เข้าไปที่ไหนครับพี่
Date :
2011-07-02 21:49:40
By :
siwarin125
หลัีงจาก session_start ครับ
Date :
2011-07-02 23:19:36
By :
PlaKriM
ไส่แล้วพอรันหน้า >>>chksession.php<<< ได้มาแบบนี้อ่ะครับ
array(0) { }
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\google_map_qr\chksession.php:3) in C:\AppServ\www\google_map_qr\chksession.php on line 7
โค๊ด
<?
session_start();
var_dump($_SESSION);
$sess_userid=$_SESSION[sess_userid];
$sess_username=$_SESSION[sess_username];
if ($sess_userid<>session_id() or $sess_username=="") {
header( "Location: index.php"); exit();
}
?>
Date :
2011-07-03 06:34:16
By :
siwarin125
เงียบ
Date :
2011-07-05 10:38:07
By :
siwarin125
<?
session_start();
$sess_userid=$_SESSION[sess_userid];
$sess_username=$_SESSION[sess_username];
var_dump($_SESSION);
exit();
if ($sess_userid<>session_id() or $sess_username=="") {
header( "Location: index.php"); exit();
}
?>
ลองใหม่ครับ ว่ามีอะไรออกมาบ้าง
Date :
2011-07-05 10:53:48
By :
PlaKriM
array(0) { }
ขึ้นแบบนี้ครับพี่
Date :
2011-07-05 12:23:57
By :
siwarin125
ก็แสดงว่า $_SESSION[sess_userid] พวกนี้ไม่มีการเซตค่าให้มัน
Date :
2011-07-05 12:54:03
By :
PlaKriM
แล้วผมต้องไปเซ็ทค่าไห้มันยังไงอะครับ ผมมือไหม่
Date :
2011-07-05 13:56:27
By :
siwarin125
$_SESSION[sess_userid];
$_SESSION[sess_username];
session มันไม่มีค่าเลยครับ คุณไม่ได้ใส่ค่าให้มัน
คุณลองเพิ่มหน้า chkmember.php ตรงส่วนนี้ดู
$_SESSION["id"] = $record["id"];
$_SESSION["status"] = $record["status"];
$_SESSION[sess_userid]=session_id();
$_SESSION[sess_username]=$user_login;
Date :
2011-07-05 14:37:51
By :
aimoomoo
ผมตรงแก้ตรงไหนครับพี่
>>>chkmember.php <<<
<?
$user_login=$_POST[user_login];
$pass_login=$_POST[pass_login];
if ($user_login=="" or $pass_login=="") {
echo "<h3>ERROR : กรุณากรอกข้อมูลให้ครบนะครับ<h3>"; exit();
}
include "connect.php";
$sql="select * from member where username='$user_login' and password='$pass_login'";
$result=mysql_db_query($dbname,$sql);
$num=mysql_num_rows($result);
$record=mysql_fetch_array($result);
if($num<=0) {
echo "<h3>ERROR : Username หรือ Password ไม่ถูกต้อง</h3>";
}
else
{
$_SESSION["id"] = $record["id"];
$_SESSION["status"] = $record["status"];
session_write_close();
if($record["status"] == "ADMIN")
{
header("location:admin_page.php");
}
else
{
header("location:user_page.php");
}
}
mysql_close();
?>
Date :
2011-07-05 21:21:49
By :
siwarin125
เวลาล็อกอินคุณใช้
$_SESSION["id "] = $record["id"];
$_SESSION["status "] = $record["status"];
แต่เวลาเช็คคุณใช้
$sess_userid=$_SESSION[sess_userid ];
$sess_username=$_SESSION[sess_username ];
มันจะมีค่าเท่ากันได้ยังไง
Date :
2011-07-05 22:17:19
By :
PlaKriM
ขอบคุณมากครับพี่ ผมจะลองแก้ดู ผมไม่ค่อยเป็น php
Date :
2011-07-06 16:20:47
By :
siwarin125
>>>chksession.php<< สมมุติว่าผมจะเอาตัวเช็คตัวนี้อ่ะครับผมต้องไปแก้ ไฟล์ >>>chkmember.php <<< อย่างไรครับ
<?
session_start();
$sess_userid=$_SESSION[sess_userid];
$sess_username=$_SESSION[sess_username];
if ($sess_userid<>session_id() or $sess_username=="") {
header( "Location: index.html"); exit();
}
?>
>>>chkmember.php <<<
<?
$user_login=$_POST[user_login];
$pass_login=$_POST[pass_login];
if ($user_login=="" or $pass_login=="") {
echo "<h3>ERROR : กรุณากรอกข้อมูลให้ครบนะครับ<h3>"; exit();
}
include "connect.php";
$sql="select * from member where username='$user_login' and password='$pass_login'";
$result=mysql_db_query($dbname,$sql);
$num=mysql_num_rows($result);
$record=mysql_fetch_array($result);
if($num<=0) {
echo "<h3>ERROR : Username หรือ Password ไม่ถูกต้อง</h3>";
}
else
{
$_SESSION["id"] = $record["id"];
$_SESSION["status"] = $record["status"];
session_write_close();
if($record["status"] == "ADMIN")
{
header("location:admin_page.php");
}
else
{
header("location:user_page.php");
}
}
mysql_close();
?>
ประวัติการแก้ไข 2011-07-06 18:19:25
Date :
2011-07-06 18:18:03
By :
siwarin125
ผมจะลองดูครับ
โปรเจค ยังไม่ถึงไหนเลย ติดระบบสมาชิก มา 5 สัปดาห์ละครับ
Date :
2011-07-07 07:10:23
By :
siwarin125
ผมทำได้แล้วครับ ขอบคุณพี่ๆมากครับสำหรับคำแนะนำ
Date :
2011-07-07 09:45:34
By :
siwarin125
มีประโยชน์มากเลยค้ะ ทำโปรเจคเหมือนกัน
Date :
2013-12-30 21:17:27
By :
อ้อม
Load balance : Server 05