Tạo trang đăng ký và đăng nhập cho site

Bạn đang làm 1 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 1 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.

1. Tạo kết nối database:

Tạo file “mysql.php” có code như sau:

<?php

$db_host = “localhost”; // Giữ mặc định là localhost
$db_name = “test”; // Cần thay đổi..
$db_username = “root”; // Cần thay đổi..
$db_password = “123456”; // Cần thay đổi..

@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.

1.1. Tạo table “members” dùng dể chứa thông tin thành viên:

Sau đó bạn tạo file “create_members_table.php” có code như sau:

<?php

require_once(“mysql.php”);

@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 ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;”);

print “Table “members” đã được tạo.”;

?>

Bạn tiếp tục chạy luôn file “create_members_table.php” này để tiến hành tạo table “members“, 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.

2. Tạo trang đăng ký:

Tạo file “register.php” có code như sau:

<?php

// 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’] ) );
$verify_password = md5( addslashes( $_POST[‘verify_password’] ) );
$email = addslashes( $_POST[’email’] );

// Kiểm tra 4 thông tin, nếu có bất kỳ thông tin chưa điền thì sẽ báo lỗi
if ( ! $username || ! $password || ! $verify_password || ! $email )
{
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 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
@mysql_query(“INSERT INTO members (username, password, email) VALUES (‘{$username}’, ‘{$password}’, ‘{$email}’)”);

// Thông báo hoàn tất việc tạo tài khoản
print “Tài khoản {$username} đã được tạo. <a href=’login.php’>Nhấp vào đây để đăng nhập</a>”;

}
else
{

// Form đăng ký
print <<<EOF
<form action=”register.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=””>
Xác nhận mật khẩu: <input type=”password” name=”verify_password” value=””>
Địa chỉ E-mail: <input type=”text” name=”email” value=””>
<input type=”submit” name=”submit” value=”Đăng ký tài khoản”>
</form>
EOF;

}

?>


3. Tạo trang đăng nhập:

Tạo file “login.php” có code như sau:

<?php

// 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_start();
$_SESSION[‘user_id’] = $member[‘id’];

// 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;

}

?>

4. Tạo trang chủ:

Tạo file “index.php” với code như sau:

<?php

// Tải file mysql.php lên
require_once(“mysql.php”);

// Khởi động phiên làm việc
session_start();

if ( !$_SESSION[‘user_id’] )
{

print <<<EOF
Bạn chưa đăng nhập! <a href=’login.php’>Nhấp vào đây để đăng nhập</a>
EOF;

}
else
{

$user_id = intval($_SESSION[‘user_id’]);

$sql_query = @mysql_query(“SELECT * FROM members WHERE id='{$user_id}'”);
$member = @mysql_fetch_array( $sql_query );

print <<<EOF
Bạn đang đăng nhập với tài khoản {$member[‘username’]}.
EOF;

}

?>

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