XtGem Forum catalog
khai dai nhan







phần mềm hỗ trợđổi tone onlinecảm âm sáobẩn bựa hội

CHÀO MỪNG ĐẾN VỚI WAP,
MÌNH LÀ" BẨN BỰA BOY" CÁC BẠN LÊN YOUTUBE TÌM MÌNH VỚI TỪ KHOÁ "BẨN BỰA BOY" HOẶC CLICK VÀO
nhớ supcribe kênh của mình nha , mình sẽ liên tục cập nhật những beat sáo c5 và những bản sáo hay nhất cho các bạn
fanpage: cảm âm sáo trúc vũ gia
mua sáo trúc liên hệ : 01635618531

Bài 27: Xây dựng chức năng đăng ký thành viên với php và mysql

Bài này chúng ta sẽ thực hành xây dựng chức năng đăng ký thành viên với php và mysql, đây là một chức năng đơn giản và rất hay được sử dụng trong PHP. Để xem được bài này đòi hỏi bạn phải nghiên cứu qua hai phương thức POST và GET, các thẻ input thông dụng như text, textarea, ...

1. Xây dựng database bảng thành viên

Trước tiên bạn tạo một database tên demo và tạo thêm một bảng member bằng cách chạy câu truy vấn dưới đây:

CREATE TABLE IF NOT EXISTS `member` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
  `password` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  `phone` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
  `level` tinyint(4) DEFAULT NULL COMMENT '1: admin, 0: member',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

Tiếp theo ta sẽ Insert một user với tên là admin để làm người quản trị:

INSERT INTO `member` (
    `username`, `password`, `email`, `phone`, `level`
) VALUES ('admin', MD5('freetuts.net'), 'thehalfheart@gmail.com', '0979306603', '1')

Admin là thành viên quản trị của hệ thống website có và có level = 1. Nghĩa là:

  • Nếu user nào có level = 1 là admin => được đăng nhập vào hệ thống quản trị website
  • Nếu user nào có level = 0 là thành viên => không được đăng nhập vào hệ thống quản trị website.

Và mật khẩu của admin là MD5('freetuts.net'), nghĩa là trong hệ thống để bảo đảm an toàn thì ta sẽ dùng hàm MD5 để băm mật khẩu lưu vào trong cơ sở dữ liệu. Như vậy khi check Login thì phải dùng hàm MD5 trong PHP để mã hóa trước khi đưa vào so sánh.

2. Xây dựng form đăng ký thành viên

Bạn tạo một file tên register.php với nội dung như sau:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form method="post" action="xuly.php">
            <table>
                <tr>
                    <td>Username</td>
                    <td><input type="text" name="username" value=""/></td>
                </tr>
                <tr>
                    <td>Password</td>
                    <td><input type="text" name="password" value=""/></td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td><input type="email" name="email" value=""/></td>
                </tr>
                <tr>
                    <td>Phone</td>
                    <td><input type="text" name="phone" value=""/></td>
                </tr>
                <tr>
                    <td>Level</td>
                    <td>
                        <select name="level">
                            <option value="0">Thành Viên</option>
                            <option value="1">Admin</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" name="do-register" value="Đăng Ký"/></td>
                </tr>
            </table>
        </form>
    </body>
</html>
Action của form mình trỏ đến file xuly.php nên khi submit form hệ thống sẽ gửi thông tin đến file này. Giao diện như sau:

form dang ky thanh vien
Form đăng ký thành viên

3. Xử lý thao tác đăng ký thành viên

Trước khi xử lý thao tác thêm thành viên thì ta có một số lưu ý như sau:

  • Trong hệ thống CSDL thì field id có thuộc tính auto increment (tự động tăng) nên ta không cần truyền giá trị vào lúc thêm
  • Thuộc tính Username và Email phải là duy nhất nên trước khi thêm phải kiểm tra bị trùng hay không

Bây giờ bạn tạo file xuly.php với nội dung như sau:

// Thiết lập charset utf8
header('Content-Type: text/html; charset=utf-8');

// Vì tên button submit là do-register nên ta sẽ kiểm tra nếu
// tồn tại key này trong biến toàn cục $_POST thì nghĩa là người 
// dùng đã click register(submit)
if (isset($_POST['do-register']))
{
    // Lấy thông tin
    // Để an toàn thì ta dùng hàm mssql_escape_string để
    // chống hack sql injection
    $username   = isset($_POST['username']) ? mysql_escape_string($_POST['username']) : '';
    $password   = isset($_POST['password']) ? md5($_POST['password']) : '';
    $email      = isset($_POST['email'])    ? mysql_escape_string($_POST['email']) : '';
    $phone      = isset($_POST['phone'])    ? mysql_escape_string($_POST['phone']) : '';
    $level      = isset($_POST['level'])    ? (int)$_POST['level'] : '';
    
    // Validate Thông Tin Username và Email có bị trùng hay không
    
    // Kết nối CSDL
    $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Lỗi kết nối');
    mysqli_set_charset($conn, "utf8");
    
    // Kiểm tra username hoặc email có bị trùng hay không
    $sql = "SELECT * FROM member WHERE username = '$username' OR email = '$email'";
    
    // Thực thi câu truy vấn
    $result = mysqli_query($conn, $sql);
    
    // Nếu kết quả trả về lớn hơn 1 thì nghĩa là username hoặc email đã tồn tại trong CSDL
    if (mysqli_num_rows($result) > 0)
    {
        // Sử dụng javascript để thông báo
        echo '<!--{cke_protected}%3Cscript%20language%3D%22javascript%22%3E'%3B%0A%20%20%20%20%20%20%20%20echo%20'alert(%22T%C3%AAn%20%C4%91%C4%83ng%20nh%E1%BA%ADp%20ho%E1%BA%B7c%20email%20%C4%91%C3%A3%20%C4%91%C6%B0%E1%BB%A3c%20s%E1%BB%AD%20d%E1%BB%A5ng%22)%3B'%3B%20%20%20%20%0A%20%20%20%20%20%20%20%20echo%20'window.location%3D%22register.php%22'%3B%0A%20%20%20%20%20%20%20%20echo%20'%3C%2Fscript%3E-->';
        
        // Dừng chương trình
        die ();
    }
    else {
        // Ngược lại thì thêm bình thường
        $sql = "INSERT INTO member (username, password, email, phone, level) VALUES ('$username','$password','$email','$phone', '$level')";
        
        if (mysqli_query($conn, $sql)){
            echo '<!--{cke_protected}%3Cscript%20language%3D%22javascript%22%3E'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20'alert(%22Th%C3%AAm%20Th%C3%A0nh%20C%C3%B4ng%22)%3B'%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20'%3C%2Fscript%3E-->';
        }
        else {
            echo '<!--{cke_protected}%3Cscript%20language%3D%22javascript%22%3E'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20'alert(%22Th%C3%AAm%20Th%E1%BA%A5t%20b%E1%BA%A1i%22)%3B'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20'window.location%3D%22register.php%22'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20echo%20'%3C%2Fscript%3E-->';
        }
    }
}
Trong file này bạn chú ý mình sử dụng alert được echo từ php để xuất ra thông báo là thành công hay thất bại. Bây giờ bạn chạy thử và kết quả sẽ:

  • Thông báo thành công nếu thao tác thành công
  • Thông báo username hoặc email đã tồn tại nếu bạn đăng ký trùng thông tin có sẵn trong CSDL
  • Thông báo thất bại nếu thao tác lỗi

Và đồng thơi sau khi thông báo lên màn hình tôi có dùng hàm window.location để redirect sang trang cần thiết. Bây giờ bạn thử test và xem trong CSDL có không nhé cheeky

4. Lời kết

Thật đơn giản phải không nào, đến bài này thì bắt đầu cảm thấy thú vị rồi đấy yes. Bạn thử code theo sẽ thấy sự lợi hại và sự đam mê của nghề coder nhé. Ở ví dụ này thật sự rất basic dành cho newbie nên nếu bạn đa giỏi thì bài này không phải dành cho bạn. Chúc bạn học tốt !

 

Nguồn: http://freetuts.net/xay-dung-chuc-nang-dang-ky-thanh-vien-voi-php-va-mysql-192.html
Nguyễn Văn Cường
Nguyễn Văn Cường

Với sở thích viết tuts để học hỏi và chia sẽ kiến thức nên từng tham gia viết ở nhiều diễn đàn. Có thể code cả ngày mà quên ăn, đến lúc nhớ ra thì 2,3 tô không nhằm nhò gì. 25 tuổi có MỘT vợ MỘT con nên được gọi là tuổi trẻ tài cao =]]

Bạn có thể đăng câu hỏi cho bài viết tại trang hỏi đáp

game mien phi

số lượng khách truy cập
73
Tags :
cong dong a7 tlhp
Chào mừng tới ruolua.wap.sh -ruồi lửa