SlideShare a Scribd company logo
MỤC LỤC
1.CÁC BƯỚC CƠ BẢN ĐỂ PHÁT TRIỂN ỨNG DỤNG NỀN WEB PHP TRÊN ORACLE
DATABASE ........................................................................................................................... 2
   1.1.Các bước cài đặt để sử dụng PHP với ORACLE DATABASE ..................................... 2
      1.1.1.Tìm hiểu về OCI8 Extension ................................................................................. 2
      1.1.2.Cài đặt PHP với OCI8 trên Windows ..................................................................... 3
      1.1.3.Cài đặt thông qua gói phần mềm WampServer trên Windows............................... 4
   1.2.Cách kết nối PHP và thực hiện truy vấn SQL từ PHP trên Oracle database ................ 6
      1.2.1.Cách kết nối PHP với Oracle database sử dụng OCI8 .......................................... 6
      1.2.2.Cách thực hiện truy vấn SQL từ PHP trên Oracle database: ................................. 8
2.CÁC YÊU CẦU VỀ BẢO MẬT, AN TOÀN DỮ LIỆU ......................................................... 10
   2.1.Bảo mật và an toàn ngay trên Oracle database: ........................................................ 10
   2.2.Kiểm soát chặt chẽ dữ liệu nhập vào ......................................................................... 10
3.CHƯƠNG TRÌNH ỨNG DỤNG THỰC TẾ ....................................................................... 11
TÀI LIỆU THAM KHẢO ....................................................................................................... 15




                                                                                                                                    1
1.CÁC BƯỚC CƠ BẢN ĐỂ PHÁT TRIỂN ỨNG DỤNG NỀN
WEB PHP TRÊN ORACLE DATABASE

1.1.Các bước cài đặt để sử dụng PHP với ORACLE DATABASE
1.1.1.Tìm hiểu về OCI8 Extension


  OCI8 Extension là 1 lớp thư viện mở rộng được chính Oracle phát triển, giúp PHP kết
nôi,giao tiếp và thực thi các truy vấn SQL dễ dàng với ORACLE DATABASE, nó được thêm
vào trong nhiều gói PHP khác nhau, bao gồm 3 gói chính:

      Dành cho gói PHP được phát hành chính thức tại website:PHP.NET
      Dành cho nhân của ZEND FRAMEWORK
      Dành cho cộng đồng phát triển thư viện mã nguồn mở PHP (PECL)




                     Sơ đồ liên kết giữa PHP với thư viện Oracle client

Tất cả các tính năng trong OCI8 có thể không được thể hiện hết trừ khi các thư viện client
và máy chủ cơ sở dữ liệu Oracle được nâng cấp lên phiên bản mới nhất

Bảng sau sẽ chỉ rõ sự tương thích của các thư viện Oracle client với các phiên bản PHP với
OCI8 Extension




                                                                                             2
Gói phần mềm          Phiên bản PHP           Phiên bản OCI8         Các thư viện Orale
                                                                     client tương thích
                                                                     với OCI8
Mã nguồn PHP phát     5.2.7                   OCI8 1.2.5             8i, 9i, 10g, 11g
hành chính thức
Gói PHP phát hành     5.2.7                   OCI8 1.2.5             10g, 11g
chính thức được
đóng gói cho
Windows
Mã nguồn PECL         4.3.9                   OCI8 1.3.4             9iR2, 10g, 11g
OCI8
Zend Core 2.5         5.2.5                   OCI8 1.2.3             10g


1.1.2.Cài đặt PHP với OCI8 trên Windows


 Để cài đặt OCI8 trên Windows, thì ta cần phải cài đặt Oracle phiên bản 10g hay 11g

  i.   Cài đặt OCI8 sử dụng 1 cơ sở dữ liệu địa phương trên Windows(hay Oracle databse
       được cài đặt trên cùng 1 máy chứa Web Server và PHP)
       1. Tải gói cài đặt PHP 5.2.7 từ Website: http://www.php.net/downloads.php
       2. Nhấn chuột 2 lần vào file php-5.2.7-win32-installer.msi vừa được tải về
       3. Nhấn Next ở trên hộp thoại Welcome
       4. Tích chuột vào ô checkbox để đồng ý và nhất Next
       5. Lựa chọn thư mục để cài đặt các file PHP và nhấn Next
       6. ở hộp thoại cài đặt Web Server, lựa chọn Apache 2.0.x Module và nhấn Next
       7. trong hộp thoại cấu hình thư mục Apache, lựa chọn vị trí của thư mục conf và
           nhấn Next.với Apache 2.x, cấu hình thư mục tiêu chuẩn thường là C:Program
           FilesApacheGroupApache2conf
       8. trong hộp thoại lựa chọn thành phần để cài đặt, xoay chuột xuống phía dưới tới
           phần Extensions rồi thêm Oracle 8 extension vào để cài đặt và nhấn Next
       9. nhấn Install
       10. 1 hộp thoại sẽ được hiện ra hỏi xem có muốn cấu hình Apache hay không?chọn
           Yes
       11. 1 thông báo xác nhận được hiện ra để xác nhận file httpd.conf đã được cập nhật,
           nhấn OK
       12. 1 thông báo xác nhận được hiện ra để xác nhận file mime.types đã được cập
           nhật, nhấn OK
       13. 1 thông báo xác nhận cuối cùng hiện ra xác nhận việc cài đặt PHP đã hoàn tất,
           nhấn Finish
       14. Khởi động lại Apache bằng: Start > Programs > Apache HTTP Server 2.0.59 >
           Control Apache Server > Restart.

 ii.   Cài đặt OCI8 với Instant Client trên Windows(hay Oracle database được cài đặt trên
       một máy khác không chứa Web Server và PHP, khi này Oracle database là 1 cơ sở
       dữ liệu được điều khiển từ xa)
       1. Tải gói Instant Client Basic cho Windows từ trang:
          http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html


                                                                                          3
file nén Zip cho Windows 32 bit thường có dạng instantclient-basic-win32-
           11.1.0.6.0.zip có dung lượng khoảng 42 MB

       2. Tạo 1 thư mục mới (ví dụ như: C:instantclient_11_1).sau đó giải nén file vừa tải
          về vào thư mục vừa tạo này
       3. Chỉnh sửa trong Windows environment và thêm vào vị trí của các file Oracle
          Instant Client, C:instantclient_11_1.ví dụ trên Windows XP: Start > Settings >
          Control Panel > System > Advanced > Environment Variables và chỉnh sửa
          đường dẫn trong System Variables list.nếu ta đang sử dụng 1 file tnsnames.ora
          để xác định tên kết nối tới Oracle Net, ta sao chép file tnsnames.ora vào thư mục
          C:instantclient_11_1 , và thiết lập TNS_ADMIN trong user environment variable
          thành C:instantclient_11_1
       4. Cài đặt PHP theo các bước như trên
       5. Khởi động lại Apache HTTP Server.

1.1.3.Cài đặt thông qua gói phần mềm WampServer trên Windows


   WampServer là 1 gói phần mềm đã bao gồm các cài đặt sẵn : Apache, PHP, MySql đã
được cấu hình sẵn để liên kết với nhau nhằm giảm thiểu và hỗ trợ tối đa cho lập trình viên
trong việc thiết lập cài đặt bằng tay trong từng gói riêng lẻ để chúng có sự tương thích và
đồng bộ với nhau.việc cài đặt WampServer là khá dễ dàng chỉ cần thông qua vài cái nhấn
chuột đơn giản.các bước cài đặt:

       1. Tải miễn phí gói phần mềm ở trang http://www.wampserver.com/ .tải phiên bản
           mới nhất hiện thời là phiên bản 2.2a (bao gồm các gói cài đặt sẵn: Apache 2.2,
           PHP 5.3.8, MySql 5.5).file tải về có tên là: WampServer2.2a-x32.exe
       2. Nhấn chuột 2 lần vào file đã tải về
       3. Hộp thoại Welcome hiên ra, nhấn Next
       4. Tích chuột vào ô checkbox để đồng ý, rồi ấn Next
       5. Lựa chọn thư mục cài đặt, rồi ấn Next
       6. Tiếp tục nhấn Next
       7. Nhấn Install
       8. Đợi đến khi các file đã cài đặt xong, ta chọn Finish
       9. Khởi động WampServer bằng việc nhấn chuột vào biểu tượng WampServer
           ngoài màn hình Destop
       10. ấn chuột trái vào biểu tượng WampServer trên thanh taskbar chọn PHP > PHP
           Extensions > php_oci8_11g (hoặc php_oci8)




                                                                                              4
Lựa chọn tới PHP > PHP extensions




        Lựa chọn php_oci8_11g(hoặc php_oci8) trong PHP extensions

11. đợi WampServer tự động khởi động lại




                                                                    5
1.2.Cách kết nối PHP và thực hiện truy vấn SQL từ PHP trên Oracle
database


1.2.1.Cách kết nối PHP với Oracle database sử dụng OCI8


 Ta sử dụng chuỗi thông tin kết nối có chứa trong file tnsnames.ora của Oracle.file này
được tìm thấy trong thư mục dbhome_1NETWORKADMINtnsnames.ora

Ví dụ thông tin trong file tnsnames.ora là :

  # tnsnames.ora Network Configuration File:
  D:appngoquangtrungproduct11.2.0dbhome_1networkadmintnsnames.ora

  # Generated by Oracle configuration tools.

  LISTENER_ORCL =

   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

  ORACLR_CONNECTION_DATA =

   (DESCRIPTION =

       (ADDRESS_LIST =

           (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

       )

       (CONNECT_DATA =

           (SID = CLRExtProc)

           (PRESENTATION = RO)

       )

   )

  ORCL =

   (DESCRIPTION =

       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

       (CONNECT_DATA =

           (SERVER = DEDICATED)

           (SERVICE_NAME = orcl.168.1.10)

       )

   )                                                                                      6
Ta chú ý tới chuỗi kí tự cuối cùng ở trong file:


   ORCL =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

      (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = orcl.168.1.10)

      )


Trong PHP, ta tạo 1 file config.php nhằm tạo kết nối từ PHP tới Oracle như sau:

   <?php

             $user='scott';

             $pass='tiger';

             $link=oci_connect($user,$pass,'ORCL');

             if(!$link){

                      $error=oci_error();

                      echo $error['message'];

                      exit();

             }

   ?>




ở trên ta sử dụng tên của kết nối: ORCL để truy cập.hơn thế ta cũng thế sử dụng chuỗi mô
tả kết nối để truy cập:




                                                                                           7
<?php

                $user='scott';

                $pass='tiger';

                $db='(DESCRIPTION =

         (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

         (CONNECT_DATA =

             (SERVER = DEDICATED)

             (SERVICE_NAME = orcl.168.1.10)

         )

       )';

                $link=oci_connect($user,$pass,$db);

                if(!$link){

                         $error=oci_error();

                         echo $error['message'];

                         exit();

                }

      ?>




oci_connect() : hàm dùng để kết nối tới 1 Oracle database, nó trả về 1 kết nối đã được xác
minh cần cho các thao tác xử lý OCI8 khác

oci_error() : trả về lỗi dưới dạng 1 mảng kết hợp khi xảy ra lỗi

để đóng 1 kết nối tới Oracle database ta sử dụng hàm oci_close()

1.2.2.Cách thực hiện truy vấn SQL từ PHP trên Oracle database:




                                                                                         8
<?php

      $sql='select * from "dssv"';

      $result=oci_parse($link,$sql);

      oci_execute($result);

              while($row=oci_fetch_row($result)){

              $msv=$row[0];

              $hovaten=$row[1];

              $namhoc=$row[2];

              $kyhoc=$row[3];

              $khoahoc=$row[4];

              $phonghoc=$row[9];

              $giangvien=$row[11];

              $khoavien=$row[10];

              $thoigianhoc=$row[5].':'.$row[6].'-'.$row[7].':'.$row[8];

      }

      ?>




oci_parse() : là hàm phân tích ngữ pháp cấu trúc lệnh để chuẩn bị xử lý trên Oracle
database

oci_execute() : là hàm thực thi cấu trúc đã được oci_parse() phân tích

oci_fetch_row() : trả về kết quả phản hồi của câu truy vấn dưới dạng mảng array có chỉ
mục là dạng số.mỗi phần tử trong mảng tương ứng với giá trị của 1 cột trong mỗi dòng kết
quả trả về của câu truy vấn




                                                                                           9
2.CÁC YÊU CẦU VỀ BẢO MẬT, AN TOÀN DỮ LIỆU

2.1.Bảo mật và an toàn ngay trên Oracle database:

      Kiểm soát truy cập: Mỗi người dùng không thể truy cập vào mọi dữ liệu.

      Xác thực người dùng: Để kiểm soát truy cập trên dữ liệu nhạy cảm đầu tiên hệ quản
       trị phải biết được ai đang cố gắng truy cập vào CSDL.

      Phát hiện hành động đáng nghi: Chính người dùng thi thoảng cũng có các hành
       động đáng nghi, ví dụ: Bỗng nhiên người quản trị hỏi một lượng lớn thông tin về
       CSDL... Oracle cung cấp tập các công cụ để kiểm soát các hành động của người
       dùng.

      Thực thi nguyên tắc tối thiểu đặc quyền:

       Việc tối thiểu đặc quyền là một người dùng chỉ có một số quyền đủ để hoàn thành
       công việc của họ, việc này tránh cho họ vô tình hay cố ý sử dụng các quyền để truy
       nhập hay sửa đổi CSDL.và việc thực thi này bao gồm:

             Bảo vệ các dữ liệu từ điển
             Thu lại các quyền không cần thiết của PUBLIC
             Giới hạn các thư mục được truy cập của người dùng
             Giới hạn người dùng với các quyền quản trị
             Hạn chế xác thực CSDL từ xa

2.2.Kiểm soát chặt chẽ dữ liệu nhập vào

  Để phòng tránh các nguy cơ bị khai thác lỗi SQL injection, để bảo vệ các câu lệnh SQL ta
cần kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request ($_GET,
$_POST, $_SERVER, AJAX )

Cách vá lỗi:
1. Mởi php.ini và thiết lập magic_quotes_gpc thành On
Nó sẽ chèn “” trước (’) có trong:
-COOKIE
-POST
-GET

2. Sử dụng hàm addslashes() để “gói” chuỗi bằng dấu “/”

3. Sử dụng hàm htmlspecialchars(), mysql_escape_string() … để mã hoá kí tự đặc biệt
trong câu truy vấn

4. Sử dụng hàm oci_bind_by_name() ngăn cản sự tấn công bằng SQL injection, nó ràng
buộc liên kết biến trong PHP với biến trong Oracle, vì vậy biến ràng buộc này không được
hiểu là 1 phần của cấu trúc SQL, nên nó không cần phải trích dẫn lại hay bị thoát truy vấn


                                                                                         10
5. Ép kiểu:
- Ví dụ: Ta biết id của một đối tượng (user, category, box, product …) luôn là kiểu số
nguyên, vì vậy ta dùng:
$id = (int)$_POST['id'];
hoặc
$id = (int)$_GET['id'];


Giải thích về vá lỗi :
3 cách đầu: Nếu nhập vào abc’ đi , thì nó sẽ hiểu là một chuỗi chứ không phải là abc rồi dấu
‘ riêng
Cách thứ 5: là nếu nhập chuỗi thì nó ép thành số tương ứng.


3.CHƯƠNG TRÌNH ỨNG DỤNG THỰC TẾ

  Để chạy được chường trình ta phải tiến hành các bước cài đặt như đã nói ở trên và thực
hiện kích hoạt scott/tiger schemas rồi import cơ sở dữ liệu có sẵn vào trong Oracle
database

Mô tả chương trình ứng dụng:

Ứng dụng gồm 2 Forms:

- Form01: Chứa 1 Data Grid 1 bộ lọc. Data Grid hiển thị đầy đủ các trường thông tin: Mã
sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học, Thời gian học, Phòng học, Giảng
viên, Khoa viện. Bộ lọc hỗ trợ lọc theo các trường: Mã sinh viên, Họ tên sinh viên, Năm học,
Kỳ học, Khóa học. Thực hiện các chức năng xem, thêm, xóa, sửa đối với từng sinh viên,
thao tác trên Form 02 dưới đây.

- Form02: Chứa các thông tin về Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa
học, Thời gian học, Phòng học, Giảng viên, Khoa viện của từng sinh viên. Cài đặt mối liên
kết dữ liệu trên giao diện: chẳng hạn chọn khoa viện thì lọc được danh sách sinh viên thuộc
khoa viện, chọn khóa học thì lọc được danh sách giảng viên có thể dạy khóa học đó. Thực
hiện cập nhật dữ liệu trên giao diện và lưu vào cơ sở dữ liệu.



Giao diện chương trình:

      FORM01




                                                                                         11
Giao diện tổng quan FORM01




         Khi tiến hành lọc dữ liệu ở trường họ và tên bắt đầu bằng “ZH”

   FORM02




                                                                          12
Giao diện tổng quan FORM02




     Kết quả lọc dữ liệu theo năm học : 2002; kỳ học: FALL; khóa học: DRAMA; phòng
                                     học: 808

   Thêm mới dữ liệu




                                                                                 13
   Chỉnh sửa dữ liệu




                        14
TÀI LIỆU THAM KHẢO

 “The Underground PHP and Oracle Manual”, CHRISTOPHER JONES AND ALISON
  HOLLOWAY
 “PHP Manual”, THE PHP DOCUMENTATION GROUP
 “PHP Oracle Web Development Data Processing, Security, Caching, XML, Web
  Services, and AJAX”, YULI VASILIEV




                                                                        15

More Related Content

What's hot

Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql. .
 
Giáo trình phân tích thiết kế hệ thống ICTU
Giáo trình phân tích thiết kế hệ thống ICTUGiáo trình phân tích thiết kế hệ thống ICTU
Giáo trình phân tích thiết kế hệ thống ICTU
Ngô Doãn Tình
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Hiệu Nguyễn
 
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSSĐề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Hiệu Nguyễn
 
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAYLuận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Tú Cao
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
Nguyễn Danh Thanh
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1laducqb
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpress
vngnhuhaiyen236
 
Báo cáo thực tập Athena - CNTT
Báo cáo thực tập Athena - CNTTBáo cáo thực tập Athena - CNTT
Báo cáo thực tập Athena - CNTT
Vu Tran
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game
Tạ Thành Đạt
 
Thiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learningThiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learning
Trinh LeMinh
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
thuhuynhphonegap
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tánduysu
 
Đồ án trang web bán văn phòng phẩm
Đồ án trang web bán văn phòng phẩmĐồ án trang web bán văn phòng phẩm
Đồ án trang web bán văn phòng phẩm
NguynMinh294
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...hoainhan1501
 

What's hot (20)

Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Giáo trình phân tích thiết kế hệ thống ICTU
Giáo trình phân tích thiết kế hệ thống ICTUGiáo trình phân tích thiết kế hệ thống ICTU
Giáo trình phân tích thiết kế hệ thống ICTU
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
 
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSSĐề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
Đề tài: Xây dựng ứng dụng Android đọc báo mạng qua dịch vụ RSS
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
 
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAYLuận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpress
 
Báo cáo thực tập Athena - CNTT
Báo cáo thực tập Athena - CNTTBáo cáo thực tập Athena - CNTT
Báo cáo thực tập Athena - CNTT
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game
 
Thiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learningThiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learning
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tán
 
Đồ án trang web bán văn phòng phẩm
Đồ án trang web bán văn phòng phẩmĐồ án trang web bán văn phòng phẩm
Đồ án trang web bán văn phòng phẩm
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
 

Viewers also liked

Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Ngo Trung
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
Ngo Trung
 
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánThiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánNgo Trung
 
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kếLập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Ngo Trung
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Stefan Richter
 
IoC and Mapper in C#
IoC and Mapper in C#IoC and Mapper in C#
IoC and Mapper in C#
Huy Hoàng Phạm
 

Viewers also liked (7)

Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
 
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánThiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
 
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kếLập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
Using Clojure, NoSQL Databases and Functional-Style JavaScript to Write Gext-...
 
IoC and Mapper in C#
IoC and Mapper in C#IoC and Mapper in C#
IoC and Mapper in C#
 

Similar to php với oracle database

Học lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việtHọc lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việt
kentvu
 
Báo cáo tuần đồ án
Báo cáo tuần đồ ánBáo cáo tuần đồ án
Báo cáo tuần đồ án
Lưu Việt Tùng
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
laonap166
 
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaCài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaHoàng Phúc Phạm
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
hoangdinhhanh88
 
Báo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-AthenaBáo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-Athena
quocluong
 
Openvpn nhóm-dbrr-update2
Openvpn nhóm-dbrr-update2Openvpn nhóm-dbrr-update2
Openvpn nhóm-dbrr-update2
TngH36
 
Tu hoc-thiet-ke-web-bang-php
Tu hoc-thiet-ke-web-bang-phpTu hoc-thiet-ke-web-bang-php
Tu hoc-thiet-ke-web-bang-php
Linh Vân
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳNguyễn Vân
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳThu Hien
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳTai Ly
 
19 web server
19  web server19  web server
19 web serverCơn Gió
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.net
thichxoidau
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
tuanduongcntt
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-phphieusy
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
NIIT - ICT Hà Nội
 
Linux+03
Linux+03Linux+03
Linux+03
Duong Hieu
 

Similar to php với oracle database (20)

Học lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việtHọc lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việt
 
Báo cáo tuần đồ án
Báo cáo tuần đồ ánBáo cáo tuần đồ án
Báo cáo tuần đồ án
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaCài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 
Báo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-AthenaBáo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-Athena
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
Openvpn nhóm-dbrr-update2
Openvpn nhóm-dbrr-update2Openvpn nhóm-dbrr-update2
Openvpn nhóm-dbrr-update2
 
Asp control
Asp controlAsp control
Asp control
 
Tu hoc-thiet-ke-web-bang-php
Tu hoc-thiet-ke-web-bang-phpTu hoc-thiet-ke-web-bang-php
Tu hoc-thiet-ke-web-bang-php
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
19 web server
19  web server19  web server
19 web server
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.net
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-php
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Linux+03
Linux+03Linux+03
Linux+03
 

php với oracle database

  • 1. MỤC LỤC 1.CÁC BƯỚC CƠ BẢN ĐỂ PHÁT TRIỂN ỨNG DỤNG NỀN WEB PHP TRÊN ORACLE DATABASE ........................................................................................................................... 2 1.1.Các bước cài đặt để sử dụng PHP với ORACLE DATABASE ..................................... 2 1.1.1.Tìm hiểu về OCI8 Extension ................................................................................. 2 1.1.2.Cài đặt PHP với OCI8 trên Windows ..................................................................... 3 1.1.3.Cài đặt thông qua gói phần mềm WampServer trên Windows............................... 4 1.2.Cách kết nối PHP và thực hiện truy vấn SQL từ PHP trên Oracle database ................ 6 1.2.1.Cách kết nối PHP với Oracle database sử dụng OCI8 .......................................... 6 1.2.2.Cách thực hiện truy vấn SQL từ PHP trên Oracle database: ................................. 8 2.CÁC YÊU CẦU VỀ BẢO MẬT, AN TOÀN DỮ LIỆU ......................................................... 10 2.1.Bảo mật và an toàn ngay trên Oracle database: ........................................................ 10 2.2.Kiểm soát chặt chẽ dữ liệu nhập vào ......................................................................... 10 3.CHƯƠNG TRÌNH ỨNG DỤNG THỰC TẾ ....................................................................... 11 TÀI LIỆU THAM KHẢO ....................................................................................................... 15 1
  • 2. 1.CÁC BƯỚC CƠ BẢN ĐỂ PHÁT TRIỂN ỨNG DỤNG NỀN WEB PHP TRÊN ORACLE DATABASE 1.1.Các bước cài đặt để sử dụng PHP với ORACLE DATABASE 1.1.1.Tìm hiểu về OCI8 Extension OCI8 Extension là 1 lớp thư viện mở rộng được chính Oracle phát triển, giúp PHP kết nôi,giao tiếp và thực thi các truy vấn SQL dễ dàng với ORACLE DATABASE, nó được thêm vào trong nhiều gói PHP khác nhau, bao gồm 3 gói chính:  Dành cho gói PHP được phát hành chính thức tại website:PHP.NET  Dành cho nhân của ZEND FRAMEWORK  Dành cho cộng đồng phát triển thư viện mã nguồn mở PHP (PECL) Sơ đồ liên kết giữa PHP với thư viện Oracle client Tất cả các tính năng trong OCI8 có thể không được thể hiện hết trừ khi các thư viện client và máy chủ cơ sở dữ liệu Oracle được nâng cấp lên phiên bản mới nhất Bảng sau sẽ chỉ rõ sự tương thích của các thư viện Oracle client với các phiên bản PHP với OCI8 Extension 2
  • 3. Gói phần mềm Phiên bản PHP Phiên bản OCI8 Các thư viện Orale client tương thích với OCI8 Mã nguồn PHP phát 5.2.7 OCI8 1.2.5 8i, 9i, 10g, 11g hành chính thức Gói PHP phát hành 5.2.7 OCI8 1.2.5 10g, 11g chính thức được đóng gói cho Windows Mã nguồn PECL 4.3.9 OCI8 1.3.4 9iR2, 10g, 11g OCI8 Zend Core 2.5 5.2.5 OCI8 1.2.3 10g 1.1.2.Cài đặt PHP với OCI8 trên Windows Để cài đặt OCI8 trên Windows, thì ta cần phải cài đặt Oracle phiên bản 10g hay 11g i. Cài đặt OCI8 sử dụng 1 cơ sở dữ liệu địa phương trên Windows(hay Oracle databse được cài đặt trên cùng 1 máy chứa Web Server và PHP) 1. Tải gói cài đặt PHP 5.2.7 từ Website: http://www.php.net/downloads.php 2. Nhấn chuột 2 lần vào file php-5.2.7-win32-installer.msi vừa được tải về 3. Nhấn Next ở trên hộp thoại Welcome 4. Tích chuột vào ô checkbox để đồng ý và nhất Next 5. Lựa chọn thư mục để cài đặt các file PHP và nhấn Next 6. ở hộp thoại cài đặt Web Server, lựa chọn Apache 2.0.x Module và nhấn Next 7. trong hộp thoại cấu hình thư mục Apache, lựa chọn vị trí của thư mục conf và nhấn Next.với Apache 2.x, cấu hình thư mục tiêu chuẩn thường là C:Program FilesApacheGroupApache2conf 8. trong hộp thoại lựa chọn thành phần để cài đặt, xoay chuột xuống phía dưới tới phần Extensions rồi thêm Oracle 8 extension vào để cài đặt và nhấn Next 9. nhấn Install 10. 1 hộp thoại sẽ được hiện ra hỏi xem có muốn cấu hình Apache hay không?chọn Yes 11. 1 thông báo xác nhận được hiện ra để xác nhận file httpd.conf đã được cập nhật, nhấn OK 12. 1 thông báo xác nhận được hiện ra để xác nhận file mime.types đã được cập nhật, nhấn OK 13. 1 thông báo xác nhận cuối cùng hiện ra xác nhận việc cài đặt PHP đã hoàn tất, nhấn Finish 14. Khởi động lại Apache bằng: Start > Programs > Apache HTTP Server 2.0.59 > Control Apache Server > Restart. ii. Cài đặt OCI8 với Instant Client trên Windows(hay Oracle database được cài đặt trên một máy khác không chứa Web Server và PHP, khi này Oracle database là 1 cơ sở dữ liệu được điều khiển từ xa) 1. Tải gói Instant Client Basic cho Windows từ trang: http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html 3
  • 4. file nén Zip cho Windows 32 bit thường có dạng instantclient-basic-win32- 11.1.0.6.0.zip có dung lượng khoảng 42 MB 2. Tạo 1 thư mục mới (ví dụ như: C:instantclient_11_1).sau đó giải nén file vừa tải về vào thư mục vừa tạo này 3. Chỉnh sửa trong Windows environment và thêm vào vị trí của các file Oracle Instant Client, C:instantclient_11_1.ví dụ trên Windows XP: Start > Settings > Control Panel > System > Advanced > Environment Variables và chỉnh sửa đường dẫn trong System Variables list.nếu ta đang sử dụng 1 file tnsnames.ora để xác định tên kết nối tới Oracle Net, ta sao chép file tnsnames.ora vào thư mục C:instantclient_11_1 , và thiết lập TNS_ADMIN trong user environment variable thành C:instantclient_11_1 4. Cài đặt PHP theo các bước như trên 5. Khởi động lại Apache HTTP Server. 1.1.3.Cài đặt thông qua gói phần mềm WampServer trên Windows WampServer là 1 gói phần mềm đã bao gồm các cài đặt sẵn : Apache, PHP, MySql đã được cấu hình sẵn để liên kết với nhau nhằm giảm thiểu và hỗ trợ tối đa cho lập trình viên trong việc thiết lập cài đặt bằng tay trong từng gói riêng lẻ để chúng có sự tương thích và đồng bộ với nhau.việc cài đặt WampServer là khá dễ dàng chỉ cần thông qua vài cái nhấn chuột đơn giản.các bước cài đặt: 1. Tải miễn phí gói phần mềm ở trang http://www.wampserver.com/ .tải phiên bản mới nhất hiện thời là phiên bản 2.2a (bao gồm các gói cài đặt sẵn: Apache 2.2, PHP 5.3.8, MySql 5.5).file tải về có tên là: WampServer2.2a-x32.exe 2. Nhấn chuột 2 lần vào file đã tải về 3. Hộp thoại Welcome hiên ra, nhấn Next 4. Tích chuột vào ô checkbox để đồng ý, rồi ấn Next 5. Lựa chọn thư mục cài đặt, rồi ấn Next 6. Tiếp tục nhấn Next 7. Nhấn Install 8. Đợi đến khi các file đã cài đặt xong, ta chọn Finish 9. Khởi động WampServer bằng việc nhấn chuột vào biểu tượng WampServer ngoài màn hình Destop 10. ấn chuột trái vào biểu tượng WampServer trên thanh taskbar chọn PHP > PHP Extensions > php_oci8_11g (hoặc php_oci8) 4
  • 5. Lựa chọn tới PHP > PHP extensions Lựa chọn php_oci8_11g(hoặc php_oci8) trong PHP extensions 11. đợi WampServer tự động khởi động lại 5
  • 6. 1.2.Cách kết nối PHP và thực hiện truy vấn SQL từ PHP trên Oracle database 1.2.1.Cách kết nối PHP với Oracle database sử dụng OCI8 Ta sử dụng chuỗi thông tin kết nối có chứa trong file tnsnames.ora của Oracle.file này được tìm thấy trong thư mục dbhome_1NETWORKADMINtnsnames.ora Ví dụ thông tin trong file tnsnames.ora là : # tnsnames.ora Network Configuration File: D:appngoquangtrungproduct11.2.0dbhome_1networkadmintnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.168.1.10) ) ) 6
  • 7. Ta chú ý tới chuỗi kí tự cuối cùng ở trong file: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.168.1.10) ) Trong PHP, ta tạo 1 file config.php nhằm tạo kết nối từ PHP tới Oracle như sau: <?php $user='scott'; $pass='tiger'; $link=oci_connect($user,$pass,'ORCL'); if(!$link){ $error=oci_error(); echo $error['message']; exit(); } ?> ở trên ta sử dụng tên của kết nối: ORCL để truy cập.hơn thế ta cũng thế sử dụng chuỗi mô tả kết nối để truy cập: 7
  • 8. <?php $user='scott'; $pass='tiger'; $db='(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.168.1.10) ) )'; $link=oci_connect($user,$pass,$db); if(!$link){ $error=oci_error(); echo $error['message']; exit(); } ?> oci_connect() : hàm dùng để kết nối tới 1 Oracle database, nó trả về 1 kết nối đã được xác minh cần cho các thao tác xử lý OCI8 khác oci_error() : trả về lỗi dưới dạng 1 mảng kết hợp khi xảy ra lỗi để đóng 1 kết nối tới Oracle database ta sử dụng hàm oci_close() 1.2.2.Cách thực hiện truy vấn SQL từ PHP trên Oracle database: 8
  • 9. <?php $sql='select * from "dssv"'; $result=oci_parse($link,$sql); oci_execute($result); while($row=oci_fetch_row($result)){ $msv=$row[0]; $hovaten=$row[1]; $namhoc=$row[2]; $kyhoc=$row[3]; $khoahoc=$row[4]; $phonghoc=$row[9]; $giangvien=$row[11]; $khoavien=$row[10]; $thoigianhoc=$row[5].':'.$row[6].'-'.$row[7].':'.$row[8]; } ?> oci_parse() : là hàm phân tích ngữ pháp cấu trúc lệnh để chuẩn bị xử lý trên Oracle database oci_execute() : là hàm thực thi cấu trúc đã được oci_parse() phân tích oci_fetch_row() : trả về kết quả phản hồi của câu truy vấn dưới dạng mảng array có chỉ mục là dạng số.mỗi phần tử trong mảng tương ứng với giá trị của 1 cột trong mỗi dòng kết quả trả về của câu truy vấn 9
  • 10. 2.CÁC YÊU CẦU VỀ BẢO MẬT, AN TOÀN DỮ LIỆU 2.1.Bảo mật và an toàn ngay trên Oracle database:  Kiểm soát truy cập: Mỗi người dùng không thể truy cập vào mọi dữ liệu.  Xác thực người dùng: Để kiểm soát truy cập trên dữ liệu nhạy cảm đầu tiên hệ quản trị phải biết được ai đang cố gắng truy cập vào CSDL.  Phát hiện hành động đáng nghi: Chính người dùng thi thoảng cũng có các hành động đáng nghi, ví dụ: Bỗng nhiên người quản trị hỏi một lượng lớn thông tin về CSDL... Oracle cung cấp tập các công cụ để kiểm soát các hành động của người dùng.  Thực thi nguyên tắc tối thiểu đặc quyền: Việc tối thiểu đặc quyền là một người dùng chỉ có một số quyền đủ để hoàn thành công việc của họ, việc này tránh cho họ vô tình hay cố ý sử dụng các quyền để truy nhập hay sửa đổi CSDL.và việc thực thi này bao gồm:  Bảo vệ các dữ liệu từ điển  Thu lại các quyền không cần thiết của PUBLIC  Giới hạn các thư mục được truy cập của người dùng  Giới hạn người dùng với các quyền quản trị  Hạn chế xác thực CSDL từ xa 2.2.Kiểm soát chặt chẽ dữ liệu nhập vào Để phòng tránh các nguy cơ bị khai thác lỗi SQL injection, để bảo vệ các câu lệnh SQL ta cần kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request ($_GET, $_POST, $_SERVER, AJAX ) Cách vá lỗi: 1. Mởi php.ini và thiết lập magic_quotes_gpc thành On Nó sẽ chèn “” trước (’) có trong: -COOKIE -POST -GET 2. Sử dụng hàm addslashes() để “gói” chuỗi bằng dấu “/” 3. Sử dụng hàm htmlspecialchars(), mysql_escape_string() … để mã hoá kí tự đặc biệt trong câu truy vấn 4. Sử dụng hàm oci_bind_by_name() ngăn cản sự tấn công bằng SQL injection, nó ràng buộc liên kết biến trong PHP với biến trong Oracle, vì vậy biến ràng buộc này không được hiểu là 1 phần của cấu trúc SQL, nên nó không cần phải trích dẫn lại hay bị thoát truy vấn 10
  • 11. 5. Ép kiểu: - Ví dụ: Ta biết id của một đối tượng (user, category, box, product …) luôn là kiểu số nguyên, vì vậy ta dùng: $id = (int)$_POST['id']; hoặc $id = (int)$_GET['id']; Giải thích về vá lỗi : 3 cách đầu: Nếu nhập vào abc’ đi , thì nó sẽ hiểu là một chuỗi chứ không phải là abc rồi dấu ‘ riêng Cách thứ 5: là nếu nhập chuỗi thì nó ép thành số tương ứng. 3.CHƯƠNG TRÌNH ỨNG DỤNG THỰC TẾ Để chạy được chường trình ta phải tiến hành các bước cài đặt như đã nói ở trên và thực hiện kích hoạt scott/tiger schemas rồi import cơ sở dữ liệu có sẵn vào trong Oracle database Mô tả chương trình ứng dụng: Ứng dụng gồm 2 Forms: - Form01: Chứa 1 Data Grid 1 bộ lọc. Data Grid hiển thị đầy đủ các trường thông tin: Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học, Thời gian học, Phòng học, Giảng viên, Khoa viện. Bộ lọc hỗ trợ lọc theo các trường: Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học. Thực hiện các chức năng xem, thêm, xóa, sửa đối với từng sinh viên, thao tác trên Form 02 dưới đây. - Form02: Chứa các thông tin về Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học, Thời gian học, Phòng học, Giảng viên, Khoa viện của từng sinh viên. Cài đặt mối liên kết dữ liệu trên giao diện: chẳng hạn chọn khoa viện thì lọc được danh sách sinh viên thuộc khoa viện, chọn khóa học thì lọc được danh sách giảng viên có thể dạy khóa học đó. Thực hiện cập nhật dữ liệu trên giao diện và lưu vào cơ sở dữ liệu. Giao diện chương trình:  FORM01 11
  • 12. Giao diện tổng quan FORM01 Khi tiến hành lọc dữ liệu ở trường họ và tên bắt đầu bằng “ZH”  FORM02 12
  • 13. Giao diện tổng quan FORM02 Kết quả lọc dữ liệu theo năm học : 2002; kỳ học: FALL; khóa học: DRAMA; phòng học: 808  Thêm mới dữ liệu 13
  • 14. Chỉnh sửa dữ liệu 14
  • 15. TÀI LIỆU THAM KHẢO  “The Underground PHP and Oracle Manual”, CHRISTOPHER JONES AND ALISON HOLLOWAY  “PHP Manual”, THE PHP DOCUMENTATION GROUP  “PHP Oracle Web Development Data Processing, Security, Caching, XML, Web Services, and AJAX”, YULI VASILIEV 15