Cookie
Dùng để lưu thông tin của người dùng. Cookie được lưu ở máy client, browser quản lý
Mỗi biến cookie có 1 thời gian quá hạn. Vượt qua thời điểm đó, browser sẽ xóa biến cookie
Mỗi lần thực hiện request 1 trang, browser sẽ gửi lại các biến cookie chưa hết hạn
Được đặt trước thẻ
2
COOKIE
Tạo cookie Cú pháp
setcookie(“tên”, giá-trị [, thời điểm quá hạn])
Sử dụng cookie
$_COOKIE là dãy biến toàn cục sẵn có trong
php
Cú pháp sử dụng biến cookie $_COOKIE[“TenBien”]
3
COOKIE
COOKIE
setcookie.php
viewcookie.php
4
$name = htmlspecialchars($name);
$value = htmlspecialchars($value);
echo "$name : $value
\n";
5
COOKIE $value){ } } ?>
Form đăng nhập
COOKIE – ví dụ
6
setcookie("ten",$_POST["txtten"],time()+3600)
setcookie("matkhau",$_POST["txtmatkhau"],time
setcookie("ten",$_POST["txtten"],-1); setcookie("matkhau",$_POST["txtmatkhau"],-1);
COOKIE – ví dụ
xuly.php
7
Session
Session là đối tượng trên server, chứa
SESSION
thông tin của từng user
Mỗi user có vùng session riêng biệt $_SESSION là 1 dãy toàn cục có sẵn
trong php.
9
Tạo session
$_SESSION["sessionName"] = value; $_SESSION["sessionName"][ ]=
SESSION
array(…); Đọc giá trị session
if (isset($_SESSION[sessionName"]) echo $_SESSION["sessionName"];
Xóa bỏ session
unset($_SESSION["sessionName"]); session_destroy();
10
VD
SESSION
11
Làm thế nào để ngăn không cho người
Ứng dụng Session
dùng truy cập vào các trang web nếu chưa đăng nhập?
Ý tưởng: dùng các biến Session để lưu trạng thái đăng nhập của người dùng $_SESSION[“Login”] = 0/1: lưu trạng thái
đăng nhập
$_SESSION[ “Username”]: lưu tên đăng nhập $_SESSION[ “Authentication”]: lưu loại quyền
đăng nhập
…
12
Tạo trang login.htm yêu cầu người dùng đăng nhập Tạo trang validateuser.php xử lí thông tin đăng nhập từ
trang login Kết nối với CSDL, kiểm tra xem thông tin đăng nhập có
đúng hay không
Nếu không đúng thì cho chuyển hướng đến trang
login.htm
Nếu đúng thì dùng một biến Session để lưu trạng thái
login thành công lại.
• Ví dụ $_SESSION["IsLogin“] = 1;
Tạo trang logout.php là trang xử lý khi người dùng logout
Reset trạng thái login là chưa đăng nhập
• Ví dụ unset($_SESSION[“IsLogin”]);
13
Ứng dụng Session
Tập tin, thư mục
Hàm thao tác trên file
res fopen(string $filename, string
$mode)
bool fclose(res $handle) int fpassthru (res $handle)
gửi toàn bộ nội dung file đang mở cho browser (binary)
int readfile (string $filename)
gửi toàn bộ nội dung file đang mở cho browser (text) string fread(res $handle, int $length)
đọc một khối dữ liệu dài tối đa length (binary)
int fwrite(res $handle, string $str [,
int $length]) ghi nội dung của chuỗi ra file
15
Quản lý file & thư mục
Hàm thao tác trên thư mục
bool chdir ( string $directory ):
Chuyển thư mục hiện hành
string getcwd (): Trả về thư mục hiện hành resource opendir (string $path): Mở
một thư mục trước khi đọc nội dung
void closedir (res $dir_handle): Đóng
thư mục đã mở trước đó
bool mkdir ( string $pathname): Tạo thư
mục
bool rmdir ( string $dirname): Xóa thư
mục
16
Quản lý file & thư mục
17
VD hàm xóa thư mục
A simple form for uploading a file
18
File Upload
userfile: tên của input trong form upload $_FILES['userfile']['name'] Tên file đã được upload. $_FILES['userfile']['type']
Kiểu của file được upload nếu trình duyệt có
thông tin này. Ví dụ "image/gif“
$_FILES['userfile']['size']
Kích thước của file đã upload tính bằng byte.
$_FILES['userfile']['tmp_name']
Vị trí file được lưu trữ tạm trên server.
$_FILES['userfile']['error']
Mã lỗi của việc upload (0 == no error)
19
File Upload
20
File Upload
Upload theo định dạng file cho trước
21
File Upload
PHP hỗ trợ 2 cách sendmail
PHP mail() –Non Authentication PHP PEAR package –SMTP Authentication
Sử dụng mail()
Cú pháp
mail(to,subject,message,headers,parameters)
Send mail
Key
Description
To
Địa chỉ người nhận
Subject
Chủ đề, không xuống dòng
Message
Nội dung thư
Header
Thông tin thêm (vd: FROM, BCC, CC,…)
23
parameters
Tham số cấu hình cho ứng dụng gửi mail
replymail@yahoo.com";
// gửi email $mail_sent = mail( $to, $subject, $message, $headers ); // kiểm tra gửi thành công và thông báo echo $mail_sent ? "Mail sent" : "Mail failed"; ?>
24
Send mail