|
|
|
ผมจะทำเว็บที่ มีการ include ไฟล์ php มาวางไว้ในส่วนต่างๆ ซึ่งปัญหาก็คือ ต้องการเช็คว่าผู้ที่เข้ามายังหน้าเว็บทำการ login หรือยัง |
|
|
|
|
|
|
|
แก้ตรงไฟล์ check.php บรรทัดที่ 4 ตรงส่วน
if($_SESSION['ID'] == "")
เป็น
if(isset($_SESSION['ID']))
|
|
|
|
|
Date :
2015-10-31 14:06:47 |
By :
sensugaz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มเติมครับ
หน้านี้ทำใส่คำสั่ง ให้ผู้ที่ยังไม่ทำการ login เข้าไม่ได้
ด้วยโค้ดนี้ครับ
Code (PHP)
<?php
session_start();
if($_SESSION['ID'] == "")
{
echo "<script type=\"text/javascript\">";
echo "alert(\"Please login\");";
echo "window.history.back();";
echo "</script>";
exit();
}
mysql_connect("localhost","root","1234");
mysql_select_db("a2k");
$strSQL = "SELECT * FROM member WHERE ID = '".$_SESSION['ID']."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
?>
ถ้ายังไม่ได้ login ก็ให้มันเด้งกลับไปทำการ login
ถ้า login แล้วก็สามารถเข้าดูได้ แต่มันก็ขึ้น error แบบนี้ งงนิดๆ เพราะ ขณะที่หน้านี้ error หน้าอื่นปกติ
|
ประวัติการแก้ไข 2015-11-03 21:32:18
|
|
|
|
Date :
2015-10-31 14:08:10 |
By :
Pla2todkrob |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if(!$objResult)
{
echo "Username and Password Incorrect!";
}
else
{
$_SESSION["id"] = $objResult["d"];
$_SESSION["status"] = $objResult["status"];
session_write_close();
เช็ค ล๊อคอิน สถานนะครับ
if($objResult["status"] == "admin")
{
echo "<script language=\"JavaScript\">";
echo "alert('แอดมินกำลังเข้าสู่ระบบ');window.location='admin.php';";
echo "</script>";
}
else
{
echo "<script language=\"JavaScript\">";
echo "alert('คุณไม่ใช่แอดมิน');window.location='path.ที่จะให้ไป';";
echo "</script>";
}
}
|
|
|
|
|
Date :
2015-10-31 14:11:20 |
By :
Poae |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองลบ else member.php ดูดิครับ
แทนที่จะทำ member.php แล้ว include check_login.php
|
|
|
|
|
Date :
2015-10-31 14:46:07 |
By :
sensugaz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอความกรุณาด้วยครับ เคสนี้ยังไม่สำเร็จผลเลย
|
|
|
|
|
Date :
2015-11-03 21:45:52 |
By :
Pla2todkrob |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนวิธีนี้ดูครับ
เห็นว่าตัว include เหมือนจะแค่เรียกมาคิวรี่ใหม่ เริ่มจากการ login
script check_login.php
Code (PHP)
<?php
session_start();
mysql_connect("localhost","root","1234");
mysql_select_db("a2k");
$strSQL = "SELECT * FROM member WHERE Username = '".mysql_real_escape_string($_POST['txtUsername'])."'
and Password = '".mysql_real_escape_string($_POST['txtPassword'])."' limit 1";
$objQuery = mysql_query($strSQL) or die('');
if(mysql_num_rows($objQuery)==0){
echo <<<HTML
<script type="text/javascript">
alert("Login unsuccessful"); window.history.back();
</script>
HTML;
exit();
}else {
$objResult = mysql_fetch_assoc($objQuery); // เปลี่ยนมาใช้ fetch_assoc
$_SESSION["PROFILE"] = $objResult; // เก็บมันหมดทั้ง record
session_write_close();
if($objResult["Status"] == "ADMIN"){
header("location:../admin/home.php");
}else {
header("location:home.php");
}
}
?>
ส่วน index.php หรือ ไฟล์อื่น ก็สามารถนำ $_SESSION['PROFILE'] มาใช้ได้ หลังคำสั่ง session_start();
Code (PHP)
<?php
session_start();
if( isset($_SESSION['PROFILE'])) {
print_r($_SESSION['PROFILE']);
}
เวลา logout ก็เคลียร์ session ด้วย
unset($_SESSION['PROFILE']);
ปล. ย้ำเตือน กรณีใช้งาน session ทุกไฟล์ที่ถูกเรียก
ต้องขึ้นต้นด้วย session_start() เสมอ ถ้าลืมใส่ถือว่าเลิกใช้
session จะหายไปเมื่อเรียก ไฟล์นั้นขึ้นมา
|
ประวัติการแก้ไข 2015-11-04 07:01:51 2015-11-04 07:11:03
|
|
|
|
Date :
2015-11-04 06:57:41 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำระบบเป็น MVC ใช่ป่าวครับ ลองดูเผื่อมีประโยชน์ครับ
- รับค่าจาก form login
Code (PHP)
session_start();
$mysqli = new mysqli("localhost","root","1234","database_name");
$username = $_REQUEST["user"];
$password = $_REQUEST["password"];
$query = $mysqli->query("select * from user where username = '$username'and password = '$password'");
$login = $query->fetch_row();
if($login[3] == "admin"){
$_SESSION['chkright']=$login[0];
$_SESSION['login']=$login[1];
$_REQUEST['page']= "index";
include("adminpagecontroller.php");
}
else
include "index.php" // จะ รีไดร์เรค ไปตรงไหนก็แล้วแต่เรา
ตรวจสอบค่าอีกครั้งที่ adminpagecontroller.php
Code (PHP)
session_start();
if(!isset($_SESSION["login"])){
include"index.php";
}
elseif(isset($_SESSION["login"])){
isset($_SESSION["chkright"]);
$userid = $_SESSION["chkright"];
$pageaction = $_REQUEST["action"];
include_once("function/userdataaccess.php");
if(checkright($userid,$pageaction))
{
include("actioncontroller/admin/".$_REQUEST["action"].".php");
}
else{
$_REQUEST["page"] = "notrightpage";
include("pagecontroller/admin/".$_REQUEST["page"].".php");
}
}
else
include"index.php";
|
|
|
|
|
Date :
2015-11-05 08:58:45 |
By :
banditt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|