Đ i H c Sư Ph m Tp. H Chí Minh
LẬP TRÌNH WEB PHP
Chương 05: PROJECT
Nội dung
•
•
•
•
•
•
Thi t k giao di n, b c c
Hi n th ti ng Vi t trong trang Web.
Xây d ng hàm k t n i CSDL dùng chung.
Login.
Upload/Download
Trang s n ph m: xem, đ t mua (viewer)
thêm, c p nh t, xóa (admin)
• Phân trang
• Xu t b n website
2
Layout
• Tùy ch n. Ít nh t s có:
Banner (hình nh công ty, t ch c, cá nhân, …)
Menu/Link (Các liên k t trong trang)
Main (N i dung trang web)
Footer (B n quy n – Đ a ch )
3
Tiếng việt trong trang Web
• Th meta
trong file HTML/PHP
content="text/html; charset=utf-8" />
• DreamWeaver: Ctrl + J ch n Encoding:
UTF8.
• CSDL: mysqli_query("SET NAMES utf8;");
4
Hàm kết nối CSDL dùng chung
//File: connect.php
define(“HOST”, “localhost”);
define("USR", "root");
define("PWD", "");
define("DBNAME","baitap");
$conn = mysqli_connect(HOST,USR,PWD)
or die(“Khơng k t n i đư c!”);
mysqli_select_db(DBNAME);
5
Login Page
• Xây d ng file login.php dùng
đ đăng nh p
6
Process Login Page
require(“connect.php”);
$sql = "SELECT count(*) FROM user WHERE
username='{$_POST['user']}' AND password
='".md5($_POST['pass'])."'";
$result = mysqli_query($sql);
if(mysqli_num_rows($result)){
echo 'Đăng nh p thành công';
$_SESSION[‘user’] = $_POST['user'];
}
else{
//echo 'Đăng nh p l i';
header(‘location:login.php’);
}
7
Upload
• Xây d ng file upload.php đ upload file.
8
Xử lý upload
• Khai báo nơi lưu tr :
$target_path = "data/";
$target_path = $target_path.basename(
$_FILES['uploadedfile']['name']);
• Upload file lên server:
move_uploaded_file($_FILES['uploadedfile']['
tmp_name'], $target_path)
• Lưu 1 s thông tin vào CSDL
$sql = "INSERT INTO file (chude, tenfile,
loaifile) VALUES ('{$_POST['chude']}',
'{$target_path}','$loaifile')";
9
Download file
• Cách 1: Tr c ti p qua th <a>
• Cách 2: Xây d ng trang download
function DownloadFile($file) { // $file = include path
if(file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;
filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
}
• G i: DownloadFile($_GET[filename]);
10
WEB SẢN PHẨM
PRESENTED BY
HIEN, LUONG TRAN HY
u cầu
• Ngư i dùng (viewer):
Xem thơng tin t ng ch ng lo i s n ph m.
Xem chi ti t 01 s n ph m
Mua hàng
• Qu n tr (admin)
T o 01 (lo i) s n ph m m i.
Ch nh s a/Xóa thơng tin 01 s n ph m
G i hàng
12
Phân trang
• S d ng bi n truy n d ng GET, m c đ nh
là trang đ u tiên n u bi n chưa đ t tr .
if (isset($_GET[page])) $page = $_GET[page];
else $page = 1;
• S lư ng s n ph m trình bày trên 01
trang:
$pp = ??
• Truy v n CSDL chú ý: LIMIT $start, $pp
Trong đó $start = ($page – 1) * $pp;
13
XUẤT BẢN SITE
PRESENTED BY
HIEN, LUONG TRAN HY
Xuất bản website
• />• Đi n các thơng tin theo
m u
Tên đăng nh p (username)
M t kh u (password)
Email
Lo i site và ngôn ng
Đi n mã xác nh n
15
Xuất bản website (tt)
• Lưu gi các
thơng tin v
website
16
Upload thơng tin lên host
• B ng FTP (dùng Total Commander)
• Tr c ti p: Vào Cpanel → File Manager
File lưu tr
trong thư m c này
17
Upload thơng tin lên host
• Ch n Upload
B m đây đ Upload
18
Upload thơng tin lên host dùng Total Commander
• B m nút FTP
19
Upload thơng tin lên host dùng Total Commander
• Session: Đi n vào
1 cái tên tùy ý
• Hostname,
username,
password đi n
thơng tin c a b n
20
Upload thông tin lên host dùng Total Commander
Ch n và connect
21
Upload thơng tin lên host dùng Total Commander
• Th c hi n ch n file và copy (F5)
22
Tạo và sử dụng CSDL
• Ch n MySQL Database trong c a s
CPanel
Import Database
C a s PHPMyAdmin
23
Bộ đếm bằng đọc file
$CountFile = "Counter.log";
$CF = fopen ($CountFile, "r");
$Hits = fread ($CF, filesize ($CountFile) );
fclose ($CF);
$Hits++;
//Hi n th ra màn hình
$CF = fopen ($CountFile, "w");
fwrite ($CF, $Hits);
fclose ($CF);
echo ($Hits);
?>
24
Câu hỏi và thảo luận
25