Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 106,364

HOME > PHP > PHP Forum > ผมจะทำเว็บที่ มีการ include ไฟล์ php มาวางไว้ในส่วนต่างๆ ซึ่งปัญหาก็คือ ต้องการเช็คว่าผู้ที่เข้ามายังหน้าเว็บทำการ login หรือยัง


 

ผมจะทำเว็บที่ มีการ include ไฟล์ php มาวางไว้ในส่วนต่างๆ ซึ่งปัญหาก็คือ ต้องการเช็คว่าผู้ที่เข้ามายังหน้าเว็บทำการ login หรือยัง

 



Topic : 119654



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



ผมจะทำเว็บที่ มีการ include ไฟล์ php มาวางไว้ในส่วนต่างๆ
ซึ่งปัญหาก็คือ ต้องการเช็คว่าผู้ที่เข้ามายังหน้าเว็บทำการ login หรือยัง
เงื่อนไขการใช้เว็บคือ สามารถดูได้ทุกหน้าเว็บถึงแม้จะไม่ได้ login แต่ไม่สามารถกระทำอะไรได้นอกจากดู
แต่ไฟล์ที่เชื่อมโยงการอยู่มีดังนี้

home.php เป็นหน้าแสดงพื้นที่ทั้งหมด
check.php ถูก include ไปอยู่ในส่วน Member ทำหน้าที่เช็คสถานะ login
login.php เป็นไฟล์กรอกข้อมูล login และเช็คความถูกต้องที่ check_login.php
check_login.php เช็คความถูกต้องของ username password
member.php รับค่าการ login มาแสดงในกรอบ member

ตามข้อมูลที่ให้ไปนี้พอจะดูออกไหมครับว่าตรงไหนมันผิด
พอไปแก้ให้มันไม่มี error ขึ้นมันก็ login ไม่ได้


ไฟล์ home.php
Code (PHP)
<ul>
<li id="headset">Member</li>
<?php
include ("check.php");
 ?>
</ul>


1

จากนั้น เจ้าไฟล์ check.php ก็ใช้งานเงื่อนไข
Code (PHP)
<?php
	session_start();
	
	if($_SESSION['ID'] == "")
		{
			include ("login.php");
		}
	else 
		{
			include ("member.php");
		}
	
	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 เข้าสู่ระบบ ก็จะ include ("login.php");
ส่วนไฟล์ login.php
Code (PHP)
<form name="form1" method="post" action="check_login.php" autocomplete="on">
<ul class="login">
<li>User Name : <input name="txtUsername" type="text" id="txtUsername" autocomplete="off" /></li>
<li>Password : <input name="txtPassword" type="password" id="txtPassword" autocomplete="off" /></li>
<li><a href="register.php">register</a><input type="submit" name="Submit" value="Login"></li>
</ul>
</form>


2

action ไปที่ 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'])."'";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	if(!$objResult)
	{
			echo "<script type=\"text/javascript\">";
			echo "alert(\"Login unsuccessful\");";
			echo "window.history.back();";
			echo "</script>";
			exit();
	}
	
	else
	{
			$_SESSION["ID"] = $objResult["ID"];
			$_SESSION["Status"] = $objResult["Status"];

			session_write_close();
			
			if($objResult["Status"] == "ADMIN")
			{
				header("location:../admin/home.php");
			}
			else
			{
				header("location:home.php");
			}
	}
	mysql_close();
?>


3

แต่ถ้ามีการ login แล้วก็จะ include ("member.php");
ส่วนไฟล์ member.php
Code (PHP)
<?php
	mysql_query("SET NAMES UTF8");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	
	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);
	
?>
<?php echo $objResult["ID"];?><?php echo $objResult["Username"];?>




Tag : PHP, MySQL, HTML/CSS, JavaScript









ประวัติการแก้ไข
2015-11-03 21:31:15
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-10-31 13:47:06 By : Pla2todkrob View : 653 Reply : 14
 

 

No. 1



โพสกระทู้ ( 336 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


แก้ตรงไฟล์ check.php บรรทัดที่ 4 ตรงส่วน

if($_SESSION['ID'] == "")

เป็น

if(isset($_SESSION['ID']))






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:06:47 By : sensugaz
 


 

No. 2



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เพิ่มเติมครับ
หน้านี้ทำใส่คำสั่ง ให้ผู้ที่ยังไม่ทำการ login เข้าไม่ได้

4

ด้วยโค้ดนี้ครับ
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 หน้าอื่นปกติ
5


ประวัติการแก้ไข
2015-11-03 21:32:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:08:10 By : Pla2todkrob
 

 

No. 3



โพสกระทู้ ( 192 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

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
 


 

No. 4



โพสกระทู้ ( 336 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


รบกวนอ่านตรง

https://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html

ด้วยนะครับตัวอย่างไฟล์ user_page.php ต้องตรวจสอบ session นะครับเอาไว้บนหัวสุดของเว็บครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:15:09 By : sensugaz
 


 

No. 5



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : sensugaz เมื่อวันที่ 2015-10-31 14:06:47
รายละเอียดของการตอบ ::
แก้แล้วเป็นแบบนี้อ่าครับ
6
Code (PHP)
<?php
	session_start();
	
	if(isset($_SESSION['ID']))
		{
			include ("login.php");
		}
	else 
		{
			include ("member.php");
		}
	
	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);
		
?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:37:33 By : Pla2todkrob
 


 

No. 6



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 3 เขียนโดย : Poae เมื่อวันที่ 2015-10-31 14:11:20
รายละเอียดของการตอบ ::
ขอบคุณครับ แต่มันเหมือนกันกับของผมหรือเปล่าครับ ไม่แน่ใจ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:43:32 By : Pla2todkrob
 


 

No. 7



โพสกระทู้ ( 336 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ลองลบ else member.php ดูดิครับ

แทนที่จะทำ member.php แล้ว include check_login.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 14:46:07 By : sensugaz
 


 

No. 8



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : sensugaz เมื่อวันที่ 2015-10-31 14:46:07
รายละเอียดของการตอบ ::
ยังไงรบกวนหน่อยได้ไหมครับ
ผมเพิ่งจะทำเป็นครั้งแรก ไม่รู้จะเรียงลำดับอะไรยังไง
การทำ login ก็ดูจาก https://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html
มาเช่นกันครับ แล้วก็มาดัดแปลงนิดหน่อย แต่มันก็ยังติดอยู่ตรงที่กล่าวมา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-31 15:03:45 By : Pla2todkrob
 


 

No. 9



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : Pla2todkrob เมื่อวันที่ 2015-10-31 14:37:33
รายละเอียดของการตอบ ::
จากไฟล์นี้ผมได้ทำการแก้ไข ใน error บรรทัดที่ 2 โดยลบ session_start(); ออก
ก็ไม่มี error เกิดขึ่้น อยากถามว่าถ้านำไปใช้งานจริงจะมีปัญหาอะไรไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-03 21:34:46 By : Pla2todkrob
 


 

No. 10



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอความกรุณาด้วยครับ เคสนี้ยังไม่สำเร็จผลเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-03 21:45:52 By : Pla2todkrob
 


 

No. 11



โพสกระทู้ ( 1,600 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองเปลี่ยนวิธีนี้ดูครับ
เห็นว่าตัว 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
 


 

No. 12



โพสกระทู้ ( 181 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 11 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-04 06:57:41
รายละเอียดของการตอบ ::
ขอบคุณมากครับ

แต่ว่ามันกลายเป็น login ไม่ได้เลยอ่าครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-04 16:26:18 By : Pla2todkrob
 


 

No. 13



โพสกระทู้ ( 1,600 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 12 เขียนโดย : Pla2todkrob เมื่อวันที่ 2015-11-04 16:26:18
รายละเอียดของการตอบ ::
มีเออเร่อร์อะไรครับ


นี่เป็นโค๊ดเก่าที่ผมยังใช้งานอยู่ครับ
Code (PHP)
<?php
session_start();
require_once('phpmail/class.phpmailer.php');
include('curpath.php');
include( 'inc_base/inc_db.php');
if(isset($_REQUEST['run'])){
	switch( $_REQUEST['run']){
	case 'Login':
		$rq = $_REQUEST;
		$psw = $hk->setPsw($rq['u_password']);
		$rs=$hk->select(
			'c0_user', array('*'), 
			$hk->set_str('u_email', $rq ) . 
			" and u_password = '$psw' and u_confirmmail=1 limit 1 "  );
		if( $rs->num_rows ){
			$ro=$rs->fetch_assoc();
			$_SESSION['profile']=$ro; session_write_close();
			if(isset($rq['formmail'])){ header('location: https://www.xxxxxx.com'); exit; }
			echo json_encode( array( 'type'=>'complete', 'profile'=>$ro ) ); 
			exit;
		}else{
			echo json_encode(
				array(
					'type'=>'error', 
					'message'=>'Cannot find Email or wrong password', 
					'rq'=>$hk->statement
				)
			);
			exit;
		}
	case 'LostPassword':
		$rq = $_REQUEST;




ประวัติการแก้ไข
2015-11-04 17:50:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-04 17:35:09 By : NewbiePHP
 


 

No. 14

Guest


ทำระบบเป็น 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
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ผมจะทำเว็บที่ มีการ include ไฟล์ php มาวางไว้ในส่วนต่างๆ ซึ่งปัญหาก็คือ ต้องการเช็คว่าผู้ที่เข้ามายังหน้าเว็บทำการ login หรือยัง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





Exchange: Voake, Comcube, ปรึกษากฎหมายฟรี 24 , ขายเครื่องเสียงมือสอง,vps | เช่า vps , รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2018 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่