Từng bước học lập trình php căn bản qua dự án website giới thiệu sản phẩm – Trang thêm thành viên mới

Nội dung kiến thức phần này gồm:

– Lập trình với form.
– Mãng.

Trong thư mục admin/user, tạo mới file add.php để viết mã lệnh trang thêm mới thành viên.

Nội dung file admin/user/add.php như sau:

<?php
//Khởi động session
session_start();

//Kiểm tra nếu chưa đăng nhập thì quay về trang đăng nhập
if(!isset($_SESSION[‘user’])){
header(‘location:login.php’);
}

//Require các file cần thiết
require ‘../../configs/config.php’;
require ‘../../libraries/connect.php’;
require ‘../../models/user.php’;

//Nếu có POST dữ liệu lên thì xử lý
if($_POST){
//Nhận dữ liệu từ form và gán vào một mãng
$data = array(
‘username’ => $_POST[‘username’],
‘password’ => md5($_POST[‘password’]),
‘fullname’ => $_POST[‘fullname’],
’email’ => $_POST[’email’],
‘status’ => isset($_POST[‘status’]) ? 1 : 0,
‘created’ => date(‘Y-m-d H:i:s’),
‘modified’ => date(‘Y-m-d H:i:s’)
);

//Thêm mới
if(add_user($data)){
//Tạo session để lưu cờ thông báo thành công
$_SESSION[‘success’] = true;

//Tải lại trang (Mục đích là để reset form)
header(‘location:add.php’);
}
}

//Require file giao diện (View)
require ‘../../views/admin/user/add.tpl.php’;
?>

Mở file models/user.php và thêm vào khối lệnh mới dưới đây:

function add_user($data){
//SQL
$sql = “INSERT INTO tbl_user(username, password, fullname, email, status, created, modified) VALUES(‘{$data[‘username’]}’, ‘{$data[‘password’]}’, ‘{$data[‘fullname’]}’, ‘{$data[’email’]}’, {$data[‘status’]}, ‘{$data[‘created’]}’, ‘{$data[‘modified’]}’)”;

//Query và return
return mysql_query($sql);
}

Trong thư mục views/admin/user, tạo mới file add.tpl.php để trình bày giao diện trang thêm mới thành viên.

Nội dung file views/admin/user/add.tpl.php như sau:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Quản trị – Thành viên – Thêm mới</title>
</head>
<body>

<form name=”add” method=”POST” action=””>
<?php if(isset($_SESSION[‘success’])): ?>
<p style=”color:green;”>Thành viên đã được thêm mới thành công!</p>
<?php unset($_SESSION[‘success’]); ?>
<?php endif; ?>

<p>
<label>Tài khoản:</label>
<input type=”text” name=”username” value=”” />
</p>
<p>
<label>Mật khẩu:</label>
<input type=”password” name=”password” value=”” />
</p>
<p>
<label>Họ tên:</label>
<input type=”text” name=”fullname” value=”” />
</p>
<p>
<label>Email:</label>
<input type=”text” name=”email” value=”” />
</p>
<p>
<label>Trạng thái:</label>
<input type=”checkbox” name=”status” value=”1″ />
</p>
<p>
<input type=”submit” value=”Thêm mới” />
</p>
</form>

</body>
</html>

Các bạn truy cập trang thêm mới thành viên theo địa chỉ http://localhost/admin/user/add.php để kiểm tra.

* Lập trình với form:

Form là vùng giành cho người dùng nhập dữ liệu. Form có hai phương thức để gởi dữ liệu lên server là POST và GET. Hai phương thức POST và GET đều cùng làm một nhiệm vụ là gởi dữ liệu lên server nhưng cách thức thì khác nhau.

Đối với phương thức POST dữ liệu được gởi lên server mà người dùng không nhìn thấy được dữ liệu được gởi đi là gì. Còn phương thức GET thì dữ liệu gởi đi được thể hiện trên URL (Thanh nhập địa chỉ website của trình duyệt).

Thông thường khi gởi dữ liệu lên server để cập nhật DB thì nên sử dụng phương thức POST. Phương thức GET thường được sử dụng trong một số trường hợp như: Phân trang, hiển thị theo danh mục…

Để tạo một form với phương thức POST, các bạn khai báo thuộc tính method là POST trong thẻ form HTML. Ví dụ:

<form name=”add” method=”POST” action=””>

Để nhận dữ liệu do form đưa lên theo phương thức POST thì các bạn thực hiện theo mẫu sau:

$_POST[‘Tên_trường’];

Ví dụ:

$_POST[‘username’];
$_POST[‘password’];

Để tạo một form với phương thức GET, các bạn khai báo thuộc tính method là GET trong thẻ form HTML. Ví dụ:

<form name=”add” method=”GET” action=””>

Ngoài ra, đối với phương thức GET các bạn còn có thể truyền dữ liệu trên URL bằng cách thực hiện theo mẫu sau:

urlpath?Biến_1=Giá_trị_1&Biến_2=Giá_trị_2&Biến_n=Giá_trị_n

Với mẫu trên, để khai báo các biến và giá trị tương ứng các bạn sẽ khởi đầu bằng dấu hỏi “?” và kế tiếp sau đó là các biến và giá trị tương ứng với biến. Nếu có nhiều hơn một biến thì các bạn phân cách bởi dấu và “&”.

Ví dụ:

http://localhost/admin/user/edit.php?user_id=1

Để nhận dữ liệu theo phương thức GET thì các bạn thực hiện theo mẫu sau:

$_GET[‘Tên_trường’];

Hoặc

$_GET[‘Tên_biến’];

Ví dụ:

$_GET[‘user_id’];

Các bạn có thể tìm hiểu thêm về POST ở liên kết http://php.net/manual/en/reserved.variables.post.php và GET ở liên kết http://php.net/manual/en/reserved.variables.get.php. Ngoài ra, các bạn nên tìm hiểu thêm một số biến PHP khác ở liên kết http://php.net/manual/en/reserved.variables.php.

* Mãng:

Mãng là một kiểu dữ liệu trong PHP.

Để khởi tạo một mãng các bạn thực hiện theo mẫu sau:

$Tên_mãng = array();

Hoặc

$Tên_mãng = array(Phần_tử_1, Phần_tử_2, Phần_tử_n);

Hoặc

$Tên_mãng = array(‘Khóa_1’=>’Giá_trị_1’, ‘Khóa_2’=>’Giá_trị_2’, ‘Khóa_n’=>’Giá_trị_n’);

Trong đó:

– Mẫu thứ nhất là tạo một mãng rỗng (Không có phần tử).
– Mẫu thứ hai là tạo một mãng có phần tử.
– Mẫu thứ ba là tạo một mãng có phần tử nhưng đây là một mãng tham chiếu. Tức có “khóa” tham chiếu tới “giá trị”.

Để sử dụng các phần tử của mãng các bạn thực hiện theo mẫu sau:

– Đối với mãng phần tử theo chỉ số (Mẫu hai):

$Tên_mãng[Chỉ_số];

– Đối với mãng tham chiếu (Mẫu ba):

$Tên_mãng[‘Tên_khóa’];

Lưu ý: Chỉ số trong mãng PHP được tính bắt đầu từ 0.

Các bạn có thể tìm hiểu thêm về mãng ở liên kết http://php.net/manual/en/language.types.array.php.

Tác giả: Lê Trung Hiếu

Viết một bình luận