10/10/2018, 11:19

Giúp mình sửa trang Login với

Mình tạo trang đăng ký là http://bachviet.22web.net/register.php và trang http://bachviet.22web.net/login.php khi test trên localhost thì nó báo là đã đăng nhập thành công với tên .../ nhưng khi chạy trên host thì lại cứ bị báo lỗi là không tồn tại tên truy cập, mặc dù mình đã nhập đúng USERNAME và PASS
- Đây là code trang login:
<?php
session_start();
header('Content-Type: text/html; charset=UTF-8');
echo '<title>Đổ mực máy in</title>';
// Tải file mysql.php lên
require_once('connections/admin.php');
if ( $_GET['act'] == "do" )
{
// Dùng hàm addslashes() để tránh SQL injection, dùng hàm md5() để mã hóa password
$username = addslashes( $_POST['username'] );
$password = md5( addslashes( $_POST['password'] ) );
// Lấy thông tin của username đã nhập trong table members
$sql_query = @mysql_query("SELECT id, username, password FROM members WHERE username='{$username}'");
$member = @mysql_fetch_array( $sql_query );
// Nếu username này không tồn tại thì....
if ( @mysql_num_rows( $sql_query ) <= 0 )
{
print "Tên truy nhập không tồn tại. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
exit;
}
// Nếu username này tồn tại thì tiếp tục kiểm tra mật khẩu
if ( $password != $member['password'] )
{
print "Nhập sai mật khẩu. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
exit;
}
// Khởi động phiên làm việc (session)
$_SESSION['user_id'] = $member['id'];
$_SESSION['user_admin'] = $member['admin'];
// Thông báo đăng nhập thành công
print "Bạn đã đăng nhập với tài khoản {$member['username']} thành công. <a href='index.php'>Nhấp vào đây để vào trang chủ</a>";
}
else
{
// Form đăng nhập
print <<<EOF
<form action="login.php?act=do" method="post">
Tên truy nhập: <input type="text" name="username" value="">
Mật khẩu: <input type="password" name="password" value="">
<input type="submit" name="submit" value="Đăng nhập">
</form>
EOF;
}
?>
bluewayvn viết 13:33 ngày 10/10/2018
Bạn đã up toàn bộ database lên chưa vậy? Kiểm tra trong cái table user xem có cái row username của bạn ko?
dunghoangit viết 13:25 ngày 10/10/2018
bạn post code lên như này thì làm sao mà đọc giúp bạn đc?

thế này nhé, ở cái dòng query check user và pass bạn echo ra cái câu sql đấy, rồi paste vào phpmyadmin để test sql lỗi hay php lỗi rồi tính tiếp
develop_007 viết 13:20 ngày 10/10/2018
mình ko biết vào đâu để post code lên cho dễ đọc nữa.
nanalove viết 13:26 ngày 10/10/2018
dùng thẻ [code] trong php post lên đây
develop_007 viết 13:28 ngày 10/10/2018
Code:
<?php
session_start();
header('Content-Type: text/html; charset=UTF-8');
echo '<title>Đổ mực máy in</title>';
// Tải file mysql.php lên
require_once('connections/admin.php');
if ( $_GET['act'] == "do" )
{
	// Dùng hàm addslashes() để tránh SQL injection, dùng hàm md5() để mã hóa password
	$username = addslashes( $_POST['username'] );
	$password = md5( addslashes( $_POST['password'] ) );
	// Lấy thông tin của username đã nhập trong table members
	$sql_query = @mysql_query("SELECT id, username, password FROM members WHERE username='{$username}'");
	$member = @mysql_fetch_array( $sql_query );
	// Nếu username này không tồn tại thì....
	if ( @mysql_num_rows( $sql_query ) <= 0 )
	{
		print "Tên truy nhập không tồn tại. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
		exit;
	}
	// Nếu username này tồn tại thì tiếp tục kiểm tra mật khẩu
	if ( $password != $member['password'] )
	{
		print "Nhập sai mật khẩu. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
		exit;
	}
	// Khởi động phiên làm việc (session)
	$_SESSION['user_id'] = $member['id'];
	$_SESSION['user_admin'] = $member['admin'];
	// Thông báo đăng nhập thành công
	print "Bạn đã đăng nhập với tài khoản {$member['username']} thành công. <a href='index.php'>Nhấp vào đây để vào trang chủ</a>";
}
else
{
// Form đăng nhập
print <<<EOF
<form method="post" action="login.php?act=do" name="submit" enctype="multipart/form-data">
Tên truy nhập: <input type="text" name="username" value="">
Mật khẩu: <input type="password" name="password" value="">
<input type="submit" name="submit" value="Đăng nhập">
</form>
EOF;
}
?>

[=========> Bổ sung bài viết <=========]

co ai ko guip minh voi
bluewayvn viết 13:26 ngày 10/10/2018
Xin lỗi,
Nhưng bạn biết phpmyadmin không? Nếu có thì xem hộ mình database của bạn đã có thông tin chưa? Mình đoán là do bạn chưa nhập thông tin hoặc là connection parameter bị sai.
P/S: Nếu bạn không kiểm tra những cái này thì mình bó tay với trường hợp này rồi.
develop_007 viết 13:27 ngày 10/10/2018
mình đã vào phpmyadmin kiểm tra rồi, thông tin chi tiết đăng ký đã được cập nhật vào bảng members rôi.
bvnguyen viết 13:26 ngày 10/10/2018
đoạn này
Code:
// Lấy thông tin của username đã nhập trong table members
$sql_query = @mysql_query("SELECT id, username, password FROM members WHERE username='{$username}'");
thay bằng

Code:
$sql = "SELECT id, username, password FROM members WHERE username='{$username}'";

echo $sql;
nó sẽ ra câu sql của mình, copy vào phpmyadmin xem ra được row nào ko rồi tính tiếp
mrtungs viết 13:32 ngày 10/10/2018
{$username}
bỏ cái { và } đi xem nào
Bài liên quan
0