107/04/13, 10:11 am

khachduongxa
Mem Cấp 1

khachduongxa
Mem Cấp 1

[PHP& MySQL]Tạo ứng dụng đăng nhập đơn giản bằng PHP và MySQL Empty [PHP& MySQL]Tạo ứng dụng đăng nhập đơn giản bằng PHP và MySQL


Để thực hiện ta tiến hành tạo một bảng CSDL mẫu như sau:

Code:

create database project;
use project;
create table user( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password CHAR(50) NOT NULL, level CHAR(1) NOT NULL, PRIMARY KEY(id));
mysql>insert into user(username,password,level) values ("admin","12345","2") ("abc","12345","1");

Bước tiếp theo ta tạo file login.php
Tạo một form nhập liệu:
Code:

<form action='login.php' method='post'>
Username: <input type='text' name='username' size='25' /><br />
Password: <input type='password' name='password' size='25' /><br />
<input type='submit' name='ok' value='Dang Nhap' />
</form>


Kiểm tra dữ liệu từ Form:

Code:

<?php

if(isset($_POST['ok']))

{

$u=$p="";

 if($_POST['username'] == NULL)

 {

  echo "Please enter your username<br />";

 }

 else

 {

  $u=$_POST['username'];

 }

 if($_POST['password'] == NULL)

 {

  echo "Please enter your password<br />";

 }

 else

 {

 $p=$_POST['password'];

 }

}

?>


Đ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. Vì phiên bản PHP 5.3 trở lên sẽ yêu cầu ta khai báo biến trước khi sử dụng. Vì thế mặc định ban đầu ta khởi tạo 2 biến $u và $p mang giá trị là rỗng.

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

Code:

<?php

$conn=mysql_connect("localhost","root","root") or die("can't connect this database");

mysql_select_db("project",$conn);

?>


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

Code:

<?php

if($u && $p)

{

 $conn=mysql_connect("localhost","root","root") or die("can't connect this database");

 mysql_select_db("project",$conn);

 $sql="select * from user where username='".$u."' and password='".$p."'";

 $query=mysql_query($sql);

 if(mysql_num_rows($query) == 0)

 {

  echo "Username or password is not correct, please try again";

 }

 else

 {

  $row=mysql_fetch_array($query);

  session_start();

  $_SESSION['userid'] = $row['id'];

  $_SESSION['level'] = $row['level'];

 }

}

?>

Code hoàn chỉnh như thế này:

Code:

<?php

if(isset($_POST['ok']))

{

$u=$p="";

 if($_POST['username'] == NULL)

 {

  echo "Please enter your username<br />";

 }

 else

 {

  $u=$_POST['username'];

 }

 if($_POST['password'] == NULL)

 {

  echo "Please enter your password<br />";

 }

 else

 {

  $p=$_POST['password'];

 }

 if($u && $p)

 {

  $conn=mysql_connect("localhost","root","root") or die("can't connect this database");

  mysql_select_db("project",$conn);

  $sql="select * from user where username='".$u."' and password='".$p."'";

  $query=mysql_query($sql);

  if(mysql_num_rows($query) == 0)

  {

  echo "Username or password is not correct, please try again";

  }

  else

  {

  $row=mysql_fetch_array($query);

  session_start();

  $_SESSION['userid'] = $row[id];

  $_SESSION['level'] = $row[level];

  }

 }

}

?>

<form action='login.php' method='post'>

Username: <input type='text' name='username' size='25' /><br />

Password: <input type='password' name='password' size='25' /><br />

<input type='submit' name='ok' value='Dang Nhap' />

</form>

Chúc các bạn học tốt!!

« Xem bài viết trước  |  Xem bài viết kế tiếp »

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 
  • Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất