10/10/2018, 09:55

Hỏi cách thiết lập login của 1 trang website

chào các bạn, mình có ý tưởng về chức năng login mà các website hay 4rum đều có nhưng mò hoài trên web ko có sỏure code hoặc chĩ dẫn, có bạn nào biết thì giúp dùm.

vd mình sẽ lấy cùng trên trang web hotrolaptrinh.com cho dễ hỉu, ở 1 góc trên trang web mình có 1 form cho user name và password và nút submit để login, sau điền thông tin sẽ có những hành đông sau:

1- validation user name và password và báo lỗi nếu ko đăng nhập đc
2- Sau khi validation hợp lệ, tại cùng 1 chỗ với cái form đăng nhập mà user đã điền username và password, nó sẽ đc thay thế = dòng chữ "hello <tên customer>"
2- nếu là admin sẽ vào 1 trang web dành cho admin
3- nếu là customer sẽ vào 1 trang web dàn costumer để họ típ tục shopping và add to cart,....

số 1 mình đã có bước giải nhưng còn bước 2,3 và 4 thì tịt, kiếm trên mạng cũng ko có phần mình cần. Mong các cao thủ giúp đỡ dùm và đặt biệt xin hướng tới các Mod và admin giúp đỡ, vì mình thấy cái form đăng đăng nhập này fu hợp với yêu cầu mình đặt ra.

thanks
thuyduongcd viết 11:58 ngày 10/10/2018
Mod và admin chỉ quản lý bài viết chứ chẳng ai đi trả lời câu hỏi đâu
vtoday viết 11:59 ngày 10/10/2018
http://vtoday.net/forum/php-mysql/7-...-trong-php.vtd

Được gửi bởi admin
Đầu tiên tạo 1 table trong mysql tên là user với cấu trúc lệnh như sau:
Code:
CREATE TABLE user (
ID smallint(3) NOT NULL auto_increment,
Name varchar(30) NOT NULL default '',
Password varchar(32) NOT NULL default '',
PRIMARY KEY (ID),
UNIQUE KEY Name (Name)
) TYPE=MyISAM;
Tạo 1 file config.php de connect vao database:

Code:
$Host = "localhost";
$User = "tên admin";
$Pass = "mật khẩu connect database";
$DB = "tên database chứa table user vừa mới tạo";

if(!($link_id = mysql_connect($Host, $User, $Pass))) die(mysql_error());
mysql_select_db($DB);
Tạo 1 file register.html de cho thành viên đăng ký

Code:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Login Signup!</title>
</head>
<body>
<form action="register.php" method="Post">
What is your desired Username? <input type="text" name="name"><br>
What is your password? <input type="password" name="password"><br>
<input type="submit" name="submit">
</form>
</body>
</html>
Sau đó tạo 1 file register.php

Code:
<?php

include('config.php');

$uname = $_POST['name'];
$upass = $_POST['password'];

$sql = "INSERT INTO $table VALUES ('', '$uname', md5('$upass'))";

if(!$result = mysql_query($sql)) die(mysql_error());

echo "Registered Successfully. <a href=\"login.html\">Continue</a> to the members page.";

?>
Ở đây tôi dùng md5 để mã hóa mật khẩu cho bảo mật khi có ai đó hack vào được database thì họ cũng kô thể nhìn thấy mật khẩu chính của mình được

Bây giờ tạo 2 file login.html:

Code:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<form method="post" action="login.php">
Enter your User Name <input type="text" name="Name" size="20"><br>
Enter you Password <input type="password" name="Password" size="20"><br>
<input type="submit" name="submit">
</form>
</body>
</html>
và tạo 1 file login.php để xử lý thông tin form:

Code:
<?php


include('config.php');

$_POST['Name'] = addslashes($_POST['Name']);
$_POST['Password'] = md5($_POST['Password']);

$sql = "SELECT ID FROM user WHERE Password = '" . $_POST['Password'] ."' AND Name = '" . $_POST['Name']. "' LIMIT 1";
if(!($result = mysql_query($sql))) die(mysql_error());

$Rows = mysql_num_rows($result);
if($Rows != 0) {
echo "Logged in!";
/* You can put more code here like a cookie */
} else {
echo "There as an error logging you. in";
}
?>
Vây là đã hòan tất.Bạn hãy chạy thử để xem thành quả của mình nhé !
vvthong viết 12:06 ngày 10/10/2018
code login trên mạng nhiều lắm, bạn chịu khó vào google tìm sẽ thấy dễ như ăn cơm thui
rain1007ht viết 11:56 ngày 10/10/2018
Thêm 1 tutorial về login bằng Tiếng Việt cho bạn nè:
http://tutorial.pip.vn/code/php-tuto...-va-mysql.html
bhost viết 11:56 ngày 10/10/2018
À chắc bạn ấy đang hỏi về thuật toán chứ không phải là code. Không biết đúng không nhỉ, thôi trả lời bừa nhé.
Khi bạn validation user name & password xong chắc bạn tìm được luôn user đó thuộc loại gì, admin hay customer hay member. Bạn đăng ký 2 biến này vào biên session là xong.

Ví dụ:
if (validation_login == TRUE) { // Hàm validation_login là công việc validation của bạn
$logged = $_POST['user'];
$user_type=user_type($_POST['user']);
session_register("logged");
session_register("user_type"); //<== đăng ký 2 biến session đây
}

Như vậy ở mỗi trang bạn lại có hàm check_login. Ví dụ khi người ta truy cập vào User Control Panel:
functions check_login() {
if (session_is_registered("logged") == TRUE)
return TRUE;
else return FALSE;
}

if (check_login == FALSE) {
header("Header: login.php"); //<== Nếu họ chưa login thì dẫn họ đến trang login
}

Còn hiển thị thông báo riêng trên góc trái thì có thể là
if ($user_type == "member") show_member_notification();
if ($user_type == "customer") show_customer_notification();
($user_type == "admin") show_admin_notification();

Sai các pro đừng cười nhé, mình không có nhiều thời gian để học
chameron viết 11:58 ngày 10/10/2018
bác google quyển này Wrox.Beginning.PHP5.Apache.and.MySQL.Web.Developme nt
có tất cả điều bác đang hỏi cms đơn giản , forum đơn giản , shopping cart đơn giản , ghép lại với nhau được một cái cũng ko đơn giản
dùng if-else
if (isset($_SESSION['login'])){
if($_SESSION['login'] == admin){
/hiện các thứ liên quan đến admin
}else{
/hiện các thứ là user
}
nếu chưa đăng nhập thì toàn bộ cái trên sẽ ko có, kể từ lúc đăng nhập,mỗi lần bạn gọi trang nó sẽ kiểm tra , thỏa mãn cái nào hiện cái đó

@vvthong : bác đã sửa được cái đoạn mã của em chưa ah, sao nó ko chạy
http://ddth.com/showthread.php?t=323048
thanks bác trc nhá
Bài liên quan
0