§èi víi ng − êi dïng root sÏ ®ùoc t¹o nh − mét superuser nªn nã cã thÓ lµm mäi thø, viÖc kÕt nèi ph¶i ®ùoc thùc hiÖn ë localhost. G¸n thªm quyÒn ng − êi dïng ®èi víi mysql[r]
(1)***
TàI liệu tham khảo
(2)PhÇn I : Giíi thiƯu ngôn ngữ lập trình PHP
chơng i : Ngôn ngữ lập trình pHP
I Giới thiệu PHP môi trờng lập trình web
1 PHP ?
Cỏi tờn PHP ban đầu đ−ợc viết tắt cụm từ Personal Home Page, đ−ợc phát triển từ năm 1994 Rasmus Lerdorf Lúc đầu đặc tả Perl, đ−ợc sử dụng để l−u dấu vết ng−ời dùng trang web Sau đó, Rasmus Lerdorf phát triển PHP nh− máy đặc tả (Scripting engine) Vào năm 1997, PHP đ−ợc phát triển nhanh chóng u thích nhiều ng−ời PHP khơng cịn dự án cá nhân Rasmus Lerdorf trở thành công nghệ web quan trọng Zeev Suraski Andi Gutmans hồn thiện việc phân tích cú pháp cho ngôn ngữ để tháng năm 1998, PHP3 đời (phiên có phần mở rộng *.php3) Cho đến tận thời điểm đó, PHP ch−a lần đ−ợc phát triển thức, yêu cầu viết lại đặc tả đ−ợc đ−a ra, sau PHP4 đời (phiên có phần mở rộng *.php4 mà *.php) PHP4 nhanh so với PHP3 nhiều PHP đ−ợc gọi PHP Hypertext PreProcesor
2 T¹i ph¶i sư dơng PHP
(3)có t−ơng tác với sở liệu để tạo trang web đ−ợc gọi trang web động
Chúng ta xem xét cách hoạt động trang web đ−ợc viết ngôn ngữ HTML PHP nh−
Víi c¸c trang HTML :
Khi có yêu cầu tới trang web tõ phÝa ng−êi sư dơng (browser) Web server thùc hiƯu ba b−íc sau :
+ Đọc u cầu từ phía browser, + Tìm trang web server + Gửi trang web trở lại cho browser (nu tỡm thy)
qua mạng Internet Intranet Víi c¸c trang PHP :
Kh¸c víi c¸c trang HTML, trang PHP đợc yêu cầu, web server phân tích thi hành đoạn mà PHP
để tạo trang HTML
Điều đ−ợc thể bốn b−ớc sau : + Đọc u cầu tử phía browser + Tìm trang web server
+ Thực đoạn mã PHP trang web để sửa đổi nội dung trang
+ Gửi trở lại nội dung cho browser (đây trang HTML hiển thị đ−ợc trình duyệt Internet Explorer trình duyệt no ú)
Tóm lại, khác HTML PHP HTML không đợc thực máy chủ Web server trang *.php
viết đoạn mà PHP đợc thực
trờn máy chủ Web server linh động mềm dẻo Trang html
Web server
+ Đọc yêu cầu từ browser + Tìm file.htm server
+ Gửi lại file.htm cho browser
Request
http://domain/file.htm
Web server
+ Đọc yêu cầu từ browser
+ Tìm trang web(file.php) server + Thực đoạn mã PHP + Gửi trả lại nội dung cho browser
Request
(4)3 Những điểm mạnh PHP
-PHP thc hin vi tốc độ nhanh hiệu Một Server bình th−ờng đáp ứng đ−ợc hàng triệu truy cập ti mt ngy
PHP hỗ trợ kết nối tíi rÊt nhiỊu hƯ CSDL kh¸c nhau:
PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase, Sybase, Ngồi cịn hỗ trợ kết nối với ODBC thơng qua kết nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ
-PHP cung cấp hệ thống th− viện phong phú : Do PHP từ đầu đ−ợc thiết kế nhằm mục đích xây dựng phát triển ứng dụng web nên PHP cung cấp nhiều hàm xây dựng sẵn giúp thực công việc dễ dàng : gửi, nhận mail ,làm việc với cookie, nhiều thứ khác
-PHP ngôn ngữ dễ dùng, dễ học đơn giản nhiều so với ngôn ngữ khác nh− Perl, Java Nếu bạn biết ngơn ngữ C việc hoàn toàn thuận lợi
-PHP sử dụng đ−ợc nhiều hệ điều hành, viết chúng Unix, Lunix phiên Windows Và đem mã PHP chạy hệ điều hành khác mà khụng phi sa i li mó
-PHP ngôn ngữ mà nguồn mở
II Biến, số kiểu liệu PHP 1 Kiểu liêu
PHP có ba kiểu liệu : interger, double string Ngồi cịn có kiểu liệu khác (nh−ng khơng phải kiểu liệu bản) nh− arrays (các kiểu liệu mảng), objects (các kiểu liệu đối t−ợng)
Interger kiểu chiếm byte nhớ ,giá trị khoảng tỷ tới + tỷ Kiểu Double kiểu số thực ,phạm vi biểu diƠn ± (10-308 ÷ 10308)
Kiểu string dùng để chứa giá trị bao gồm ký tự số Ví dụ : // kiểu interger
(5)“2 hours” // kiểu string khác
2 Hằng sè
Hằng số giá trị không đổi Chúng ta th−ờng dùng số để l−u giá trị khơng đổi suốt ch−ơng trình nh− : nhiệt độ (00C), giá trị thời gian chuyển giao sáng ,ch−a ,chiều ,tối
a Khai b¸o h»ng sè :
Ta dùng hàm define() để khai báo số : define(“COMPANY”, “Phop’s Bicycles”); define(“YELLOW”, “#FFFF00”);
define(“VERSION”, 4); define(“NL”, “<BR>\n”);
Trong ví dụ dùng hàm define() để khai báo số NL Hằng số thẻ ngắt dịng HTML
Chóng ta sÏ sư dơng c¸c h»ng sè PHP nh− sau : echo (“Employment at COMPANY NL);
Cách viết giống nh c¸c viÕt sau:
echo (“Employment at Phop’s Bicycles<BR>\n”);
Chú ý : số phải hai dấu Trờng hợp sau hiệu lùc : echo (“Employment at COMPANY NL”); Khi thùc hiÖn cho kết : Employment at COMPANY NL”
Hàm defined() : hàm dùng để kiểm tra xem số đ−ợc khai báo ch−a
VÝ dô : if ( defined (“YELLOW”)) {
(6)VIII Cài đặt việc khởi tạo hệ thống quyền mysql
-Sau cài đặt mysql bạn đặt việc khởi tạo quyền cho mysql việc chạy scripts/mysql_install_db Kịch chạy mysqlserver để khởi quyền bao gồm tập hợp quyền sau:
Đối với ng−ời dùng root đựoc tạo nh− superuser nên làm thứ, việc kết nối phải đựoc thực localhost
Chú ý: Ban đầu việc khởi tạo không yêu cầu mật ng−ời dùng root ng−ời kết nối nh− ng−ời dùng root mà khơng bị địi hỏi password việc đầu tiêm mà bạn nên làm thay đổi password cho ng−ời dùng root
- Bất ng−ời dùng đ−ợc tạo làm thức CSDL test nh−ng việc kết nối phải đựoc thực localhost
IX Gán thêm quyền ng−ời dùng mysql
Bạn tạo ng−ời dùng hai cách: Dùng lệnh Grant thao tác trực tiếp CSDL mysql Cách thức th−ờng đựoc dùng dùng lệnh grant ngắn gọn lỗi
Các ví dụ sau thực việc tạo ng−ời dùng Để thực điều bạn phải kết nối với mysql nh− ng−ời dùng root ng−ời dùng root phải đ−ợc gán quyền insert CSDL mysql phải có quyền quản trị reload
Mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
Mysql> GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
Mysql> GRANT RELOAD, PROCESS ON *.* TO admin@localhost; Mysql> GRANT USAGE ON *.* TO dummy@localhost;
Các câu lệnh gán quyền cho ban ngời dùng monty, admin dummy
- ng−ời dùng monty: Đây ng−ời dùng superuser với đầy đủ quyền kết nối nơi đâu nh−ng phải có password “some_pass”
- Ngời dùng admin: ngời dùng đợc quyền reload, process nhng phải đăng nhập từ localhost không yêu cÇu password
- Ng−ời dùng dummy kết nối mà không cần password nh−ng không đựoc gán quyền
- Cịng thùc hiƯn viƯc g¸n qun nh theo cách khác ta làm nh
sau:
Mysql> INSERT INTO user
(7)Mysql> INSERT INTO user
VALUES(‘%’,’monty’,PASSWORD(‘some_pass’),
‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’) Mysql> INSERT INTO user SET Host=’localhost’, User=’admin’, Reload_priv=’Y’, Process_priv=’Y’;
Mysql> INSERT INTO user (Host, User, Password) VALUES(‘localhost’,’dummy’,’’);