Đang tải... (xem toàn văn)
Cookie được sử dụng để theo dõi thông tin như tên người dùng mà trang web có thể truy xuất để cá nhân hóa trang khi người dùng truy cập lần sau.. Mỗi khi trình duyệt yêu[r]
(1)XỬ LÝ FORM TRONG PHP
(2)FORM
Form sử dụng để tương tác người dùng chương trình cách sử dụng biến
$ _GET,
$ _POST
(3)Phương thức gửi thơng tin đến server
Trình duyệt web giao tiếp với server cách sử dụng trong hai phương thức HTTP (Hypertext Transfer Protocol) - GET POST
(4)Phương thức GET
Trong phương thức GET, liệu gửi dạng
tham số URL gồm các chuỗi tên cặp giá trị phân
tách dấu &.
Ví dụ:
Các phần in đậm URL tham số GET phần
in nghiêng giá trị tham số.
Nếu nhiều tham số sử dụng dấu & để nối cặp tham
số
Chỉ gửi liệu văn đơn giản phương thức GET.
http://www.example.com/action.php?
(5)Phương thức GET
Ưu điểm phương thức GET
Phương thức GET liệu hiển thị URL, nên đánh
dấu trang giá trị chuỗi truy vấn cụ thể
Nhược điểm phương thức GET
Phương thức GET không phù hợp để chuyển thông tin nhạy cảm
như tên người dùng mật
Phương thức GET định liệu cho biến môi trường máy chủ, độ
(6)Phương thức GET
PHP cung cấp biến $ _GET để truy cập vào tất thông tin
được gửi qua URL gửi qua form HTML phương thức GET
Ví dụ: <body> <?php
if(isset($_GET["name"])){
echo "<p>Hi, " . $_GET["name"] . "</p>";
}
?>
<form method="get" action="<? php echo $_SERVER["PHP_SELF"];?>">
<label for="inputName">Name:</label>
<input type="text" name="name" id="inputName">
<input type="submit" value="Submit">
(7)Phương thức POST
Trong phương thức POST, liệu gửi đến server
dạng gói riêng biệt với tập lệnh xử lý
Dữ liệu gửi qua phương thức POST không hiển thị URL.
Ví dụ:
<?php
if(isset($_POST["name"])){
echo "<p>Hi, " . $_POST["name"] . "</p>";
} ?>
<form method="post" action="<?
php echo $_SERVER["PHP_SELF"];?>">
<label for="inputName">Name:</label>
<input type="text" name="name" id="inputName">
(8)Phương thức POST
Ưu điểm phương thức POST
POST an tồn GET thơng tin người dùng khơng hiển thị
URL nhật ký máy chủ
Có thể gửi lượng liệu lớn, gồm văn bản, liệu nhị phân
(uploading a file)
Nhược điểm phương thức POST
Phương thức POST không hiển thị liệu URL, nên
đánh dấu trang có truy vấn cụ thể
PHP cung cấp biến $ _POST để truy cập thông tin
(9)Ví dụ FORM
Tạo Form
(10)Ví dụ FORM
Tạo form
<input type="text" name="name" id="inputName"> <input type="text" name="email" id="inputEmail">
<input type="text" name="subject" id="inputSubject"> <textarea name="message" id="inputComment" rows="5"
(11)Lấy liệu form
Khi người dùng click nút submit, liệu form
gửi đến tệp "process-form.php" server để xử lý.
<p>Here is the information you have submitted:</p>
<ol>
<li>Name: <?php echo $_POST["name"]?></li>
<li>Email: <?php echo $_POST["email"]?></li>
<li>Subject:<?php echo $_POST["subject"]?></li>
<li>Message:<?php echo $_POST["message"]?></li>
(12)Biến $_REQUEST
Biến $ _REQUEST chứa giá trị biến $ _GET
$_POST giá trị biến $ _COOKIE. Ví dụ:
<?php
if(isset($_REQUEST["name"])){
echo "<p>Hi, " . $_REQUEST["name"] . "</p>";
} ?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];? >">
<label for="inputName">Name:</label>
<input type="text" name="name" id="inputName">
(13)Cookies
Cookie tập tin văn nhỏ cho phép bạn lưu trữ lượng nhỏ liệu (gần 4KB) máy tính người dùng
Cookie sử dụng để theo dõi thông tin tên người dùng mà trang web truy xuất để cá nhân hóa trang người dùng truy cập lần sau
Mỗi trình duyệt yêu cầu trang đến máy chủ, tất
(14)Cài đặt Cookies
Hàm setcookie (): được sử dụng để đặt cookie Cú pháp:
Name: Tên cookie. Value: Giá trị cookie.
Expire: Ngày hết hạn Sau thời gian này, cookie truy cập Giá trị mặc định
Path: đường dẫn máy chủ mà cookie khả dụng
Domain: miền mà cookie có sẵn cho ví dụ: www.example.com.
Secure: có, cookie gửi tồn kết nối HTTPS an toàn.
(15)Cài đặt Cookies
Ví dụ:
Giải thích
<?php
// Setting a cookie
setcookie("username","John Carter",time()
+30*24*60*60); ?>
(16)Truy cập giá trị cookie
Biến $ _COOKIE: truy xuất giá trị cookie, mảng kết
hợp có chứa danh sách tất giá trị cookie trình duyệt gửi yêu cầu
Ví dụ:
<?php
// Accessing an individual cookie value
(17)Truy cập giá trị cookie
Kiểm tra cookie đặt hay chưa trước truy cập giá trị nó, sử dụng hàm Isset ()
Ví dụ:
<?php
// kiểểm tra cookies cài đặt chưa
if(isset($_COOKIE["username"])){
echo "Hi " . $_COOKIE["username"];
} else{
echo "Welcome Guest!";
(18)Xóa cookies
Xóa cookie cách gọi hàm setcookie () với ngày hết
hạn ngày khứ.
Ví dụ:
<?php
// Deleting a cookie
(19)Nhược điểm cookies
Lưu trữ liệu cookie có vấn đề bảo mật Vì cookie
được lưu trữ máy tính người dùng nên kẻ cơng dễ dàng chèn liệu gây hại vào ứng dụng phá vỡ ứng dụng người dùng
Khi trình duyệt yêu cầu URL đến máy chủ, tất liệu
(20)Sessions
Session lưu trữ liệu server, dựa phiên làm
(21)Khởi tạo Sessions
Trước lưu trữ thông tin vào biến session, cần phải khởi
tạo session cách gọi hàm session_start (), một
session tạo với ID cho người dùng. Cú pháp
<?php
// Starting session
session_start(); ?>
<?php
// Starting session
(22)Sắp xếp truy cập biến session
Có thể lưu trữ tất liệu dạng cặp key-value mảng $ _SESSION[ ]
Dữ liệu truy cập suốt thời gian tồn session
Ví dụ:
<?php
// Starting session
session_start();
// Storing session data
$_SESSION["firstname"] = "Peter";
(23)Sắp xếp truy cập biến session
Để truy cập liệu session từ trang khác miền web domain - cần tạo lại session bằng cách gọi session_start () sau chuyển khóa tương ứng vào mảng liên kết $ _SESSION.
Ví dụ:
<?php
// Starting session
session_start();
// Accessing session data
echo 'Hi, '. $_SESSION["firstname"] .' ' . $_SESSION["lastn ame"];
(24)Hủy session
Xóa liệu session, cần bỏ khóa tương ứng
mảng liên kết $ _SESSION Ví dụ:
<?php
// Starting session
session_start();
// Removing session data
if(isset($_SESSION["lastname"])){
unset($_SESSION["lastname"]);
(25)Hủy session
Hủy hoàn toàn session, gọi hàm session_destroy () Hàm khơng có đối số
Ví dụ:
<?php
// Starting session
session_start();
// Destroying session
(26)Form Validation
Kiểm tra tính hợp lệ form (Form Validation): kiểm tra liệu đầu vào người dùng gửi Có hai loại:
Kiểm tra phía máy khách: Việc xác thực thực trình
duyệt web máy khách
Kiểm tra phía máy chủ: liệu gửi đến máy chủ thực
(27)Biểu thức quy- Regular Expressions
Biểu thức quy là chuỗi văn định dạng
đặc biệt sử dụng để tìm mẫu văn
(28)Biểu thức quy- Regular Expressions
Cú pháp: bao gồm ký tự đặc biệt, ký tự có ý nghĩa đặc biệt biểu thức quy, gồm:
Các lớp ký tự: Dấu ngoặc vuông bao quanh mẫu ký tự
được gọi lớp ký tự
(29)Biểu thức quy- Regular Expressions
Lớp ký tự phủ định: xác định ký hiệu dấu mũ (^)
ngay sau dấu ngoặc mở, ví dụ: [^ abc].
Ngồi ra: xác định dải ký tự cách sử dụng
(30)Biểu thức quy- Regular Expressions
[abc] Khớp với ký tự a, b c
[^abc] Khớp với ký tự ký tự a, b, or c
[a-z] Khớp với ký tự chữ thường từ a đến z
[A-Z] Khớp với ký tự chữ hoa từ A đến Z
[a-Z] Khớp với ký tự chữ thường chữ hoa từ A đến Z
[0-9] Khớp với số từ đến
(31)Biểu thức quy- Regular Expressions
Ví dụ:
<?php
$pattern = "/ca[kf]e/";
$text = "He was eating cake in the cafe.";
if(preg_match($pattern, $text)){
echo "Match found!";
} else{
echo "Match not found.";
(32)Biểu thức quy- Regular Expressions
Các lớp ký tự xác định trước
. Khớp với ký tự đơn ngoại trừ dòng \n
\d khớp với ký tự chữ số tương tự [0-9]
\D Khớp với ký tự chữ số [^0-9]
\s Khớp với ký tự khoảng trắng (dấu cách, tab, dòng hoặc ký tự xuống dòng) tương tự [ \t\n\r] \S Matches any non-whitespace character, tương tự [^ \t\n\r]
(33)Form Validation
Hàm preg_match(): dùng để kiểm tra, so khớp
và lấy kết việc so sánh chuỗi dựa vào biểu thức quy Regular Expression,
Cú pháp:
(34)Form Validation
Các tham số:
$pattern: biểu thức quy (Regular Expression) $input: chuỗi cần kiểm tra
$matches: kết trả về, tham số truyền vào dạng tham chiếu
Kết quả:
Hàm preg_match() trả TRUE so khớp FALSE
(35)Form Validation
Ví dụ: kiểm tra chuỗi số
Kết in hình giá trị biến $maches, chuỗi 123 so khớp với pattern /^[0-9]+$/
<?php
if (preg_match(‘/^[0-9]+$/', '123', $maches)){
var_dump($maches);
(36)Form Validation
Ví dụ: kiểm tra chuỗi ký tự thường
Như chuỗi thehalfheart so khớp với pattern
/^[a-z]+$/
<?php
if (preg_match('/^[a-z]+
$/', 'thehalfheart', $maches)){
var_dump($maches);
}
(37)Form Validation
Biến toàn cục: $_SERVER[‘PHP_SELF’]: Trả tên tập tin thực thi
(38)Form Validation
Lưu ý: bảo mật Form PHP
Biến $ _SERVER ["PHP_SELF"] bị tin tặc sử dụng!
Tránh khai thác $ _SERVER ["PHP_SELF"] cách sử dụng hàm
htmlspecialchars ().
Hàm htmlspecialchars () chuyển đổi ký tự đặc biệt thành
các thực thể HTML
Ví dụ:
(39)Form Validation
Hàm filter_var (): lọc biến với lọc định Hàm
này sử dụng để xác thực làm liệu
Cú pháp:
Var: biến để lọc
Filtername: ID tên lọc sử dụng Mặc định
FILTER_DEFAULT
(40)Form Validation
Kiểm tra Email hợp lệ <?php
$email = input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid format and please re-enter valid email";
(41)Form Validation
Hàm Isset (): kiểm tra biến khởi tạo
nhớ máy tính, khởi tạo hàm trả giá trị TRUE ngược lại FALSE
Ví dụ:
<?php
if (isset($domain)){
echo 'Biếến domain đã tồồn tại';
}
else{
echo 'Biếến domain chưa tồồn tại';
(42)Form Validation
(43)Form Validation
Ví dụ: Lấy thơng tin đăng ký từ form <?php
if (isset($_POST['submit']))
{
$fullname = isset($_POST['fullname']) ? $_POST['fullname']:
'';
$address = isset($_POST['address']) ? $_POST['address'] : ' ';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$phone = isset($_POST['phone']) ? $_POST['phone'] : '';
(44)Form Validation
Hàm empty(): kiểm tra biến có giá trị rỗng chưa
được khởi tạo.
Ví dụ: trường hợp biến $var, hàm empty() trả TRUE
$var = $var = '0'
$var = NULL
$var = '';
$var = FALSE
(45)Form Validation
Sử dụng hàm empty(): để kiểm tra tồn tính hợp lệ
của liệu, hàm empty bao gồm chức hàm isset() Ví dụ:
<?php
$username = isset($_POST['username']) ? $_POST['username']
: '';
$password = isset($_POST['password']) ? $_POST['password']
: '';
if ($username == '') {
echo 'Bạn chưa nhập tến đăng nhập';
}
if ($password == '') {
echo 'Bạn chưa nhập mật khẩẩu';
(46)Xử lý lỗi PHP
Xử lý lỗi trình bắt lỗi chương trình tạo sau
thực hành động xử lý thích hợp Cấp độ lỗi:
Error Level Value Description
E_ERROR Lỗi run-time, nghiêm trọng, khôi phục Việc thực thi tập lệnh bị dừng lập tức. E_WARNING Cảnh báo run-time Không nghiêm trọng, Việc thực thi tập lệnh không bị dừng.
E_NOTICE Thông báo run-time, cho biết tập lệnh bị lỗi
(47)Xử lý lỗi PHP
Error Level Value Description
E_USER_WARNIN
G 512 Một thông báo cảnh báo không nghiêm trọng người dùng tạo E_USER_NOTICE 1024 Một thông báo thông báo người dùng tạo giống một E_NOTICE.
E_STRICT 2048
Khơng hồn tồn lỗi, kích hoạt PHP gặp mã dẫn đến cố chuyển tiếp khơng tương thích
(48)Xử lý lỗi PHP
Xử lý lỗi trình bắt lỗi chương trình tạo sau
thực hành động xử lý thích hợp
Hàm die(): sử dụng để hiển thị thông báo lỗi kết
(49)Xử lý lỗi PHP
Ví dụ:
Nếu tập tin khơng tồn tại, chương trình hiển thị thơng báo sau:
Warning: fopen(sample.txt) [function.fopen]: failed to open
stream: No such file or directory in C:\wamp\www\project\test.php on line 2
<?php
// Try to open a non-existent file
(50)Xử lý lỗi PHP
Ví dụ (tt): Chương trình viết lại sau: <?php
if(file_exists("sample.txt")){
$file = fopen("sample.txt", "r");
} else{
die("Error: The file you are trying to access doesn't exist .");