bai4form xuanhiens weblog

50 10 0
bai4form xuanhiens weblog

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

 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 .");

Ngày đăng: 20/04/2021, 01:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan