require("config.inc.php");
$username = $_REQUEST['username']; // รับค่า username มาจากฟอร์ม
$password = $_REQUEST['password']; // รับค่า password มาจากฟอร์ม
// ถ้ามีการบันทึกชื่อ username เก็บไว้ในคุกกี้ ให้เซทโฟกัสไปที่ช่อง password
// หมายถึงว่าก่อนหน้านี้ ผู้ใช้งานได้ล๊อคอินเข้ามา แล้วสั่งให้จำ username ไว้ในเครื่องด้วย
// พอการล๊อคอินครั้งต่อไป เครื่องจะเอาชื่อ username ใส่ไว้ให้ที่ช่องกรอก username เลย
// พร้อมกันนี้ก็สั่งให้เคอร์เซอร์ไปกระพริบรอที่ช่อง password เพราะ username เครื่องกรอกรอไว้ให้แล้ว
if(isset($_REQUEST['$cook_nm'])) { // เช็คค่าในคุกกี้
$svusr = 'checked'; // สำหรับติ๊กในช่อง 'จำ user..'
$focus = "document.a.password.focus();"; // ให้เคอร์เซอร์ไปรอที่ช่อง password
} else { // ถ้าคุกกี้ไม่มีข้อมูล username อยู่ ก็ให้เคอร์เซอร์ไปกระพริบรอที่ช่อง username
$focus = "document.a.username.focus();"; // เซทโฟกัสไปที่ช่อง username
}
// เช็คว่ามีการกรอกข้อมูล username และ password เข้ามาหรือไม่ ถ้ายัง ให้กระโดดข้ามไปเปิดแบบฟอร์มสำหรับ Login (ที่ท้ายๆ สคริป)
// แต่ถ้ากรอก user, password มาแล้วให้ทำการตรวจสอบเปรียบเทียบ
if((!empty($username)) And (!empty($password))) {
$username = trim($_POST['username']);
$password = trim($_POST['password']);
// เปิดฐานข้อมูลเพื่อเช็คว่ามี username ที่กรอกเข้ามาหรือไม่
mysql_connect($dbhost,$dbuser,$dbpass) or die ("connect mysql ไม่ได้");
mysql_select_db($dbname);
$sql = "SELECT user,passwd,lastlog From tbuser_sc WHERE user = '$username'";
$dbquery = mysql_query($sql);
$result = mysql_fetch_array($dbquery);
if(!$result) { // ถ้าไม่มี user ใน DB ให้แจ้ง Error และหยุดทำงาน
#header("Location: loginfail.php");
echo "
ข้อมูล Login ผิด!!";
echo " Login ใหม่";
exit;
}
// ถ้ามี username ก็ให้เช็ครหัสผ่านที่ผู้ใช้กรอกเข้ามา เทียบกับในฐานข้อมูล
// สังเกตว่าใช้ md5 ช่วยในการเปรียบเทียบ เนื่องจากรหัสผ่านที่เก็บไว้ในฐานข้อมูล ได้ผ่านกระบวนการแปลงมาด้วย md5 นั่นเอง
if(trim($password)==trim($result['passwd'])) { // ถ้ารหัสผ่านถูกต้อง
// ถ้าข้อมูล Login ถูกต้อง ให้เก็บชื่อ user ไว้ใน session เพื่อนำไปใช้ในสคริปอื่นๆ ต่อไป
// จากนั้นก็ทำการ Redirect (กระโดด) ส่งต่อไปที่สคริปเมนูหลักอีกต่อหนึ่ง (index.php)
$_SESSION['ses_user'] = $username;
// เก็บค่าวันเวลาล๊อคอินที่เข้ามาล่าสุด (เอาไว้โชว์ในสคริป ถ้าต้องการ)
$_SESSION['last_log'] = $result['lastlog'];
// ตรวจสอบการทำงานระบบล๊อคอิน (เพื่อตรวจดูผลการรันเท่านั้น)
# $_SESSION['ses_pass'] = $password;
# echo "username: " . $_SESSION['ses_user'];
# echo "password: " . $_SESSION['ses_pass'];
# echo $_SESSION['last_log']; die;
// หากผู้ใช้ติ๊ก checkbox ให้จำ user ไว้ในเครื่อง ก็สั่งให้บันทึก username ไว้ในคุกกี้ด้วย
//if($_REQUEST['saveuser']=="on") {
// setcookie($cook_nm,$username,time()+$cook_time); // บันทึกคุกกี้ username
//} else {
// setcookie($cook_nm,"",time()); // เคลียร์ค่าในคุกกี้
//} // if == on
// หากผู้ใช้ติ๊ก checkbox ให้จำ password ไว้ในเครื่อง ก็สั่งให้บันทึก password ไว้ในคุกกี้ด้วย
//if($_REQUEST['savepwd']=="on") {
// setcookie($cook_pw,md5($password),time()+$cook_time);
//} else {
// setcookie($cook_pw,"",time());
//}
// บันทึกวันเวลาที่ล๊ิอคอินเข้ามา และวันเวลาครั้งที่แล้วที่ล๊อคอินเข้ามา (ครั้งล่าสุด)
mysql_query("UPDATE tbuser_sc SET lastlog = dtnow WHERE user = '$username'");
mysql_query("UPDATE tbuser_sc SET dtnow = '$now' WHERE user = '$username'");
// หากโปรแกรมดำเนินมาถึงตรงนี้ แสดงว่า user, password ทุกอย่างโอเค ให้รีไดเรคไปเมนูหน้าหลัก index.php
?>
โครงการอบรมครูวิทยาศาสตร์ :: มหาวิทยาลัยเทคโนโลยีสุรนารี
Welcome: รอสักครู่ กำลังเข้าสู่ระบบ..
exit;
} else { // ถ้ารหัสผ่านผิด ให้บันทึก ip และวันเวลาไว้ใน DB เพื่อดูว่ามีผู้บุกรุก ip อะไร เมื่อไร
$ip = $REMOTE_ADDR . " @ " . $now;
mysql_query("UPDATE tbuser_sc SET hacker = '$ip' WHERE user = '$username'");
# header("Location: loginfail.php");
echo "
ข้อมูล Login ผิด!!";
echo " Login ใหม่";
exit;
}
} // จบ if (กรณีที่มีการกรอก user, password เข้ามา)
?>
โครงการอบรมครูวิทยาศาสตร์ :: มหาวิทยาลัยเทคโนโลยีสุรนารี
|
|
|
|
© 2010 Institute of Science. All rights Reserved. Developed by Krittikorn
สำนักวิชาวิทยาศาตร์ มหาวิทยาลัยเทคโนโลยีสุรนารี 111 ถ.มหาวิทยาลัย ต.ในเมือง อ.เมือง จ.นครราชสีมา 30000
โทร. 0-4422-4187-8 โทรสาร. 0-4422-4185 |
|