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

Registered : 109,027

HOME > PHP > PHP Forum > [Code] ถามเรื่องการใช้คุกกี้ ให้ระบบล็อกอินค้างไว้ ถึงแม้จะปิดบราวเซอร์หรือปิดเครื่อง



 

[Code] ถามเรื่องการใช้คุกกี้ ให้ระบบล็อกอินค้างไว้ ถึงแม้จะปิดบราวเซอร์หรือปิดเครื่อง

 



Topic : 120888



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



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




ผมต้องการให้โค้ดนี้ล็อกอินค้างไว้ ถึงแม้จะปิดบราว์เซอร์ หรือ ปิดเครื่อง แล้วเปิดขึ้นมาใหม่
จากโค้ดด้านล่างนี้ผมได้ลอง set cookie ลงไปในส่วนของ user.php

Code (PHP)
                    setcookie('email', $email,time()+3600*24*7); // This is cookie that i've added.
                    setcookie('password', $password,time()+3600*24*7); // This is cookie that i've added.


ซึ่งพอทำการล็อกอิน แล้วลองปิดบราว์เซอร์ทั้งหมด แล้วเปิดใหม่ ปรากฏว่ามันไม่ล็อกอินค้างไว้ ผมใส่ผิดตำแหน่ง หรือว่า ตัวโค้ดมีปัญหาตรงไหนครับ แต่ถ้าเป็นในกรณีที่ไมไ่ด้ปิดบราว์เซอร์ทั้งหมด แต่ปิดแค่แท็บ ในขณะที่ล็อกอิน แล้วเปิดขึ้นมาใหม่ ก็ยังคงล็อกอินค้างอยู่นะครับ

login.php (PHP)
<?php 
    ob_start();
    session_start();
    require_once 'config.php'; 
    ?>
    <?php 
    	if( !empty( $_POST )){
    		try {
    			$user_obj = new Cl_User();
    			$data = $user_obj->login( $_POST );
    			if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']){
    				header('Location: home.php');
    			}
    		} catch (Exception $e) {
    			$error = $e->getMessage();
    		}
    	}
    	//print_r($_SESSION);
    	if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']){
    		header('Location: home.php');
    	}
    ?>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Smart Login Page</title>
    	<link href='http://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css'>
        <!-- Bootstrap -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link href="css/font-awesome.min.css" rel="stylesheet">
        <link href="css/login.css" rel="stylesheet">
        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
          <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="js/jquery.min.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="js/bootstrap.min.js"></script>
      </head>
      <body>
    	<div class="container">
    		<?php require_once 'templates/ads.php';?>
    		<div class="login-form">
    			<?php require_once 'templates/message.php';?>
    			<h1 class="text-center">Login</h1>
    			<div class="form-header">
    				<i class="fa fa-user"></i>
    			</div>
    			<form id="login-form" method="post" class="form-signin" role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    				<input name="email" id="email" type="email" class="form-control" placeholder="Email address" autofocus> 
    				<input name="password" id="password" type="password" class="form-control" placeholder="Password"> 
    				<button class="btn btn-block bt-login" type="submit" id="submit_btn" data-loading-text="Signing In....">Sign in</button>
    			</form>
    			<div class="form-footer">
    				<div class="row">
    					<div class="col-xs-6 col-sm-6 col-md-6">
    						<i class="fa fa-lock"></i>
    						<a href="forget_password.php"> Forgot password? </a>
    					
    					</div>
    					
    					<div class="col-xs-6 col-sm-6 col-md-6">
    						<i class="fa fa-check"></i>
    						<a href="register.php"> Sign Up </a>
    					</div>
    				</div>
    			</div>
    		</div>
    	</div>
    	<!-- /container -->
        <script src="js/jquery.validate.min.js"></script>
        <script src="js/login.js"></script>
      </body>
    </html>
    <?php ob_end_flush(); ?>


user.php (PHP)
<?php
    /**
     * This User will have functions that hadles user registeration,
     * login and forget password functionality
     * @author muni
     * @copyright www.smarttutorials.net
     */
    class Cl_User
    {
    	/**
    	 * @var will going contain database connection
    	 */
    	protected $_con;
    	
    	/**
    	 * it will initalize DBclass
    	 */
    	public function __construct()
    	{
    		$db = new Cl_DBclass();
    		$this->_con = $db->con;
    	}
    	
    	/**
    	 * This method will handle user login process
    	 * @param array $data
    	 * @return boolean true or false based on success or failure
    	 */
    	public function login( array $data )
    	{
    		$_SESSION['logged_in'] = false;
    		if( !empty( $data ) ){
    			
    			// Trim all the incoming data:
    			$trimmed_data = array_map('trim', $data);
    			
    			// escape variables for security
    			$email = mysqli_real_escape_string( $this->_con,  $trimmed_data['email'] );
    			$password = mysqli_real_escape_string( $this->_con,  $trimmed_data['password'] );
    
    				
    			if((!$email) || (!$password) ) {
    				throw new Exception( LOGIN_FIELDS_MISSING );
    			}
    			$password = md5( $password );
    			$query = "SELECT member_id, member_display_name, member_email, member_status, roles_id FROM fm_member where member_email = '$email' and member_pwd = '$password' ";
                //$query = "SELECT user_id, name, email, created, roles_id, id FROM users where email = '$email' and password = '$password'"
    			$result = mysqli_query($this->_con, $query);
    			$data = mysqli_fetch_assoc($result);
    			$count = mysqli_num_rows($result);
    			mysqli_close($this->_con);
    			if( $count == 1){
                    $_SESSION = $data;
                    setcookie('email', $email,time()+3600*24*7); // This is cookie that i've added.
                    setcookie('password', $password,time()+3600*24*7); // This is cookie that i've added.
                    if($_SESSION['member_status'] == 'Activated') {
                        $_SESSION['logged_in'] = true;
                        return true;  
                    } else {
                        throw new Exception( 'Your account is Deactiavted! <br> Please contact to Adminnistrator for more information.' );
                        $_SESSION['logged_in'] = false;
                    }
    			}else{
    				throw new Exception( LOGIN_FAIL );
    			}
            } else{
    			throw new Exception( LOGIN_FIELDS_MISSING );
    		}
            
    	}
    	
    	
    	/**
    	 * This handle sign out process
    	 */
    	public function logout()
    	{
    		session_unset();
    		session_destroy();
    		header('Location: index.php');
    	}
    ?>




Tag : PHP









ประวัติการแก้ไข
2016-01-14 15:39:41
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-01-14 15:38:40 By : BButter View : 1716 Reply : 3
 

 

No. 1



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



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


คุณบอกว่าใช้ cookie แต่การตรวจของคุณมันใช้ session

session มันจะลบตัวเองทุกครั้งที่ปิดเบราเซอร์นะครับ
คุณต้องเอา cookie มาตรวจครับ ไม่ใช่ session






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-14 15:54:14 By : mr.v
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2016-01-14 15:54:14
รายละเอียดของการตอบ ::
เช็คบรรทัดที่ 19 ของ login.php ใช่มั้ยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-14 16:21:49 By : BButter
 

 

No. 3



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



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

บันทัด 7- 21 ลองปรับ การตรวจสอบใหม่ ตามลำดับความสำคัญ

Code (PHP)
if( isset($_SESSION['ชื่อ element ตัวแปรที่กำหนดว่าloginอยู่']) ){
     //ถ้ามี ตัวแปร sessionตัวนี้ แสดงว่า ได้มีการ เปิด session อยู่ กำลัง connect 
    // ก็ไห้ตรวจสอบตัวแปร request อันอื่นว่ามีการส่งมาหรือไม่
   if( isset($_REQUEST['ตัวแปร request จาก get put request เลือกเอาว่าจะตรวจสอบอะไร)){
        // กรณี มีการส่งมา ทำอะไรก็ว่าไป
   }else{
       // กรณีไม่มีการส่งมาทำอะไรต่อ
   }
}else{
   //กรณ๊ ไม่มี session แสดงว่า เพิ่ง login ก็ให้ตรวจสอบจาก cookie
   if( isset($_COOKIE['ตัวแปรเก็บ ค่าการล็อกอิน'])){
      // ถ้ามีเอาค่ามา auto login โปรแกรม ดำเนินการ ล๊อคอินให้
   }else{
      //ถ้าไม่มี ก็ให้ manual login  ผู้ใช้กรอกข้อความเอง
   }
}


ตัวอย่างข้างบน ควรจะเริ่มตรวจเช็คจาก ไฟล์แรกที่ผู้ใช้เรียก ซึ่งก็ควรจะเป็น index.php ซึ่งเป็นด่านแรก
ไม่ใช่เข้ามาตรวจ ใน login.php
แต่ถ้าคุณใช้ login.php เป็นไฟล์แรก สำหรับผู้ใช้ ก็ไม่ว่ากัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-14 22:07:41 By : NewbiePHP
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [Code] ถามเรื่องการใช้คุกกี้ ให้ระบบล็อกอินค้างไว้ ถึงแม้จะปิดบราวเซอร์หรือปิดเครื่อง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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