PHP - Web Concepts

PHP là một ngôn ngữ lập trình kịch bản phía máy chủ được sử dụng để tạo ra các trang web động. Đây là một trong những ngôn ngữ lập trình phổ biến nhất cho phát triển web. Chương này nhằm giúp bạn làm quen với một số khái niệm quan trọng trong phát triển ứng dụng web sử dụng PHP.

Một ứng dụng dựa trên web là một tập hợp các trang web. Một trang web chủ yếu được tạo ra bằng các thẻ HTML. HTML bao gồm các thẻ HTML khác nhau cần thiết để xác định sự xuất hiện của các phần tử trên trang như văn bản, hình ảnh, bảng, v.v. Do đó, HTML về cơ bản tạo ra một trang web tĩnh.

Một ứng dụng web được lưu trữ trên một máy chủ HTTP với mô-đun PHP được cài đặt. Trình duyệt hoạt động như một khách hàng HTTP, để thiết lập giao tiếp với máy chủ, theo giao thức HTTP.

PHP Web Concepts

How to Add Dynamic Content on a Webpage?

Để thêm nội dung động vào một trang web, có hai khả năng.

JavaScript là một ngôn ngữ kịch bản phía máy khách, có thể truy cập mô hình đối tượng tài liệu HTML và hiển thị nội dung động trên trình duyệt của khách hàng. Mã JavaScript có thể được nhúng vào trang HTML.

Trình duyệt có thể thu thập dữ liệu từ người dùng dưới dạng các phần tử biểu mẫu HTML và gửi nó đến máy chủ HTTP để xử lý. PHP là một ngôn ngữ xử lý phía máy chủ được sử dụng rộng rãi. Mã PHP cũng có thể được nhúng bên trong trang HTML.

Example

Trong kịch bản sau, mã JavaScript nhúng trong HTML hiển thị ngày hiện tại theo trình duyệt của khách hàng, và mã PHP hiển thị ngày hiện tại theo máy chủ, nơi kịch bản này được lưu trữ.

<!DOCTYPE html>
<html>
<body>
   <script type="text/JavaScript">
      document.write("Client's date :"+Date()+"\n");
   </script>
   <?php
      date_default_timezone_set("Asia/Calcutta");
      echo "server's date is " . date("Y-m-d") . "\n";
      echo "The time is " . date("h:i:sa");
   ?>
</body>
</html>

PHP can intercept and process the data from HTML forms . Điều này cho phép bạn thu thập thông tin từ người dùng của mình. Chương tiếp theo sẽ thảo luận về việc xử lý biểu mẫu trong PHP.

PHP can be used to interact with databases chẳng hạn như MySQL và PostgreSQL. Điều này cho phép bạn lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu của bạn, và tự động điền các trang web hoặc cung cấp năng lượng cho các ứng dụng web. PHP bao gồm các phần mở rộng mysql, mysqli và PDO để xử lý cơ sở dữ liệu.

PHP can handle the data received from the client với các phương thức HTTP GET cũng như POST. Chúng ta sẽ thảo luận chi tiết về cách PHP xử lý các phương thức GET/POST trong một chương sau.

HTTP is a stateless protocol Tuy nhiên, nó cho phép Sessions và cookies được duy trì trên máy chủ và máy khách tương ứng. PHP có thể được sử dụng để tạo và quản lý các phiên và cookie. Các phiên cho phép bạn theo dõi từng người dùng khi họ duyệt web của bạn, trong khi cookie cho phép bạn lưu trữ thông tin trên máy tính của người dùng để sử dụng sau này. Trong các chương tiếp theo, chúng ta sẽ tìm hiểu cách PHP xử lý các phiên và cookie.

PHP can be used to upload files to your web server . Điều này cho phép bạn tạo ra các ứng dụng web cho phép người dùng tải lên các tệp, chẳng hạn như hình ảnh, video hoặc tài liệu.

You can use PHP to create a login page for your website . Khi người dùng nhập tên người dùng và mật khẩu của họ, PHP có thể kiểm tra cơ sở dữ liệu để xem người dùng có hợp lệ hay không. Nếu người dùng hợp lệ, PHP có thể đăng nhập người dùng và chuyển hướng họ đến trang chính của trang web của bạn.

Identifying Browser & Platform

PHP tạo ra một số environment variables hữu ích có thể được thấy trên trang phpinfo.php đã được sử dụng để thiết lập môi trường PHP.

Một trong những biến môi trường được thiết lập bởi PHP là HTTP_USER_AGENT xác định trình duyệt và hệ điều hành của người dùng.

PHP cung cấp một hàm getenv() để truy cập giá trị của tất cả các biến môi trường. Thông tin chứa trong biến môi trường HTTP_USER_AGENT có thể được sử dụng để tạo nội dung động phù hợp với trình duyệt.

Example

Ví dụ dưới đây minh họa cách bạn có thể xác định trình duyệt của khách hàng và hệ điều hành.

NOTE − Hàm preg_match() được thảo luận trong phiên PHP Regular expression .

<?php
   function getBrowser() { 
      $u_agent = $_SERVER['HTTP_USER_AGENT']; 
      $bname = 'Unknown';
      $platform = 'Unknown';
      $version = "";
            
      //First get the platform
      if (preg_match('/linux/i', $u_agent)) {
         $platform = 'linux';
      } elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
         $platform = 'mac';
      } elseif (preg_match('/windows|win32/i', $u_agent)) {
         $platform = 'windows';
      }
            
      // Next get the name of the useragent yes seperately and for good reason
      if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) {
         $bname = 'Internet Explorer';
         $ub = "MSIE";
      } elseif(preg_match('/Firefox/i',$u_agent)) {
         $bname = 'Mozilla Firefox';
         $ub = "Firefox";
      } elseif(preg_match('/Chrome/i',$u_agent)) {
         $bname = 'Google Chrome';
         $ub = "Chrome";
      } elseif(preg_match('/Safari/i',$u_agent)) {
         $bname = 'Apple Safari';
         $ub = "Safari";
      } elseif(preg_match('/Opera/i',$u_agent)) {
         $bname = 'Opera';
         $ub = "Opera";
      } elseif(preg_match('/Netscape/i',$u_agent)) {
         $bname = 'Netscape';
         $ub = "Netscape";
      }
            
      // finally get the correct version number
      $known = array('Version', $ub, 'other');
      $pattern = '#(?<browser>' . join('|', $known) . ')
         [/ ]+(?<version>[0-9.|a-zA-Z.]*)#';

      if (!preg_match_all($pattern, $u_agent, $matches)) {
         // we have no matching number just continue
      }

      // see how many we have
      $i = count($matches['browser']);

      if ($i != 1) {
         //we will have two since we are not using 'other' argument yet

         //see if version is before or after the name
         if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
         } else {
            $version= $matches['version'][1];
         }
      } else {
         $version= $matches['version'][0];
      }
            
      // check if we have a number
      if ($version == null || $version == "") {$version = "?";}
         return array(
            'userAgent' => $u_agent,
            'name'      => $bname,
            'version'   => $version,
            'platform'  => $platform,
            'pattern'   => $pattern
         );
   }
         
   // now try it
   $ua = getBrowser();
   $yourbrowser = "Your browser: " . $ua['name'] . " " . $ua['version'] .
   " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];

   print_r($yourbrowser);
?>

Điều này đang tạo ra kết quả sau trên máy của tôi. Kết quả này có thể khác với máy của bạn tùy thuộc vào những gì bạn đang sử dụng.

Nó sẽ tạo ra kết quả sau −

Your browser: Google Chrome 54.0.2840.99 on windows reports: 
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
   Chrome/54.0.2840.99 Safari/537.36

Display Images Randomly

Hàm PHP rand() được sử dụng để tạo ra một số ngẫu nhiên. Hàm này có thể tạo ra các số trong một khoảng nhất định. Bộ sinh số ngẫu nhiên nên được khởi tạo để ngăn chặn việc tạo ra một mẫu số thường xuyên. Điều này được thực hiện bằng cách sử dụng hàm srand() mà chỉ định số hạt giống là đối số của nó.

Example

Ví dụ sau đây minh họa cách bạn có thể hiển thị hình ảnh khác nhau mỗi lần từ bốn hình ảnh -

<?php
   srand( microtime() * 1000000 );
   $num = rand( 1, 4 );
         
   switch( $num ) {
      case 1: $image_file = "/php/images/php_image_sample_1.jpg";
         break;
            
      case 2: $image_file = "/php/images/php_image_sample_2.jpg";
         break;
            
      case 3: $image_file = "/php/images/php_image_sample_3.jpg";
         break;
            
      case 4: $image_file = "/php/images/php_image_sample_4.jpg";
         break;
   }
   echo "Random Image : <img src=$image_file />";
?>

Nó sẽ tạo ra kết quả sau −

Display Image Randomly

Using HTML Forms

Điều quan trọng nhất cần lưu ý khi làm việc với các biểu mẫu HTML và PHP là bất kỳ phần tử biểu mẫu nào trong trang HTML sẽ tự động có sẵn cho các tập lệnh PHP của bạn.

Example

Hãy thử ví dụ sau bằng cách đặt mã nguồn vào tệp test.php.

<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      
      echo "Welcome ". $_POST['name']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<form action = "<?php <b>$_PHP_SELF</b> ?>" method = "POST">
   Name: <input type = "text" name = "name" />
   Age: <input type = "text" name = "age" />
   <input type = "submit" />
</form>

Nó sẽ tạo ra kết quả sau −

Forms
  • Biến mặc định PHP $_PHP_SELF được sử dụng cho tên script PHP và khi bạn nhấp vào nút "submit", thì cùng một script PHP sẽ được gọi và sẽ tạo ra kết quả sau −

  • Phương thức = "POST" được sử dụng để gửi dữ liệu người dùng đến script trên máy chủ. Có hai phương thức để gửi dữ liệu đến script trên máy chủ, được thảo luận trong chương PHP GET & POST .

Browser Redirection

Hàm PHP header() cung cấp các tiêu đề HTTP thô cho trình duyệt và có thể được sử dụng để chuyển hướng nó đến một vị trí khác. Kịch bản chuyển hướng nên được đặt ở đầu trang để ngăn chặn bất kỳ phần nào khác của trang tải.

Mục tiêu được chỉ định bởi tiêu đề Location: như là đối số cho hàm header() . Sau khi gọi hàm này, hàm exit() có thể được sử dụng để dừng việc phân tích phần còn lại của mã.

Example

Ví dụ sau đây minh họa cách bạn có thể chuyển hướng yêu cầu của trình duyệt đến một trang web khác. Hãy thử nghiệm ví dụ này bằng cách đặt mã nguồn vào tập tin test.php.

<?php
   if( $_POST["location"] ) {
      $location = $_POST["location"];
      header( "Location:$location" );
      
      exit();
   }
?>
<p>Choose a site to visit :</p>   
<form action = "<?php <b>$_SERVER['PHP_SELF']</b> ?>" method ="POST">
   <select name = "location">.
         
      <option value = "http://www.tutorialspoint.com">
         Tutorialspoint.com
      </option>
         
      <option value = "http://www.google.com">
         Google Search Page
      </option>
         
   </select>
   <input type = "submit" />
</form>

Nó sẽ tạo ra kết quả sau −

Browser Redirection