10/10/2018, 09:44

[TUTOR] hướng dẫn tạo login bằng php dùng database mysql

đầu tiên tạo 1 table trong mysql tên là user với cấu trúc lệnh như sau:
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:

$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ý chơi cho dzui :P

<!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

<?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:

<!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:

<?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à xong rồi đó mấy bạn các bạn có thấy dễ kô dza. hi hi

cách của mình làm hơi dài nhưng sẽ giúp cho các bạn mới bước vào nghề code có thể hiều được.

Các bạn thể làm cách khác đó là gộp 2 file html và php lại thành 1 file php và viết code xử lý form trong file php luôn
cách này tôi sẽ gửi lên sau nếu có bạn nào hỏi.
Chúc các bạn thành công!

Bài học kế tiếp là tôi sẽ hướng dẫn các bạn setcookie cho site để khi thành viên login vào có thể lướt site của mình mà kô cần login nhiều lân.

Bye các bạn!
Về Đâu viết 11:50 ngày 10/10/2018
Cám ơn bạn nhiều nha chà chà cái này cực hay đó .
leedzinh viết 11:45 ngày 10/10/2018
thanks bạn nhiều
bạn nào có thắc mắc gì cứ post lên đây
bye
Về Đâu viết 11:56 ngày 10/10/2018
Pass được mã hóa như vậy rất hay như mà lỡ quên mất mật khẩu thì làm sao bây giờ ? bạn có thể hướng dẫn thêm về quên mật khẩu không ?
bpmtri viết 11:48 ngày 10/10/2018
Nếu tui nhớ hỏng lầm, hàm md5 là mã hoá một chiều, hỏng có hàm giải mã, nếu bạn lỡ quên password thì chỉ có nước remove password cũ, tạo password mới thôi.

Đây cũng là cách mà các ứng dụng Web hay dùng, khi bạn quên password, hệ thống sẽ yêu cầu bạn nhập e-mail (duy nhất), nó sẽ tạo password mới và gửi password này về cho bạn qua email.
Về Đâu viết 11:52 ngày 10/10/2018
viết tutor rõ chút đi bạn ơi cám ơn nhiêu !
leedzinh viết 11:47 ngày 10/10/2018
md5 đúng là hàm mã hóa 1 chiều khi bạn quên password bạn có thể send 6 chữ số sau cùng cùng của password đã mã hóa cho user đồng thời reset password trong database thành 6 số đó sau đó khi user login vào thì user có thể đổi pass lại và lúc này mính lại md5 nữa đơn giản vậy thôi

chúc vui
bye
Về Đâu viết 11:55 ngày 10/10/2018
mình có thể làm auto send cái đó về email nếu có yêu cầu không ?
leedzinh viết 12:00 ngày 10/10/2018
ban có thể nói rõ không?
hay ý bạn muốn nói là khi member forgot pass thì mình send email pass mới cho user à?
được bạn dùng hàm mail( ) đó
cấu trúc của nó như sau:

$myname = "Me Myself";
$myemail = "myself@email.com";

$contactname = "Mister Contact";
$contactemail = "contact@email.com";

$message = "hello from happy me";
$subject = "A mail not refused by Hotmail";

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$myname." <".$myemail.">\r\n";
$headers .= "To: ".$contactname." <".$contactemail.">\r\n";
$headers .= "Reply-To: ".$myname." <$myreplyemail>\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: Just My Server";

mail($contactemail, $subject, $message, $headers);

bye chúc vui
Về Đâu viết 11:52 ngày 10/10/2018
demo here
mà sao nó ngủm cù tỏi fòi làm y hệ dzukhanh nói .
lúc register user test pass test thì nó báo :
You have an error in your SQL syntax near 'VALUES ('', 'test', md5('test'))' at line 1. xin gởi kèm file zip này bạn xem có đúng y hệt không trừ 2 trang fogotpas.html và php
Bài liên quan
0