PHP. Tuy nhiên, để có thể xây dựng một website hoàn chỉnh bằng những kiến thức đó thì quả thật không đơn giản. Bởi vì các kiến thức qua sách vở và tài liệu dù sao cũng chỉ là những kiến thức tổng quát và thiếu tính khách quan thực tiến. Nên khi người học lập trình bước vào giai đoạn viết ứng dụng thì thường rất lúng túng. Đó cũng là lý do tôi viết bài này để hưỡng dẫn các bạn dần làm quen với cách tiếp cận một ứng dụng
PHP&MYSQL như thế nào.
Trước hết chúng ta phải thiết kế và xây dựng mô hình cơ sở dữ liệu ứng với từng lệnh bên dưới (xem lại bài ngôn ngữ SQL và MYSQL Căn Bản) sau đó mới tiến hành triển khai lập trình.
view source print?
1mysql -hlocalhost -uroot -proot 2mysql>createdatabaseproject; 3mysql>use project;
4
mysql>createtableuser( id INT(10) UNSIGNED NOTNULLAUTO_INCREMENT, username VARCHAR(50) NOTNULL, passwordCHAR(50) NOTNULL, levelCHAR(1) NOTNULL, PRIMARYKEY(id));
5mysql>insertintouser(username,password,level) values ("admin","12345","2") ("abc","12345","1");
Vậy là chúng ta đã có cơ sở dữ liệu như mô hình trên. Tiếp đến chúng ta thiết kế Form HTML để có màn hình đăng nhập khi người dùng truy cập.
view source print?
1<form action=login.php method=post>
2Username: <input type=text name=username size=25 /><br /> 3Password: <input type=password name=password size=25 /><br /> 4<input type=submit name=ok value="Dang Nhap"/>
5</form>
Tiếp đến chúng ta tiến hành kiểm tra dữ liệu từ form view source
C.E – UTEHY Nguồn: http://qhonline.info Trang 26 print? 01<?php 02if(isset($_POST['ok'])) 03{ 04 if($_POST['username'] == NULL) 05 {
06 echo"Please enter your username<br />"; 07 } 08 else 09 { 10 $u=$_POST['username']; 11 } 12 if($_POST['password'] == NULL) 13 {
14 echo"Please enter your password<br />"; 15 } 16 else 17 { 18 $p=$_POST['password']; 19 } 20} 21?>
Đoạn code ở trên sẽ kiểm tra xem người dùng có tiến hành nhấn nút đăng nhập hay không. Và nếu có thì chúng ta sẽ xét tiếp tình trạng người dùng có để trống các ô username và
password hay không. Nếu có chúng ta sẽ thông báo lỗi ở bên trên form, để người sử dụng tiến hành nhập liệu.
Kế đến chúng ta kiểm tra xem có tồn tại hai biến $u và $p (chỉ khi người dùng đăng nhập thành công thì mới có thể tạo ra 2 biến đó). Tiếp đến chúng ta tiến hành kết nối cơ sở dữ liệu (xem lại bài kết hợp PHP & MYSQL trong ứng dụng web).
view source print?
1<?php
2$conn=mysql_connect("localhost","root","root") ordatabase"); die("can't connect this 3mysql_select_db("project",$conn);
4?>
Và tiến hành kiểm tra xem username và password người sử dụng vừa nhập có trùng khớp với thông tin có trong cơ sở dữ liệu hay không ?. Nếu không thì chúng ta sẽ báo lỗi ngay. Ngược lại sẽ tiến hành lấy dữ liệu từ bảng và gán vào session. Để có thể quản lý phiên làm việc một cách hiệu quả trên mọi trang của khu vực admin (xem lại bài khái niệm cơ bản về cookie và session). view source print? 01<?php 02if($u&& $p) 03{
04 $conn=mysql_connect("localhost","root","root") ordie("can't connect this database");
C.E – UTEHY Nguồn: http://qhonline.info Trang 27 06 $sql="select * from user where username='".$u."' and
password='".$p."'";
07 $query=mysql_query($sql);
08 if(mysql_num_rows($query) == 0) 09 {
10 echo"Username or password is not correct, please try again"; 11 } 12 else 13 { 14 $row=mysql_fetch_array($query); 15 session_start(); 16 session_register("userid"); 17 session_register("level"); 18 $_SESSION['userid'] = $row[id]; 19 $_SESSION['level'] = $row[level]; 20 } 21} 22?>
Như vậy code hoàn chỉnh cho ứng dụng này là như sau: view source print? 01<?php 02if(isset($_POST['ok'])) 03{ 04 if($_POST['username'] == NULL) 05 {
06 echo"Please enter your username<br />"; 07 } 08 else 09 { 10 $u=$_POST['username']; 11 } 12 if($_POST['password'] == NULL) 13 {
14 echo"Please enter your password<br />"; 15 } 16 else 17 { 18 $p=$_POST['password']; 19 } 20 if($u&& $p) 21 {
22 $conn=mysql_connect("localhost","root","root") orthis database"); die("can't connect 23 mysql_select_db("project",$conn);
24 $sql="select * from user where username='".$u."' and password='".$p."'";
25 $query=mysql_query($sql);
C.E – UTEHY Nguồn: http://qhonline.info Trang 28 27 {
28 echo"Username or password is not correct, please try again"; 29 } 30 else 31 {