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,030

HOME > PHP > PHP Forum > สอบถาม script login หน่อยครับ ว่าทำไมถึงตรวจสอบช้า



 

สอบถาม script login หน่อยครับ ว่าทำไมถึงตรวจสอบช้า

 



Topic : 130374



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



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




รู้สึกตอนตรวจสอบ login มันช้ามากครับ เกิน 10 วิ เลยครับ ช่วยตรวจสอบหน่อยครับ ว่ามันช้าตรงไหนและควรปรับตรงไหน
ปล. เขียนมาก็หลายเว็บแต่มาตายตรง login นี้ รู้สึกเฟลมากๆ ครับ T_T

Code (PHP)
		$page = isset($_GET['page']) ? $_GET['page'] : '';
		if($page==="customer"){
			$urlNew = "order";
		} else {
			$urlNew = "";
		}
		$txtUsername = $_POST["username"];
		$txtPassword = $_POST["password"];
		$rememberme = isset($_POST["rememberme"]) ? $_POST["rememberme"] : 'nocheck';
		$txtUsername = $conn->real_escape_string($txtUsername);
		$txtPassword = $conn->real_escape_string($txtPassword);
        $sql = "SELECT id,password,keySite,admin FROM users WHERE username='$txtUsername'";
        $qrySQLi = $conn->query($sql);
        if ($qrySQLi->num_rows === 1) {
            $objUser = $qrySQLi->fetch_array(MYSQLI_ASSOC);
            $hash = $objUser["password"];
            $iduser = $objUser["id"];
            $keySite = $objUser["keySite"];
            if (password_verify("$txtPassword", $hash)) {

              if($rememberme==="nocheck"){
                  setcookie("iduser", $iduser, time() + 86400 , "/"); //86400 = 1 day
                  setcookie("keySite", $keySite, time() + 86400 , "/"); //86400 = 1 day
              } else {
                  setcookie("iduser", $iduser, time() + (86400 * 365), "/");
                  setcookie("keySite", $keySite, time() + (86400 * 365), "/");
              }

                if($objUser["admin"]==="1"){
                  $sql = "UPDATE `users` SET `lastonline`=NOW(),`online`='1',`timeonline`=NOW() WHERE id = '".$objUser["id"]."'";
                  $result = $conn->query($sql);
                  header("location: ./$urlNew");
                } else {
                  $sql = "UPDATE `users` SET `lastonline`=NOW(),`online`='1',`timeonline`=NOW() WHERE id = '".$objUser["id"]."'";
                  $result = $conn->query($sql);
                  header("location: ./$urlNew");
                }
            } else {
              header("location: ./login?result=fail");
            }
        } else {
            header("location: ./login?result=fail");
        }




Tag : PHP, MySQL









ประวัติการแก้ไข
2018-02-22 11:27:26
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-02-22 11:22:41 By : nutemoza View : 716 Reply : 7
 

 

No. 1



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

Hall of Fame 2012

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


เป็นที่ Host รึเปล่าครับ Code ปกติดีนะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 12:11:20 By : dudesaranyu
 


 

No. 2



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



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

Code ถูกหมดครับ แต่งง?
Code (PHP)
12.
$sql = "SELECT id,password,keySite,admin FROM users WHERE username='$txtUsername'";

// WHERE แค่ username ทำไม ไม่ AND password = '$txtUsername'

// มาเป็น WHERE username='$txtUsername' AND password = '$txtUsername'   ";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 12:28:14 By : Hararock
 

 

No. 3



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

Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 2 เขียนโดย : Hararock เมื่อวันที่ 2018-02-22 12:28:14
รายละเอียดของการตอบ ::
password เป็นการเข้ารหัสครับ

Code (PHP)
<?php
// See the password_hash() 
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 12:47:42 By : dudesaranyu
 


 

No. 4



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ปัญหาหลักก็ตาม 1

วิธิการ optimize ข้างล่างจะช่วยได้ถ้าข้อมูลเยอะมากๆ
1 ถ้าใช้คำสั่ง time หลายครั้ง ให้ จับใส่ ตัวแปร ไว้ อย่างเรียกใช้คำสั่ง time() บ่อยๆ เพราะถ้ายุ่งกับ systime บ่อยๆ จะช้่า และเวลาจะเพี้ยนไว
2 หันมาใช้คำสั่ง prepare แล้วเลิกใช้ real_escape_string สั้นกว่า ไวกว่า
3 ใส่ index ให้ username
4 ต้องการ result แค่ record เดียว ใส่ limit 1 ใน statement ด้วย
5 ลดการใช้ตัวแปรพร่ำเพรื่อ
ตัวอย่างการ optimize code
Code (PHP)
<?php
define('cur_time', time()); // เก็บเวลาไว้ในตัวแปร อย่าไปยุ่งกับ systime มากนัก ทำให้ช้า เวลาเพี้ยน
$page = isset($_GET['page']) ? $_GET['page'] : '';
if($page==="customer"){
	$urlNew = "order";
} else {
	$urlNew = "";
}
$txtUsername = $_POST["username"];
$txtPassword = $_POST["password"];
$rememberme = isset($_POST["rememberme"]) ? $_POST["rememberme"] : 'nocheck';
// ใช้ prepare ก็ไม่ต้องใช้ real_escape_string
$sql = "SELECT id,password,keySite,admin FROM users WHERE username=? limit 1  ";// ใส่ limit 1 เพื่อบอกว่าเจอ แล้ว ก็ให้หยุดไม่ต้องหาอีก
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $txtUsername);
if(!$stmt->execute()) die("เกิดข้อผิดพลาด บีนทัด 14 <br>" . print_r($stmt->error_list,true));
$qrySQLi = $stmt->get_result();
if ($qrySQLi->num_rows === 1) {
	$objUser = $qrySQLi->fetch_object();
	if (password_verify("$txtPassword", $objUser->password)) {
		if($rememberme==="nocheck"){
				setcookie("iduser", $objUser->id, cur_time + 86400 , "/"); //86400 = 1 day
				setcookie("keySite", $objUser->keySite, cur_time + 86400 , "/"); //86400 = 1 day
		} else {
				setcookie("iduser", $objUser->id, cur_time + (86400 * 365), "/");
				setcookie("keySite", $objUser->keySite, cur_time + (86400 * 365), "/");
		}
		// code ซ้ำซ้อน 
		//if($objUser->admin==="1"){
			//$sql = 'UPDATE `users` SET `lastonline`=NOW(),`online`=1,`timeonline`=NOW() WHERE id = '.$objUser->id; 
		//} else {
			$sql = 'UPDATE `users` SET `lastonline`=NOW(),`online`=1,`timeonline`=NOW() WHERE id = '.$objUser->id;
		//}
		$conn->query($sql) or die($sql.'<br>'.$conn->error);
		header("location: ./$urlNew");
	} else {
		header("location: ./login?result=fail");
	}
} else {
	header("location: ./login?result=fail");
}

ปล. cookie จับเข้าไว้ใน array จะได้อ้างอิง cookie เดียว เวลาเดียว server ไม่ต้องทำงานเพิ่ม


ประวัติการแก้ไข
2018-02-22 13:01:16
2018-02-22 13:06:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 12:52:43 By : Chaidhanan
 


 

No. 5



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



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : dudesaranyu เมื่อวันที่ 2018-02-22 12:47:42
รายละเอียดของการตอบ ::
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 13:01:30 By : Hararock
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-02-22 12:52:43
รายละเอียดของการตอบ ::


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 13:05:00 By : Hararock
 


 

No. 7



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



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


ขอบคุณทุกท่านครับผม DÜd€ :3, HaraRock, Chaidhanan เดี่ยวจะลองแก้ไขตามที่ท่าน Chaidhanan บอกนะครับ ผลเป็นไงจะมาตอบอีกทีนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-22 15:07:07 By : nutemoza
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม script 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
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 อัตราราคา คลิกที่นี่