ช่วยทีครับแก้ไม่ได้เลย Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
Code นะครับ
หน้า login.php
<?
require( "config.inc.php" );
$username = $_REQUEST[ 'username'];
$password = $_REQUEST['password'];
if (isset($_REQUEST[$cook_nm] ) ) {
$svusr = 'checked' ;
$focus = "document.a.password.focus(); " ;
} else {
$focus = "document.a.username.focus(); " ;
}
if ( ( !empty($username) ) And ( !empty($username) ) ) {
$username = trim($_POST['username']);
$password = trim($_POST['password']);
//Open database
mysql_connect($dbhost,$dbuser,$dbpass) or die ( "connect mysql ไม่ได้นะจ๊ะ " );
mysql_select_db($dbname);
$sql = "SELECT user,passwd,lastlog From tbuser WHERE user='$username' ";
$dbquery = mysql_query($sql);
//echo $sql;
$result = mysql_fetch_array($dbquery);
if(!$result) {
echo "<center><br><img src='icon/Achtung.png'><br>ข้อมูล Log in ผิดผลาด !! ";
echo " <a href='login.php'>Log in Again </a>";
exit;
}
if (md5 (trim($password) ) == trim ($result['password'] ) ) { //ถ้ารหัสผ่านถูกต้อง
$_SESSION['ses_user'] = $username;
$_SESSION['ses_log'] = $result['lastlog'];
//ถ้าผู้ใช้เลือกให้จำรหัสและชื่อเอาไว้ก็เก็บข้อมูลเลย
if ($_REQUEST['saveuser'] == "on" ) {
setcookie($cook_nm,$username,time()+$cook_time);
} else {
setcookie($cook_pw," ",time() );
}
mysql_query("UPDATE tbuser SET lastlog = dtnow
WHERE user = '$username' ");
mysql_query("UPDATE tbuser SET dtnow = dtnow
WHERE user = '$username' ");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<meta http-equiv="refresh" content="3;URL=main.php">
</head>
<center><b>Welcome รอสักครู่ กำลังเข้าสู่ระบบ</b></center>
</html>
<?
exit();
} else {
$ip = $REMOTE_ADDR . " @ " . $now ;
mysql_query ("UPDATE tbuser SET hacker='$ip' WHERE user='$username' " );
echo "<center><b>Log in Fail <a href=./>Log in Again </a></b></center>" ;
exit();
}
}
?>
ส่วนหน้า
config.inc.php
error_reporting(E_ALL ^ E_NOTICE); //ตั้งให้ระบบแจ้งเตือนค่า ERROR
session_start(); // เริ่มต้น Sesseion
$cook_nm = 'login_26br' ; //ตั้งชื่อ Cookie สำหรับจำค่า Log in User ไว้ในเครื่อง
$cook_pw = 'log_65pw' ; //ตั้งชื่อ Cookie สำหรับจำค่า Log in Password ไว้ในเครื่อง
$cook_time = 3600 ; // ระยะเวลาการเก็บ Cookie
$dbhost = "localhost" ; // ข้อมูลการเชื่อมต่อกับ Host
$dbname = "test" ; // ชื่อฐานข้อมูล
$dbuser = "root" ; //ชื่อผู้ใช้
$dbpass = "root" ; //รหัสผู้ใช้
//ตั้งค่าวันที่และเวลาสำหรับบันทึกเข้าระบบ เช่น วันเวลาที่ Log in วันเวลาที่มีผู้บุกรุกมา
$bkk = mktime(gmdate('H')+7,gmdate('i')+0,gmdate('s'),
gmdate('m') ,gmdate('d'),gmdate('Y') );
$datetimeformat = "j/m/y - H:i " ; //รูปแบบวันเวลา (วัน /เดือน/ปี ชม:นาที
$now = date($datetimeformat,$bkk) ; // ค่าวันเวลาปัจจุบันในเครื่อง server
ต้องแก้ยังไงดีครับ ผมแก้ไม่ได้จริงๆ
ขอบคุณครับTag : - - - -
Date :
2009-10-11 11:51:33
By :
teerapuch
View :
1724
Reply :
10
ส่วนหน้า
config.inc.php << ไม่มี include หรอ
Code (PHP)
include("config.inc.php");
error_reporting(E_ALL ^ E_NOTICE); //ตั้งให้ระบบแจ้งเตือนค่า ERROR
session_start(); // เริ่มต้น Sesseion
$cook_nm = 'login_26br' ; //ตั้งชื่อ Cookie สำหรับจำค่า Log in User ไว้ในเครื่อง
$cook_pw = 'log_65pw' ; //ตั้งชื่อ Cookie สำหรับจำค่า Log in Password ไว้ในเครื่อง
$cook_time = 3600 ; // ระยะเวลาการเก็บ Cookie
$dbhost = "localhost" ; // ข้อมูลการเชื่อมต่อกับ Host
$dbname = "test" ; // ชื่อฐานข้อมูล
$dbuser = "root" ; //ชื่อผู้ใช้
$dbpass = "root" ; //รหัสผู้ใช้
//ตั้งค่าวันที่และเวลาสำหรับบันทึกเข้าระบบ เช่น วันเวลาที่ Log in วันเวลาที่มีผู้บุกรุกมา
$bkk = mktime(gmdate('H')+7,gmdate('i')+0,gmdate('s'),
gmdate('m') ,gmdate('d'),gmdate('Y') );
$datetimeformat = "j/m/y - H:i " ; //รูปแบบวันเวลา (วัน /เดือน/ปี ชม:นาที
$now = date($datetimeformat,$bkk) ; // ค่าวันเวลาปัจจุบันในเครื่อง server
Date :
2009-10-11 12:08:21
By :
panyapol
เอ....หน้า Config จำเป็นต้องมีการเรียกตัวเองขึ้นมาอีกด้วยหรือครับ
พอผมลองทำดูแล้ว มันกลายเป็นหน้าว่างๆ ไม่มีข้อความอะไรขึ้นมาเลยนะครับ...
Date :
2009-10-11 12:34:03
By :
teerapuch
$dbquery = mysql_query($sql);
เปลี่ยนเป็น
$dbquery = mysql_query($sql) or die(mysql_error());
ให้มันแสดงเออเรอตั้งแต่ตรงนี้ดีกว่าน่ะ
Date :
2009-10-11 12:49:50
By :
xbeginner01
ตัว Warning หายไปแล้วครับ
แต่ทำไมไม่ว่าจะ Log in ด้วยชื่ออะไรก็บอกว่าผิดตลอดเลย
แล้วที่สำคัญผมให้แสดงรูปเวลาเกิดการผิดผลาด ก็ไม่ขึ้นไปแล้วครับ
ต้องทำยังไงต่อดีครับ
ขอบคุณครับ
Date :
2009-10-11 14:19:30
By :
teerapuch
ตอนนี้ขึ้นมาเป็นแบบนี้ไปแล้วครับ
SELECT user,passwd,lastlog From tbuser WHERE user='admin'
Log in Faile Log in Again
แก้ ยังไงดีครับ
Date :
2009-10-11 14:23:37
By :
teerapuch
ตอนนี้ผมแก้ไปจนถึงบรรทัดนี้แล้วครับ
<?
exit();
} else {
$ip = $REMOTE_ADDR . " @ " . $now ;
mysql_query ("UPDATE tbuser SET hacker='$ip' WHERE user='$username' " );
echo "<center><b>Log in Fail <a href=./>Log in Again </a></b></center>" ;
exit();
}
}
?>
พอ log in เข้ามาแล้วมันก็บอกว่าผมใส่รหัสผิดเลย
หาตำแหน่งที่ผิดไม่เจอครับ
รบกวนพี่ๆช่วยทีนะครับ
ขอบคุณครับ
Date :
2009-10-11 15:00:49
By :
teerapuch
เพิ่งสังเกตเห็น เก็บ ip พวกแฮกเกอร์ไว้ด้วย
นี้เก็บข้อมูลแฮกเกอลงในฐานข้อมูล user ปกติเลยหรอครับ น่าจะสร้างตารางอีกตารางไปเลยจะได้เก็บสถิติของแฮกเกอร์ไว้ด้วย
create table hacker(
id int(4) not null auto_increment,
ip_hacker varchar(30) not null,
user_hacked varchar(30) not null,
date varchar(30) not null
primary key(id)
);
เสนอแนะเฉยๆน่ะไม่ต้องทำก็ได้ แต่ชอบจริงระบบแบบนี้
if ( ( !empty($username) ) And ( !empty($username) ) ) { เขียนแบบนี้ผ่านด้วยหรอ?? สงสัยนิดหน่อย แล้วใช้เงื่อนไขซ้ำอีกอ่ะ
if ( ( !empty($username) ) && ( !empty($password) ) )
if (md5 (trim($password) ) == trim ($result['password'] ) ) ในฐานข้อมูลเก็บเป็น md5 หรอ ถ้าไม่ใช่
if (md5(trim($password) ) == md5(trim($result['password'] )) ) ถ้าเก็บเป็น md5 ก็ไม่ต้องแก้ตรงนี้ครับ
ลองลบ trim ดูครับ
if (md5($password) == $result['password'] )
ไม่รับลองผลน่ะครับเอาไปทดสอบดูก่อนเหอะๆ
Date :
2009-10-11 15:20:08
By :
xbeginner01
ลองแก้ไขดูแล้วยังไม่ได้เลยครับ ขึ้นเหมือนเดิมครับ
ส่วนเรื่องคำแนะนำในการสร้างตารางเก็บสถิติของแฮกเกอร์ ขอบคุณครับจะลองไปปรับใช้ดู
แต่ออกแบบไว้หมดแล้ว เลยขอแก้ไขตอนหลังแล้วกัน น่าสนใจมากครับ
ขอบคุณครับ
Date :
2009-10-11 16:12:03
By :
teerapuch
Date :
2009-10-16 10:35:45
By :
nerobenz
if (md5 (trim($password) ) == trim ($result['password'] ) ) ตรงนี้ผิดครับ เพราะว่าชื่อ ไม่ตรงครับ
ต้องเป็น passwd ครับ
Date :
2011-01-05 14:06:31
By :
ไม่รู้ว่าสายไปหรือเปล่า
Load balance : Server 01