• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Hướng dẫn tạo trang đăng ký, đăng nhập bằng php và mysql hoàn chỉnh

Admin

Well-Known Member
Staff member
Administrator
Bạn đang làm một website? Site của bạn thuộc dạng chuyên nghiệp? hay nghiệp dư? ... thì cơ bản bạn cũng phải cần đến một trang đăng ký dùng để tạo tài khoản và trang đăng nhập dùng để truy nhập tài khoản đã đăng ký. Trong phạm vi bài viết này tôi sẽ trình bày cách viết 1 trang đăng ký, đăng nhập cơ bản mà bạn có thể ứng dụng ngay.

→demo online: *http://demo.sinhvienit.net/php/reg_log

1/ Tạo kết nối database:
Tạo file "mysql.php" có code như sau:
PHP:
<?php

$db_host = "localhost"; // Giữ mặc định là localhost

$db_name    = 'demo';// Can thay doi

$db_username    = 'root'; //Can thay doi

$db_password    = 'laivt';//Can thay doi

@mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Không thể kết nối database");

@mysql_select_db("{$db_name}") or die("Không thể chọn database");

?>

Bạn cần phải thay đổi thông tin ở 3 biến $db_name, $db_username, $db_password cho phù hợp với thông tin database của bạn.

2. Tạo table "members" dùng dể chứa thông tin thành viên:
Sau đó bạn tạo file "khoitao.php" có code như sau:
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>SinhVienIT.Net - Khoi tao CSDL (Huong Dan tao trang dang ki/Dang Nhap)</title>

<?php

require_once("mysql.php");

@$create=mysql_query("CREATE TABLE `members` (

`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,

`username` VARCHAR( 128 ) NOT NULL ,

`password` VARCHAR( 32 ) NOT NULL ,

`email` VARCHAR( 255 ) NOT NULL ,

`URLS` VARCHAR( 255 ) NOT NULL ,

`Name` VARCHAR( 255 ) NOT NULL ,

`Birthday` VARCHAR( 255 ) NOT NULL ,

`admin` INT( 1 ) NOT NULL DEFAULT '0' ,

PRIMARY KEY ( `id` )

) TYPE = MYISAM ;");

@$add_admin=mysql_query("

INSERT INTO `demo`.`members` (

`id` ,

`username` ,

`password` ,

`email` ,

`URLS` ,

`Name` ,

`Birthday` ,

`admin`

)

VALUES (

NULL , 'admin', MD5( 'admin' ) , 'admin@sinhvienit.net', 'http://sinhvienit.net', 'Vũ Thanh Lai', '29/09/1990', '1'

);

");

if ($create)

print "Table "members" đã được tạo.<br>";

else

print "Table "members" chưa được tạo do lỗi truy vấn SQL.<br>";



if ($add_admin)

print "<b>TK Admin:</b><br>User: admin<br>Pass:admin<br>";

else

print "Ko thể tạo tài khoản admin vì lỗi SQL.<br>";



echo '<a href="index.php">Click vào đầy để xem Demo</a>';

?>

Bạn tiếp tục chạy file "khoitao.php" này để tiến hành tạo table "members" và tài khoản admin, sau khi tạo xong thì xóa file này đi. Nếu bạn đã quen sử dụng phpMyAdmin thì bạn có thể tự tạo table này, còn đối với newbie thì nên làm theo cách của tôi, sau này bạn có thể tự tìm hiểu thêm.

3. Tạo trang đăng ký:
Tạo file "register.php" có code như sau:
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>SinhVienIT.Net - Dang ky thanh vien (Huong dan xay dung trang Dang ky/dang Nhap)</title>

<?php

// Tải file mysql.php lên

require_once("mysql.php");

//Kiem tra email co hop le hay ko

function check_email($email) {

if (strlen($email) == 0) return false;

if (eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $email)) return true;

return false;

}

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'] ) );

$verify_password = md5( addslashes( $_POST['verify_password'] ) );

$email = addslashes( $_POST['email'] );

$ten = addslashes( $_POST['name'] );

$sinhnhat = addslashes( $_POST['sn'] );

$url = addslashes( $_POST['url'] );

// Kiểm tra 7 thông tin, nếu có bất kỳ thông tin chưa điền thì sẽ báo lỗi

if ( ! $username || ! $_POST['password'] || ! $_POST['verify_password'] || ! $email || ! $ten || ! $sinhnhat || ! $ten)

{

print "Xin vui lòng nhập đầy đủ các thông tin. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

// Kiểm tra username nay co nguoi dung chua

if ( mysql_num_rows(mysql_query("SELECT username FROM members WHERE username='$username'"))>0)

{

print "Username này đã có người dùng, Bạn vui lòng chọn username khác. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

// Kiểm tra email nay co hop le ko

if (!check_email($email))

{

print "Email này ko hợp lệ. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

if (!ereg("^[0-9]+/[0-9]+/[0-9]{2,4}",$sinhnhat))

{

print "Ngày tháng năm sinh ko hợp lệ. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

// Kiểm tra email nay co nguoi dung chua

if ( mysql_num_rows(mysql_query("SELECT email FROM members WHERE email='$email'"))>0)

{

print "Email này đã có người dùng, Bạn vui lòng chọn Email khác. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

// Kiểm tra mật khẩu, bắt buộc mật khẩu nhập lúc đầu và mật khẩu lúc sau phải trùng nhau

if ( $password != $verify_password )

{

print "Mật khẩu không giống nhau, bạn hãy nhập lại mật khẩu. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";

exit;

}

// Tiến hành tạo tài khoản

@$a=mysql_query("INSERT INTO members (username, password, email,URLS,Name,Birthday) VALUES ('{$username}', '{$password}', '{$email}', '{$url}', '{$ten}', '{$sinhnhat}')");

// Thông báo hoàn tất việc tạo tài khoản

if ($a)

print "Tài khoản {$username} đã được tạo. <a href='login.php'>Nhấp vào đây để đăng nhập</a>";

else

print "Có lỗi trong quá trình đăng kí, Vui lòng liên hệ BQT";

}

else

{

// Form đăng ký

print <<<EOF

<form action="register.php?act=do" method="post">

<table border="1" width="400" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0">

<tr>

<td>Tên truy nhập:</td>

<td><input type="text" name="username" value=""></td>

</tr>

<tr>

<td>Mật khẩu:</td>

<td><input type="password" name="password" value=""></td>

</tr>

<tr>

<td>Xác nhận mật khẩu:</td>

<td><input type="password" name="verify_password" value=""></td>

</tr>

<tr>

<td>Địa chỉ E-mail:</td>

<td><input type="text" name="email" value=""></td>

</tr>

<tr>

<td>URL:</td>

<td><input type="text" name="url" value=""></td>

</tr>

<tr>

<td>Tên:</td>

<td><input type="text" name="name" value=""></td>

</tr>

<tr>

<td>Sinh nhật  (Ngày/Tháng/Năm):</td>

<td><input type="text" name="sn" value=""></td>

</tr>

<tr>

<td><input type="submit" name="submit" value="Đăng ký tài khoản"></td>

<td><Font size="5"> SinhViênIT.Net</Font></td>

</tr>

</table>

</form>

EOF;

}

?>

4. Tạo trang đăng nhập:
Tạo file "login.php" có code như sau:
PHP:
<?php

session_start();

header('Content-Type: text/html; charset=UTF-8');

echo '<title>SinhVienIT.Net - dang nhap (Huong Dan tao trang dang ki/Dang Nhap)</title>';

// Tải file mysql.php lên

require_once("mysql.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;

}

?>

5. Tạo trang chủ:
Tạo file "index.php" với code như sau:
PHP:
<?php

session_start();

header('Content-Type: text/html; charset=UTF-8');

echo '<title>SinhVienIT.Net - Homepage (Huong Dan tao trang dang ki/Dang Nhap)</title>';

require_once("mysql.php");

if ( !$_SESSION['user_id'] )

{

echo "Bạn chưa đăng nhập! <a href='login.php'>Nhấp vào đây để đăng nhập</a> hoặc <a href='register.php'>Nhấp vào đây để đăng ký</a>";

}

else

{

$user_id = intval($_SESSION['user_id']);

$sql_query = @mysql_query("SELECT * FROM members WHERE id='{$user_id}'");

$member = @mysql_fetch_array( $sql_query );

echo "Bạn đang đăng nhập với tài khoản {$member['username']}.";

echo "<br><a href='suathongtin.php'>Sửa thông tin</a>";

if ($member['admin']=="1")  echo "<br><a href='admin.php'>Trang quản trị</a>";

echo "<br><a href='thoat.php'>Thoát ra</a>";

}

?>


6. Tạo trang admin:
Tạo file "admin.php" với code như sau:
PHP:
<?php

session_start();

header('Content-Type: text/html; charset=UTF-8');

require_once("mysql.php");

if ( !$_SESSION['user_id'] )

{

echo "Bạn chưa đăng nhập! <a href='login.php'>Nhấp vào đây để đăng nhập</a> hoặc <a href='register.php'>Nhấp vào đây để đăng ký</a>";

}

else

{

$user_id = intval($_SESSION['user_id']);

$sql_query = @mysql_query("SELECT * FROM members WHERE id='{$user_id}'");

$member = @mysql_fetch_array( $sql_query );

echo "Bạn đang đăng nhập với tài khoản {$member['username']}.";

echo "<br><a href='thoat.php'>Thoát ra</a><hr>";

if ($member['admin']!="1")

echo "Bạn ko phải là admin";

else

{

//Noi dung cac ham, cac lenh va code danh cho admin

echo "Các code cho admin ở đây";

}



}

?>
7. Tạo trang logout:
Tạo file "thoat.php" với code như sau:
PHP:
<?php

session_start();

header('Content-Type: text/html; charset=UTF-8');

echo '<title>SinhVienIT.Net - Huong Dan tao trang dang ki/Dang Nhap</title>';

if (session_destroy())

echo "Thoát thành công!";

else

echo "KO thể thoát dc, có lỗi trong việc hủy session";



echo '<br><a href="index.php">Bấm vào đây để quay lại trang chủ<br></a>';

?>

8. Tạo trang sửa thông tin cá nhân:
Tạo file "suathongtin.php" với code như sau:
PHP:
<?php

session_start();

header('Content-Type: text/html; charset=UTF-8');

echo '<title>SinhVienIT.Net - Sua thong tin ca nhan (Huong Dan tao trang dang ki/Dang Nhap)</title>';

echo '<a href="index.php">Bấm vào đây để quay lại<br></a>';

require_once("mysql.php");

if ( !$_SESSION['user_id'] )

{

echo "Bạn chưa đăng nhập! <a href='login.php'>Nhấp vào đây để đăng nhập</a> hoặc <a href='register.php'>Nhấp vào đây để đăng ký</a>";

}

else

{

$user_id = intval($_SESSION['user_id']);

$sql_query = @mysql_query("SELECT * FROM members WHERE id='{$user_id}'");

$member = @mysql_fetch_array( $sql_query );

//----Noi dung thong bao sau khi sua

$thanhcong='Sửa thành công <a href="index.php">Quay lại</a>';

$kothanh='Sửa ko thành công';

echo "<b>Đang Sửa tài khoản {$member['username']}</b>.<br>";

if ($_GET['do']=="sua") {

$ten = addslashes( $_POST['name'] );

$pass = md5( addslashes( $_POST['pass'] ) );

$sn = addslashes( $_POST['sn'] );

$url = addslashes( $_POST['url'] );

$email = addslashes( $_POST['email'] );

$sql="

UPDATE `members` SET

`email` = '".$email."',

`URLS` = '".$url."',

`Name` = '".$ten."',

`Birthday` = '".$sn."' WHERE `id` =$user_id LIMIT 1 ;";

if ($sua=mysql_query($sql))

echo $thanhcong;

else

echo $kothanh;

if ($_POST['pass']!="") {

$sqlx="UPDATE `members` SET `password` = '".$pass."' WHERE `id` = '$user_id' LIMIT 1 ;";

$suapass=mysql_query($sqlx);

if ($suapass)

echo "(Đã đổi pass) ";

else

echo "(Chưa đổi pass) ";

}

}

else

echo"

<form method='POST' action='?do=sua'>

<table border='1' width='100%' id='table1' cellspacing='0' cellpadding='0' style='border-collapse: collapse' bordercolor='#C0C0C0'>

<tr>

<td>Tên:</td>

<td><input type='text' value='{$member['Name']}' name='name' size='20'></td>

</tr>

<tr>

<td>URL:</td>

<td><input type='text' value='{$member['URLS']}' name='url' size='20'></td>

</tr>

<tr>

<td>Sinh Nhật:</td>

<td><input type='text' name='sn' value='{$member['Birthday']}' size='20'></td>

</tr>

<tr>

<td>Email:</td>

<td><input type='text' name='email' value='{$member['email']}' size='20'></td>

</tr>

<tr>

<td>Pass:</td>

<td><input type='password' name='pass' size='20'></td>

</tr>

</table>

<p align='center'><input type='submit' value='Sửa'><input type='reset' value='Khôi phục' name='B2'></p>

</form>

";

}

?>

Chúc các bạn thành công!

Lưu ý:
Các bạn nên dùng các trình soạn thảo chuyên cho lập trình để tạo các file trên, Nếu dùng Notepad của window thì có thể sẽ bị lỗi khởi động session nếu lưu dạng UTF-8, còn nếu lưu dạng ASCII thì lại bị lỗi font
 

Facebook Comments

Similar threads
Thread starter Title Forum Replies Date
V Hướng dẫn tạo logo giống Xenforo Xenforo 4
dammechiase Dowload phần mềm UltraISO Mới nhất phần mềm tạo ổ đĩa ảo mới nhất full key bản chuẩn kèm hướng dẫn Phần mềm 0
Admin Hướng dẫn tạo con vật thật sự trên màn hình điện thoại bằng Animal 4D+ Thảo luận chung 0
Admin Hướng dẫn tạo video karaoke đơn giản và chi tiết nhất 2019 Video, clip 4
SuperTroll Share Hướng dẫn tự tạo App Android để truy cập vào wapsite của mình Android, iOS 0
V Hướng Dẫn Tạo Forum Trên Xtgem Wap builder, wapego, xtgem, wen.ru, wapka, wap4 1
B Hỏi Adm hướng dẫn mình tạo filelist đơn giản cho wap xtgem với? HTML & CSS 2
A Xin hướng dẫn tạo forum xenforo chi tiết dễ hiểu Thảo luận wap việt 4
D Share Hướng dẫn tạo cấu trúc php sửdụng hàm GET hoặc POST All Shared Scripts 0
H Hướng dẫn Hướng dẫn tạo chuyên mục cho Xenforo Xenforo 0
Admin Hướng dẫn chi tiết tạo paypal bằng hình ảnh Thảo luận chung 1
roboconz Hướng dẫn Hướng dẫn ae tạo tên miền .tk đây Mã nguồn wap 4
nhokzodanh Share hướng dẫn tạo wap upload wapka Wap builder, wapego, xtgem, wen.ru, wapka, wap4 2
G : [b]Hướng dẫn chi tiết tạo logo[/b] Hình ảnh 0
Yeukodamnoi Hướng dẫn cách chế tạo súng hơi Ý tưởng, góp ý, sáng kiến mới của thành viên 10
X Hướng dẫn Hướng dẫn tạo trang riêngtrong vbb 4 Vbulletin 1
H Hỏi Tạo domen.tk trên điện thoại được ko anh em ơi.nếu được xin a e hướng dẫn nhé! Thanks rất nhiều.tớ v Hosting & Domain Share 5
H Hướng dẫn tạo Sitemap cho các blogger sử dụng Blogspot Thảo luận SEO 0
N Hướng dẫn Hướng dẫn tạo database trên cPanel Hosting / Domain 0
Della007 Hỏi Xin anh thắng hướng dẫn tạo database host directadmin Hỏi đáp về domain & hosting 3
2 Thảo luận Mong A thắng hay congtu24, kidbloob và pro john trên host cp11 tạo top hướng dẫn chi tiết Johncms 10
H Hướng dẫn tạo subdomain Hướng dẫn Tạo Subdomain Hosting & Domain Free 0
yeuthenao [Share] Hướng dẫn sử dụng PSD để tạo Logo Video, clip 0
L Hỏi Ae nào hướng dẫn mình tạo page tren facebook tks Thảo luận SEO 2
Yeukodamnoi Share zip html hướng dẫn tạo wap Mã nguồn wap 6
Admin [Full HD 1080] Hướng dẫn tạo add-on Xenforo 1/9 - Creating your own add-on Xenforo 0
A Help Wapka xin hướng dẫn tạo phần trang nhanh Wap builder, wapego, xtgem, wen.ru, wapka, wap4 1
Admin Hướng dẫn sử dụng PSD để tạo logo + PSD Thiết kế đồ họa 2
Admin Hướng dẫn tạo ổ USB flash cài đặt Windows 8 Sử dụng, chia sẻ, hỏi đáp 0
Admin Hướng dẫn tạo javascript tự động thay đổi hình ảnh, link JavaScript / Ajax 2
K Hướng Dẫn Tạo Ảnh Nền Cho Chatbox Trong Vbb Mã nguồn web 1
K [Hướng Dẫn] Edit Templeate Tạo Tcat Ảnh Cho Riêng Từng Box Mã nguồn web 0
Admin Hướng dẫn tạo Banner Flash chuyển ảnh Kiến thức lập trình 0
Admin Hướng dẫn tạo phân vùng chủ trong Ubuntu Sử dụng, chia sẻ, hỏi đáp 0
Admin [Hướng dẫn] tạo giao diện 2 cột, 3 cột HTML & CSS 0
T Xin hướng dẫn tạo user database trên mobile Kiến thức lập trình 4
N Help Xin hướng dẫn tạo subdomain ở host khác nhau Hỏi đáp về domain & hosting 0
Admin Video hướng dẫn tạo user/password admin khi người share code ko đưa thông tin này Mã nguồn web 7
Admin Hướng dẫn tạo hình nền chatbox - ngầu hơn Vbulletin 1
Admin Hướng dẫn tạo database trong cpanel PHP 3
congtust24 Hướng dẫn tạo logo ở header style mobile HTML & CSS 32
Admin Hướng dẫn tạo giao diện timeline HTML & CSS 0
N Xin hướng dẫn tạo banner cho profile Thảo luận chung 4
M Hướng dẫn tạo đầu trọc vĩnh viễn cho ai chưa biết Ý tưởng, góp ý, sáng kiến mới của thành viên 0
Kidblood Hướng dẫn tạo phòng chát ngoài trang chủ yourwap.eu Wap builder, wapego, xtgem, wen.ru, wapka, wap4 17
Admin Hướng dẫn tạo block (quảng cáo 1 bên hông forum vbb4) Vbulletin 0
Admin Hướng dẫn tạo quảng cáo chạy dọc 2 bên forum vbb Vbulletin 0
Admin Hướng dẫn tạo prefix (tiền tố) cho vbb4.x.x Add-ons 0
Admin Hướng dẫn tạo trang hiển thị trình duyệt khi truy cập PHP 0
Admin Hướng dẫn tạo logo team chi tiết từ a đến z Thủ thuật ĐTDĐ 17

Similar threads

New posts New threads New resources

Back
Top