SlideShare uma empresa Scribd logo
1 de 25
Lập trình và Thiết kế Web 1




Bài 9
PHP nâng cao




                               Khoa CNTT – ĐH.KHTN
                                            © 2007 Khoa Công nghệ thông tin
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Nội dung

   Kỹ thuật Upload File bằng PHP
   Kỹ thuật gửi mail bằng PHP
   Sử dụng Cookie trong PHP
   Sử dụng Session trong PHP




                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Nội dung

   Kỹ thuật Upload File bằng PHP
   Kỹ thuật gửi mail bằng PHP
   Sử dụng Cookie trong PHP
   Sử dụng Session trong PHP




                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Kỹ thuật Upload File bằng PHP

    Cơ chế Upload File
    Thiết kế Form để Upload File
    Thiết kế trang xử lý File được upload trên server
    Kiểm tra lỗi, định dạng, kích thước File upload
    Vấn đề quyền truy cập file




                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao



Cơ chế Upload File
  Yêu cầu trang upload.php
                                                                              Webserver




     file



                                                                                   Disk
                                                                                  driver


                                                                 Upload.php
                                    •    $_FILES[“file”]["name"]
                                    •    $_FILES[“file”]["type"]
                                    •    $_FILES[“file”]["size"]
                                    •    $_FILES[“file”]["tmp_name"]
                                    •    $_FILES["file”]["error"]




                                           © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Thiết kế Form để Upload File

     Thiết lập thuộc tính Form
      – Method = POST
      – Enctype = multipart/form-data



                                --- UploadForm.htm ---

<form method="POST" action=“upload.php” enctype=“multipart/form-data”>
        <input type=“FILE” name =“ProductImg”><br>
        <input type=“submit” value=“Submit">
</form>




                                          © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Thiết kế trang xử lý File được upload trên server

    move_uploaded_file(tmp_name, saved_name)


                                    --- Upload.php ---
<?php
  move_uploaded_file($_FILES["ProductImg"]["tmp_name"],
                           "upload/" . $_FILES["ProductImg"]["name"]);




  echo   "Upload: " . $_FILES["ProductImg"]["name"] . “<br>”;
  echo   "Type: " . $_FILES["ProductImg"]["type"] . “<br>”;
  echo   "Size: " . ($_FILES["ProductImg"]["size“]/1024) . “Kb<br>”;
  echo   “Temp. Stored in: " . $_FILES["ProductImg"]["tmp_name"];
 ?>




                                             © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Kiểm tra lỗi, định dạng, kích thước File upload

    Lưu ý :
    – $_FILES[“…”][“type”]
      • “image/gif”
      • “image/jpeg”                         Firefox nhận đây là file jpeg
      • “image/pjpeg”                        IE nhận đây là file jpeg


    – $_FILES[“…”][“size”]                      : Kích thước file tính theo byte


    – $_FILES[“…”][“error”] : Mã lỗi khi upload File
      • = 0 : Không có lỗi
      • > 0 : Có lỗi
                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Vấn đề về quyền truy cập File

PHP Warning:
move_uploaded_file(upload/14.jpg
) [function.move-uploaded-file]:
failed to open stream:
Permission denied in.
                                                                        Account
                                                                      IUSR_XXX


Lưu ý :
• Chỉ cấp quyền ghi cho thư mục cần thiết
• Không cấp quyền ghi cho thư mục WebRoot




                                          © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Nội dung

   Kỹ thuật Upload File bằng PHP
   Kỹ thuật gửi mail bằng PHP
   Sử dụng Cookie trong PHP
   Sử dụng Session trong PHP




                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Kỹ thuật gửi Email bằng PHP

    Sử dụng thư viện open source: PHP Mailer
     http://phpmailer.sourceforge.net/
    Chép 3 file: class.phpmailer.php, class.smtp.php,
     phpmailer.lang-en.php vào thư mục web của site




                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Kỹ thuật gửi Email bằng PHP

    Gởi email sử dụng Mail Server của GMail




                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Nội dung

   Kỹ thuật Upload File bằng PHP
   Kỹ thuật gửi mail bằng PHP
   Sử dụng Cookie trong PHP
   Sử dụng Session trong PHP




                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Cookie – Giới thiệu

      cookie

                                                                                  $_COOKIE


                                      setcookie
      Client                                                          Webserver




  Là 1 tập tin được server lưu xuống máy của client
  Mỗi lần client gửi request 1 trang web, đồng thời sẽ gửi kèm file cookie
   đã lưu lần trước lên server
  Việc xử lý thông tin (lưu, lấy) trong cookie do server thực hiện
  Thường được sử dụng để lưu thông tin cá nhân của client

                                          © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Cookie – Cú pháp sử dụng
   Lệnh ghi cookie
    setcookie(name, value, expire, path, domain);
    setrawcookie(name, value, expire, path, domain);
      •   name      : Tên cookie
      •   value     : Giá trị cookie
      •   expire : Thời điểm mà cookie hết hiệu lực
      •   path      : Đường dẫn trên server mà cookie có hiệu lực
      •   domain : Xác định tên miền mà cookie được gởi đi
      •   Bắt buộc phải xuất hiện trước thẻ <html>

   Lấy giá trị cookie
    echo $_COOKIE[“cookieName"];


   Xóa cookie
    setcookie(“cookieName", "", time() -3600);


                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Cookie – Ví dụ


                                                                       $_COOKIE[fieldName]

  cookie
                           Lưu username & password


                                    setcookie
   Client

                                                                         Webserver




                                           © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Nội dung

   Kỹ thuật Upload File bằng PHP
   Kỹ thuật gửi mail bằng PHP
   Sử dụng Cookie trong PHP
   Sử dụng Session trong PHP




                                        © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session
                                                                     $_SESSION[sessionVar]
   Cookie: PHPSESSID




                                      session_start
      Client                                                              Webserver




  Là thông tin về client được server lưu trên máy của server
  Sử dụng session lưu định danh duy nhất cho từng client
  Mục đích lưu biến dữ liệu dùng chung cho nhiều trang trong
   1 phiên làm việc của client

                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session – Cú pháp sử dụng
    Khởi động Session
     session_start();
     – Bắt buộc phải xuất hiện trước thẻ <html>


    Ghi & Đọc giá trị Session
     $_SESSION[“sessionVar”] = $value ;

     $_SESSION[“sessionVar”] = array();
     $_SESSION[“sessionVar”][] = $value;

     if (isset($_SESSION[“sessionVar"])
          echo $_SESSION[“sessionVar"];

    Hủy Biến trong Session
     unset($_SESSION[“sessionVar”]);


    Hủy cả Session
     session_destroy();

                                          © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session – Ví dụ : Đếm số lần duyệt trang web
<?php
session_start( );
if (isset($_SESSION["count"]))
  $_SESSION["count"] = $_SESSION["count"] + 1;
else
  $_SESSION["count"] = 1;


print “You've looked at this page ” . $_SESSION['count'] . “times.”;
?>




                                            © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session - Ứng dụng cho Login

    Làm thế nào để ngăn không cho người 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[“IsLogin”] = true/false                    : 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



                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session - Ứng dụng cho Login – Gồm 4 bước
   1. Tạo trang login.htm yêu cầu người dùng đăng nhập.


   2. Tạo trang validateuser.php xử lí thông tin đăng nhập từ trang
      login.htm
     – Kết nối với CSDL, kiểm tra thông tin đăng nhập có hợp lệ hay không ?
       •   Nếu không hợp lệ thì cho redirect về trang login.htm.
       •   Nếu hợp lệ thì dùng một biến trong Session để lưu trạng thái login thành công
           – Ví dụ: $_SESSION[“IsLogin”] = true.
           – Lưu ý: Phải đặt giá trị mặc định cho biến Session này là false khi khởi tạo
             một Session.


   3. 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 ($_SESSION[“IsLogin”]        = false).




                                         © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session - Ứng dụng cho Login

   4.    Trong tất cả các trang muốn bảo mật, thêm đoạn mã sau để kiểm tra
         người dùng đã đăng nhập hay chưa, nếu chưa thì redirect lại trang
         login.htm


<?php
session_start();

if (!isset($_SESSION[“IsLogin”]) || $_SESSION[“IsLogin”] == false)
        header(“Location: login.htm”);
?>




                                            © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao




Session - Ứng dụng cho Giỏ hàng (shopping cart)




                                                              Xóa biến trong Session
{‘Book1’, ‘Book2’, ‘Book3’}
Session : Array : Mathang [ ]                                                          Ghi xuống CSDL

 Session : Array : Soluong[ ]

         {13, 2, 7}




                                               © 2007 Khoa CNTT - ĐHKHTN
Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao


So sánh : Session – Cookie – Database
                           Cookie1
                            Cookie1

                                                                                Session 1

                        Client 1
 Cookie2
  Cookie2                                                                       Web Server
                                                                    Session 2                 Session 3
                                            Internet
      Client 2                             or Intranet
                                                                                                  Database Server


   Cookie3
    Cookie3            Client 3




Thông tin chia sẽ                      Vị trí    Thời gian           Số client        Số trang web
                                      lưu trữ     tồn tại                               sử dụng
Database/File                         Server         Dài               Nhiều                 Nhiều
Session                               Server       Ngắn                     1                Nhiều
Cookies                               Client         Dài                    1                Nhiều

                                                © 2007 Khoa CNTT - ĐHKHTN

Mais conteúdo relacionado

Destaque

01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)
01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)
01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)VogelDenise
 
AbdelWahhid Salah sourate 24 à 28
AbdelWahhid Salah sourate 24 à 28AbdelWahhid Salah sourate 24 à 28
AbdelWahhid Salah sourate 24 à 28Mansour1
 
Aussie science students outwit Big Pharma CEO
Aussie science students outwit Big Pharma CEOAussie science students outwit Big Pharma CEO
Aussie science students outwit Big Pharma CEOJay Sekulow
 
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17Scott Sundsvold
 
حاشية الصبان 1
حاشية الصبان 1حاشية الصبان 1
حاشية الصبان 1Mansour1
 
Incursion de las  NNTT  en el entorno educativo
Incursion de las  NNTT  en el entorno educativoIncursion de las  NNTT  en el entorno educativo
Incursion de las  NNTT  en el entorno educativoMariuxi Mieles
 
Mootes15 - gestión de Moodle por años académicos
Mootes15 -  gestión de Moodle por años académicosMootes15 -  gestión de Moodle por años académicos
Mootes15 - gestión de Moodle por años académicosJordi Pujol-Ahulló
 

Destaque (13)

ShivarajUK
ShivarajUKShivarajUK
ShivarajUK
 
01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)
01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)
01/05/13 - US Bank (ReliaCard & FilesAnyWhere Issue)
 
AbdelWahhid Salah sourate 24 à 28
AbdelWahhid Salah sourate 24 à 28AbdelWahhid Salah sourate 24 à 28
AbdelWahhid Salah sourate 24 à 28
 
Aussie science students outwit Big Pharma CEO
Aussie science students outwit Big Pharma CEOAussie science students outwit Big Pharma CEO
Aussie science students outwit Big Pharma CEO
 
Harassment
HarassmentHarassment
Harassment
 
R2L Buzz Article
R2L Buzz ArticleR2L Buzz Article
R2L Buzz Article
 
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17
AL+T_Magazine-Faces_of_the_Force-PdM-I3MP_JAN-MAR17
 
حاشية الصبان 1
حاشية الصبان 1حاشية الصبان 1
حاشية الصبان 1
 
Loja
LojaLoja
Loja
 
I n v e s t i g
I n v e s t i gI n v e s t i g
I n v e s t i g
 
Incursion de las  NNTT  en el entorno educativo
Incursion de las  NNTT  en el entorno educativoIncursion de las  NNTT  en el entorno educativo
Incursion de las  NNTT  en el entorno educativo
 
Mi universidad
Mi universidadMi universidad
Mi universidad
 
Mootes15 - gestión de Moodle por años académicos
Mootes15 -  gestión de Moodle por años académicosMootes15 -  gestión de Moodle por años académicos
Mootes15 - gestión de Moodle por años académicos
 

Semelhante a 09 web course_-_php_nang_cao

Web course php co ban
Web course   php co banWeb course   php co ban
Web course php co ban慂 志慂
 
PHP.pdf
PHP.pdfPHP.pdf
PHP.pdfTinPh6
 
Reveal the Power of Php
Reveal the Power of PhpReveal the Power of Php
Reveal the Power of PhpVõ Duy Tuấn
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfHuyVnh4
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodauHoa Dại
 
Báo cáo tuần 1
Báo cáo tuần 1Báo cáo tuần 1
Báo cáo tuần 1Tan Biến
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngTHPT Ngô Quyền
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015IT Expert Club
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]vokhuyet187
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...Le Cuong
 
Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Quân Quạt Mo
 

Semelhante a 09 web course_-_php_nang_cao (20)

Web course php co ban
Web course   php co banWeb course   php co ban
Web course php co ban
 
PHP.pdf
PHP.pdfPHP.pdf
PHP.pdf
 
Reveal the Power of Php
Reveal the Power of PhpReveal the Power of Php
Reveal the Power of Php
 
07 web course 1 php co ban
07 web course   1 php co ban07 web course   1 php co ban
07 web course 1 php co ban
 
Slide 00 gioi thieu
Slide 00   gioi thieuSlide 00   gioi thieu
Slide 00 gioi thieu
 
03 udpt php
03 udpt   php03 udpt   php
03 udpt php
 
08 web course php ket noi csdl
08 web course   php ket noi csdl08 web course   php ket noi csdl
08 web course php ket noi csdl
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdf
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Arrowjs.io
Arrowjs.ioArrowjs.io
Arrowjs.io
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodau
 
Báo cáo tuần 1
Báo cáo tuần 1Báo cáo tuần 1
Báo cáo tuần 1
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web động
 
Thutap
ThutapThutap
Thutap
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
 
Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)
 

Mais de Trường Dạy Nghề (20)

Lich khai-giang-t10
Lich khai-giang-t10Lich khai-giang-t10
Lich khai-giang-t10
 
Hinh anh khoa hoc y tuong kinh doanh
Hinh anh khoa hoc   y tuong kinh doanhHinh anh khoa hoc   y tuong kinh doanh
Hinh anh khoa hoc y tuong kinh doanh
 
Hoc vien thanh dat
Hoc vien thanh datHoc vien thanh dat
Hoc vien thanh dat
 
Gioi thieu he thong e learning
Gioi thieu he thong e learningGioi thieu he thong e learning
Gioi thieu he thong e learning
 
Do an thuc hanh(de4)
Do an thuc hanh(de4)Do an thuc hanh(de4)
Do an thuc hanh(de4)
 
Do an thuc hanh(de3)
Do an thuc hanh(de3)Do an thuc hanh(de3)
Do an thuc hanh(de3)
 
Do an thuc hanh(de2)
Do an thuc hanh(de2)Do an thuc hanh(de2)
Do an thuc hanh(de2)
 
Do an thuc hanh(de1)
Do an thuc hanh(de1)Do an thuc hanh(de1)
Do an thuc hanh(de1)
 
De1 ccb 05_05_2013_hung_vuong
De1 ccb 05_05_2013_hung_vuongDe1 ccb 05_05_2013_hung_vuong
De1 ccb 05_05_2013_hung_vuong
 
De access 1 (2013)
De access 1 (2013)De access 1 (2013)
De access 1 (2013)
 
Tong quan seo
Tong quan seoTong quan seo
Tong quan seo
 
Bai tap quan_ly_chuyen_bay
Bai tap quan_ly_chuyen_bayBai tap quan_ly_chuyen_bay
Bai tap quan_ly_chuyen_bay
 
Quiz
QuizQuiz
Quiz
 
Main categories tabs
Main categories tabsMain categories tabs
Main categories tabs
 
Level test format 08092011
Level test format  08092011Level test format  08092011
Level test format 08092011
 
Lesson plan
Lesson planLesson plan
Lesson plan
 
Books
BooksBooks
Books
 
Resources
ResourcesResources
Resources
 
Javascript and dom_html
Javascript and dom_htmlJavascript and dom_html
Javascript and dom_html
 
05 web course form
05 web course   form05 web course   form
05 web course form
 

09 web course_-_php_nang_cao

  • 1. Lập trình và Thiết kế Web 1 Bài 9 PHP nâng cao Khoa CNTT – ĐH.KHTN © 2007 Khoa Công nghệ thông tin
  • 2. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung  Kỹ thuật Upload File bằng PHP  Kỹ thuật gửi mail bằng PHP  Sử dụng Cookie trong PHP  Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  • 3. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung  Kỹ thuật Upload File bằng PHP  Kỹ thuật gửi mail bằng PHP  Sử dụng Cookie trong PHP  Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  • 4. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Kỹ thuật Upload File bằng PHP  Cơ chế Upload File  Thiết kế Form để Upload File  Thiết kế trang xử lý File được upload trên server  Kiểm tra lỗi, định dạng, kích thước File upload  Vấn đề quyền truy cập file © 2007 Khoa CNTT - ĐHKHTN
  • 5. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cơ chế Upload File Yêu cầu trang upload.php Webserver file Disk driver Upload.php • $_FILES[“file”]["name"] • $_FILES[“file”]["type"] • $_FILES[“file”]["size"] • $_FILES[“file”]["tmp_name"] • $_FILES["file”]["error"] © 2007 Khoa CNTT - ĐHKHTN
  • 6. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Thiết kế Form để Upload File  Thiết lập thuộc tính Form – Method = POST – Enctype = multipart/form-data --- UploadForm.htm --- <form method="POST" action=“upload.php” enctype=“multipart/form-data”> <input type=“FILE” name =“ProductImg”><br> <input type=“submit” value=“Submit"> </form> © 2007 Khoa CNTT - ĐHKHTN
  • 7. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Thiết kế trang xử lý File được upload trên server move_uploaded_file(tmp_name, saved_name) --- Upload.php --- <?php move_uploaded_file($_FILES["ProductImg"]["tmp_name"], "upload/" . $_FILES["ProductImg"]["name"]); echo "Upload: " . $_FILES["ProductImg"]["name"] . “<br>”; echo "Type: " . $_FILES["ProductImg"]["type"] . “<br>”; echo "Size: " . ($_FILES["ProductImg"]["size“]/1024) . “Kb<br>”; echo “Temp. Stored in: " . $_FILES["ProductImg"]["tmp_name"]; ?> © 2007 Khoa CNTT - ĐHKHTN
  • 8. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Kiểm tra lỗi, định dạng, kích thước File upload  Lưu ý : – $_FILES[“…”][“type”] • “image/gif” • “image/jpeg”  Firefox nhận đây là file jpeg • “image/pjpeg”  IE nhận đây là file jpeg – $_FILES[“…”][“size”] : Kích thước file tính theo byte – $_FILES[“…”][“error”] : Mã lỗi khi upload File • = 0 : Không có lỗi • > 0 : Có lỗi © 2007 Khoa CNTT - ĐHKHTN
  • 9. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Vấn đề về quyền truy cập File PHP Warning: move_uploaded_file(upload/14.jpg ) [function.move-uploaded-file]: failed to open stream: Permission denied in. Account IUSR_XXX Lưu ý : • Chỉ cấp quyền ghi cho thư mục cần thiết • Không cấp quyền ghi cho thư mục WebRoot © 2007 Khoa CNTT - ĐHKHTN
  • 10. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung  Kỹ thuật Upload File bằng PHP  Kỹ thuật gửi mail bằng PHP  Sử dụng Cookie trong PHP  Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  • 11. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Kỹ thuật gửi Email bằng PHP  Sử dụng thư viện open source: PHP Mailer http://phpmailer.sourceforge.net/  Chép 3 file: class.phpmailer.php, class.smtp.php, phpmailer.lang-en.php vào thư mục web của site © 2007 Khoa CNTT - ĐHKHTN
  • 12. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Kỹ thuật gửi Email bằng PHP  Gởi email sử dụng Mail Server của GMail © 2007 Khoa CNTT - ĐHKHTN
  • 13. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung  Kỹ thuật Upload File bằng PHP  Kỹ thuật gửi mail bằng PHP  Sử dụng Cookie trong PHP  Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  • 14. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Giới thiệu cookie $_COOKIE setcookie Client Webserver  Là 1 tập tin được server lưu xuống máy của client  Mỗi lần client gửi request 1 trang web, đồng thời sẽ gửi kèm file cookie đã lưu lần trước lên server  Việc xử lý thông tin (lưu, lấy) trong cookie do server thực hiện  Thường được sử dụng để lưu thông tin cá nhân của client © 2007 Khoa CNTT - ĐHKHTN
  • 15. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Cú pháp sử dụng  Lệnh ghi cookie setcookie(name, value, expire, path, domain); setrawcookie(name, value, expire, path, domain); • name : Tên cookie • value : Giá trị cookie • expire : Thời điểm mà cookie hết hiệu lực • path : Đường dẫn trên server mà cookie có hiệu lực • domain : Xác định tên miền mà cookie được gởi đi • Bắt buộc phải xuất hiện trước thẻ <html>  Lấy giá trị cookie echo $_COOKIE[“cookieName"];  Xóa cookie setcookie(“cookieName", "", time() -3600); © 2007 Khoa CNTT - ĐHKHTN
  • 16. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Ví dụ $_COOKIE[fieldName] cookie Lưu username & password setcookie Client Webserver © 2007 Khoa CNTT - ĐHKHTN
  • 17. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung  Kỹ thuật Upload File bằng PHP  Kỹ thuật gửi mail bằng PHP  Sử dụng Cookie trong PHP  Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  • 18. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session $_SESSION[sessionVar] Cookie: PHPSESSID session_start Client Webserver  Là thông tin về client được server lưu trên máy của server  Sử dụng session lưu định danh duy nhất cho từng client  Mục đích lưu biến dữ liệu dùng chung cho nhiều trang trong 1 phiên làm việc của client © 2007 Khoa CNTT - ĐHKHTN
  • 19. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session – Cú pháp sử dụng  Khởi động Session session_start(); – Bắt buộc phải xuất hiện trước thẻ <html>  Ghi & Đọc giá trị Session $_SESSION[“sessionVar”] = $value ; $_SESSION[“sessionVar”] = array(); $_SESSION[“sessionVar”][] = $value; if (isset($_SESSION[“sessionVar"]) echo $_SESSION[“sessionVar"];  Hủy Biến trong Session unset($_SESSION[“sessionVar”]);  Hủy cả Session session_destroy(); © 2007 Khoa CNTT - ĐHKHTN
  • 20. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session – Ví dụ : Đếm số lần duyệt trang web <?php session_start( ); if (isset($_SESSION["count"])) $_SESSION["count"] = $_SESSION["count"] + 1; else $_SESSION["count"] = 1; print “You've looked at this page ” . $_SESSION['count'] . “times.”; ?> © 2007 Khoa CNTT - ĐHKHTN
  • 21. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login  Làm thế nào để ngăn không cho người 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[“IsLogin”] = true/false : 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 © 2007 Khoa CNTT - ĐHKHTN
  • 22. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login – Gồm 4 bước 1. Tạo trang login.htm yêu cầu người dùng đăng nhập. 2. Tạo trang validateuser.php xử lí thông tin đăng nhập từ trang login.htm – Kết nối với CSDL, kiểm tra thông tin đăng nhập có hợp lệ hay không ? • Nếu không hợp lệ thì cho redirect về trang login.htm. • Nếu hợp lệ thì dùng một biến trong Session để lưu trạng thái login thành công – Ví dụ: $_SESSION[“IsLogin”] = true. – Lưu ý: Phải đặt giá trị mặc định cho biến Session này là false khi khởi tạo một Session. 3. 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 ($_SESSION[“IsLogin”] = false). © 2007 Khoa CNTT - ĐHKHTN
  • 23. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login 4. Trong tất cả các trang muốn bảo mật, thêm đoạn mã sau để kiểm tra người dùng đã đăng nhập hay chưa, nếu chưa thì redirect lại trang login.htm <?php session_start(); if (!isset($_SESSION[“IsLogin”]) || $_SESSION[“IsLogin”] == false) header(“Location: login.htm”); ?> © 2007 Khoa CNTT - ĐHKHTN
  • 24. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Giỏ hàng (shopping cart) Xóa biến trong Session {‘Book1’, ‘Book2’, ‘Book3’} Session : Array : Mathang [ ] Ghi xuống CSDL Session : Array : Soluong[ ] {13, 2, 7} © 2007 Khoa CNTT - ĐHKHTN
  • 25. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao So sánh : Session – Cookie – Database Cookie1 Cookie1 Session 1 Client 1 Cookie2 Cookie2 Web Server Session 2 Session 3 Internet Client 2 or Intranet Database Server Cookie3 Cookie3 Client 3 Thông tin chia sẽ Vị trí Thời gian Số client Số trang web lưu trữ tồn tại sử dụng Database/File Server Dài Nhiều Nhiều Session Server Ngắn 1 Nhiều Cookies Client Dài 1 Nhiều © 2007 Khoa CNTT - ĐHKHTN