Lập trình PHP (căn bản)
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ Webserver.
Do PHP được phát triển chỉ để dành cho ứng dụng web nên rất dễ dàng nhúng mã vào trang HTML. Tốc độ nhanh, nhỏ gọn, cú pháp giống C, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web rất phổ biến.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng nhưng cũng có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên.
Nói đơn giản: PHP là ngôn ngữ dạng script thực thi trên webserver nhằm tạo ra trang web động
Thẻ <? và thẻ ?> đánh đấu bắt đầu và kết thúc của phần mã PHP, qua đó máy chủ biết để xử lý và dịch mã cho đúng.
Mỗi dòng kết thúc bằng dấu ;
Trong trang html, các lệnh php nằm trong tag <? ?> hoặc <?php ?>
Các khối lệnh nằm trong { }
Tên mở rộng của file là php
i tượng chứa dữ liệu gửi lên từ form dùng Method là Post Cách lấy giá trị từ form $_GET["Ten"] $_POST["Ten"] Ví dụ 1: Tạo 1 file tên dangnhap.php rồi tạo form login trong tag body như dưới đây: ĐĂNG NHẬP Tên đăng nhập Mật khẩu Nhớ user và pass Tạo file xulydangnhap.php rồi gõ mã sau vào tag body <? echo $_GET["u"]. ""; echo $_GET["p"]. ""; print_r($_GET ) ?> F12 file dangnhap.php, gõ user, pass rồi nhắp Login. Nhìn URL của browser, bạn sẽ thấy file xulydangnhap.php và username, password. Chỉnh lại form trên với method là POST, Sửa phương thức GET trong file xulydangnhap.php thành POST và thử lại. Chú ý URL trên thanh Address khi nhắp nút Login Đối tượng $_SERVER Ngoài các thông tin trình duyệt gửi lên thông qua các con đường POST, GET, COOKIES, chúng ta cũng có thể thu được một số thông tin khác có liên quan đến trình duyệt cũng như các thông số liên quan đến máy chủ như: đường dẫn, địa chỉ IP, phiên bản... Các thông tin này được lưu trữ trong biến mảng $_SERVER (đối với các phiên bản mới) hoặc $HTTP_SERVER_VARS (đối với các phiên bản cũ hơn bản 4.1.0): $_SERVER['HTTP_HOST'] / $_SERVER['SERVER_NAME']: Tên của máy chủ host, nơi mà đoạn script được thực thi. $_SERVER['PHP_SELF']: Tên file nằm trên folder gốc của website. Ví dụ: biến $_SERVER['PHP_SELF'] trong script đặt tại địa chỉ sẽ là /test.php/foo.bar. $_SERVER['QUERY_STRING']: Chuỗi chứa tên các tham số và giá trị (sau dấu ?) $_SERVER['DOCUMENT_ROOT']: Folder gốc của website, nơi mà file script đang được thực thi. Ví dụ: C:/AppServ/www $_SERVER['HTTP_REFERER']: địa chỉ của trang web mà từ đó user link đến trang này. $_SERVER['REMOTE_ADDR']: Địa chỉ của máy client, nơi người sử dụng đang duyệt web. $_SERVER['REQUEST_URI']: Địa chỉ URI (Định danh đối với các tài nguyên mạng, là một dạng thức của URL). $_SERVER['SERVER_SOFTWARE']: Chuỗi định danh của máy chủ, thường được cấp trong phần header khi trả lời các yêu cầu từ máy khách. Ví dụ: Apache/2.2.4 (Win32) PHP/5.2.3 $_SERVER['REQUEST_METHOD']: Loại yêu cầu mà clientsử dụng để truy cập trang web. VD: 'GET', 'HEAD', 'POST', 'PUT'. $_SERVER['SCRIPT_FILENAME']: Đường dẫn tuyệt đối của file script đang chạy. Vd: C:/AppServ/www/laptrinhphp/abc.php $_SERVER['SCRIPT_NAME']: Đường dẫn của file script. Vd /laptrinhphp/abc.php <?php echo 'HTTP_HOST: '. $_SERVER['HTTP_HOST'].''; echo 'PHP_SELF: '.$_SERVER['PHP_SELF'].''; echo 'QUERY_STRING: '.$_SERVER['QUERY_STRING'].''; echo 'DOCUMENT_ROOT: '. $_SERVER['DOCUMENT_ROOT'].''; echo 'HTTP_REFERER: '. $_SERVER['HTTP_REFERER'].''; echo 'REMOTE_ADDR: '. $_SERVER['REMOTE_ADDR'].''; echo 'URL: '. $_SERVER['REQUEST_URI'] .''; echo 'SCRIPT_FILENAME: '. $_SERVER['SCRIPT_FILENAME'] .''; echo 'SCRIPT_NAME'. $_SERVER['SCRIPT_NAME'] .''; ?> Giới thiệu về http header http header là các thông tin điều khiển nằm trong các http request , http response. Chứa các các chỉ thị báo cho trình duyệt/server biết cách xử lý thông tin. Ví dụ: trình duyệt chuyển qua trang khác, trình duyệt đừng hiện file php, trình duyệt đừng lưu trang vào cache Redirection (chuyển hướng) Dùng để chuyển sang trang web khác. Cú pháp: header("location:url"); Lệnh này phải dùng trên tất cả các mã lệnh html Ví dụ1: <? header("location:"); exit(); ?> Ví dụ 2: Nếu buổi sáng chuyển đến trang index1.html ngược lại chuyển đến index2.html <? if (date('H')<=12) header('location:index1.html'); else header('location:index2.html'); ?> Ví dụ 3: Nếu 2-4-6 chuyển đến trang index1.html ngược lại chuyển đến index2.html <? if ((date('w')==1) || (date('w')==3) || (date('w')==5)) header('location:index1.html'); else header('location:index2.html'); ?> Ví dụ 4: Nếu browser là IE thì chuyển đến trang index1.html, ngược lại trang index2.html <? if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')>0) header('location:index1.html'); else header('location:index2.html'); ?> Ví dụ 5: Nếu browser là Firefox thì chuyển đến trang index1.html, ngược lại trang index2.html <? if (strpos($_SERVER['HTTP_USER_AGENT'],'Firefox')>0) header('location:index1.html'); else header('location:index2.html'); ?> Content-type Dùng để báo cho browser biết kiểu dữ liệu mà webserver đang trả về cho browser. Cú pháp: header('Content-type:MimiType); Ví dụ: tạo file mimetype1.html rồi gõ: Chào Chào bạn Nếu không có dòng đầu (chữ đỏ) thì browse sẽ hiện trang web có chữ chào bạn. Nếu có, broswe sẽ biết đó là 1 file word, nó sẽ hiện ra khung này Lệnh này phải dùng trên tất cả các mã lệnh html Một số kiểu Mimtype (xem thêm file mimetype.html) application/msword doc application/pdf pdf application/vnd.ms-excel xls application/zip zip Content-disposition Cú pháp: header('Content-disposition: attachment; filename="'.$filename.'"'); Lệnh sẽ báo cho browser biết là nên download và save file. Tham số "filename=" sẽ báo cho browser biết tên của file nên được save. Ví dụ: <? header('Content-type: application/msword'); $filename="tailieu.doc"; header('Content-disposition: attachment; filename="'.$filename.'"'); ?> Chào Chào bạn Cookies Giới thiệu: Cookie dùng để lưu những thông tin về user. Cookie được lưu trong máy client, trong vùng do browser quản lý Không dùng cookies để lưu những thông tin quan trọng vì không đảm bảo browser đều cho phép ghi cookies mà chỉ dùng cookie cho mục đích tiện ích mà thôi (username, password, thời điểm login cuối, danh sách nhạc ưa thích) Tạo cookie setcookie("TenCookie",giá trị [,Thời điểm quá hạn]); Nếu không chỉ định thời gian thì cookie sẽ lưu trong bộ nhớ. Và sẽ mất khi user đóng browser. Nếu thời điểm quá hạn là 1 thời điểm trong quá khứ thì browser sẽ xóa cookie Sử dụng cookie $_COOKIE["Ten"]; Ví dụ 1: Tạo file setcookies.php và gõ khối lệnh sau (phải trên tất cả mã html) <?php setcookie("un", "Nguyen Van Teo", time()+60*60*24*30); setcookie("lasttime", time(), time()+60*60*24*30); ?> Chú ý: Hàm time() cho biết số giây tính từ đầu năm 1970 đến thời điểm hiện tại F12 xem thử, bạn sẽ chẳng thấy gì, nhưng 2 cookie đã được tạo (có thể xem thấy trong cache) Tạo file viewcookie.php rồi gõ khối lệnh sau trong tag body <? if (isset($_COOKIE["un"])==true) echo "Chào bạn " . $_COOKIE["un"] .""; else echo "Chào quý khách"; echo "Bạn vào site lần cuối lúc " . date("d/m/Y H:i:s",$_COOKIE["lasttime"]); echo ""; print_r($_COOKIE); // Xem mọi cookie ?> “F17” xem thử, bạn thấy giá trị 2 cookie Ví dụ 2 Tạo file xoacookie.php rồi vào dòng đầu tiên: <? setcookie("un", "haha", time()-1); ?> F12 , cookie sẽ bị xóa. Bạn có biết kiểm tra bằng cách nào không? Ví dụ 3: Mở file xulydangnhap.php, gõ thêm ở đầu: <? if (isset($_POST['nho'])==true){ setcookie("iu_sơ_nêm",$_POST['u'], time()+60*60*24*7 ); setcookie("bát_quợt",$_POST['p'], time()+60*60*24*7 ); } else { setcookie("iu_sơ_nêm",$_POST['u'],time()-1); setcookie("bát_quợt",$_POST['p'],time()-1); } ?> Lưu file lại Mở file 1 file dangnhap.php , chọn tag form rồi kểm tra xem có phải method là POST không Nhắp textfield tên u rồi qua code, bạn sẽ thấy đoạn mã: Gõ thêm vào (màu đỏ) để có kết quả sau: " name="u" type="text" class="txtfield" id="u" /> Qua Design, nhắp textfield tên p rồi qua code, bạn sẽ thấy đoạn mã: Gõ thêm vào (màu đỏ) để có kết quả sau: " name="p" id="p" type="password" class="txtfield" /> “F17” trang dangnhap.php. Gõ username và password rồi nhắp Đăng nhập, bạn sẽ thấy user name password. Xem xong đóng browser lại “F17” trang dangnhap.php. Gõ username và password , check vào Nhớ username rồi nhắp Đăng nhập, bạn sẽ thấy user name password. Lúc này username và password đã được lưu lại trong cookie. Xem xong đóng browser lại “F17” trang dangnhap.php. Bạn sẽ thấy username, password đã được hiện sẵn Session Giới thiệu: Là đối tượng chứa thông tin user trên server. Mỗi user có 1 session riêng. Cấu trúc session của mỗi user là giống nhau (chỉ khác gia trị các biến). $_SESSION là dãy toàn cục có sẵn trong php, dùng để chứa các biến session. Do đó dữ liệu trong session có thể được truy xuất từ mọi trang php trong site. Khai báo và sử dụng $_SESSION["TênBiến"] Trang php nào có dùng session thì phải có hàm Hàm này phải nằm trên tất cả mã lệnh html Vd: <? $_SESSION["login"]=1 ; //tạo biến, mọi trang đều đọc được ?> Ví dụ 1: <? if(isset($_SESSION['views'])==true) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; if ($_SESSION['views']>=10) unset($_SESSION['views']); //session_destroy(); ?> Ví dụ 2: Ghi nhận số lượng sản phâm được chọn vào giỏ hàng Mở trang index_banhang.php Qua code, lên dòng đầu gõ lệnh Qua design. Ở cột phải, trong dòng Giỏ hàng có 0 sản phẩm, chọn số 0 xóa rồi qua code gõ code (màu đỏ) Giỏ hàng có sản phẩm Kiểm tra xem từng nút đặt mua có link đến trang luuugiohang.php hay không Tạo trang luugiohang.php Qua code, xóa hết code html và gõ lệnh sau <? session_start(); $_SESSION['SoSP']+=1; header("location:".$_SERVER['HTTP_REFERER']); ?> Test thử Ví dụ 3 : Tạo file index_admin.php – Trang chủ <? session_start(); if (isset($_SESSION['login'])==false) { header("Location: login.html"); exit(); } ?> Đây là trang chủ quản trị. Chào . Bạn đã login thành cong. Logout; Tạo file login.html – Form login Username: Password: Tạo file signin.php – Kiểm tra thông tin <? session_start(); if (checkLogin($_POST['username'], $_POST['password'])==true){ $_SESSION["username"]=$_POST['username']; $_SESSION["login"]=true; header('Location: index_admin.php'); exit(); } else { header('Location: login.html'); exit(); } function checkLogin($theUsername, $thePassword){ if (($theUsername=="teo") && ($thePassword=="123")) return true; else return false; } ?> Tạo file signout.php <? session_start(); session_destroy(); header('Location: login.html'); ?>
File đính kèm:
- Lập trình PHP (căn bản).doc