Tổng hợp căn bản về học lập trình PHP cho người mới bắt đầu (p2)

Tổng hợp căn bản về học lập trình PHP cho người mới bắt đầu (p2)

Chào mừng bạn đã quay lại với bài học lập trình PHP căn bản tại tuandc.com. Nếu bạn chưa đọc phần 1 của bài này, hãy xem lại tại đây. Trong phần này chúng ta sẽ đi hết 8 phần còn lại trong lập trình PHP căn bản.

9. Chuyển hướng trình duyệt trong PHP

Để chuyển hướng trong PHP ta có thể sử dụng hàm header(). Cú pháp của hàm này như sau:

header ($string, $replace = true, $http_response_code = null) {}

Trong đó:

  • $string: Chuỗi này sẽ cho biết làm gì tiếp theo.
  • $replace: Tham số này mặc định là true, tức là chuỗi thay thế, Và bạn cứ để vậy nếu không có nhiều header
  • $http_response_code: Mã code trả về của Server. như 404 là không tìm thấy hay 301 là chuyển hướng có chủ đích,…

Một số ví dụ cụ thể như sau

//Chuyển hướng đến 1 trang
header('Location: http://www.domain.net/');

//Chuyển hướng chủ đích đến một trang
header('Location: http://www.domain.net/', true, 301);

//Chuyển hướng 404 như chuyển từ các trang không tìm thấy về trang chủ
header('Location: http://www.domain.net/', true, 404);

//Chuyển hướng tải file thay vì sử dụng link tải
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"download.js\"");

10. GET & POST

Có 2 phương thức thông dụng để gửi dữ liệu đến Server, đó là GETPOST.

Phương thức GET trong PHP

Phương thức này được gửi đến server bằng cách gửi các key và value gán phía sau dấu “?” của URL. ví dụ

http://www.test.com/index.htm?namea=value1&nameb=value2

Phương thức này không phải là phương thức bảo mật, nó không được mã hóa và hiển thị công khai. Tối đa ký tự cho phương thức này là 1024 ký tự. Có thể dùng phương thức này để tìm kiếm, lấy action, lấy id bài viết,… không được phép dùng cho mật khẩu, số thẻ, các thông tin nhạy cảm,….

Để gửi các dữ liệu theo phương thức này bạn tạo Form như sau:

<form action="file php được truyền tới" method="GET">
     Họ tên: <input type="text" name="name" />
     Tuổi: <input type="text" name="age" />
     <input type="submit" />
 </form>

Các biến này sẽ được lấy như sau

$ten = $_GET["name"]
$tuoi = $_GET["age"]

Phương thức POST trong PHP

Phương thức này sử dụng HTTP header để truyền thông tin đến server. Phương thức này bảo mật hơn rất nhiều nhờ việc mã hóa và giải mã ở Server. Tuy nhiên nhiều trường hợp hacker vẫn có thể đánh cắp được dữ liệu của bạn. SSL được thêm vào để giúp bạn truyền dữ liệu an toàn hơn. Bạn có thể tham khảo bài viết: Hướng dẫn thêm chứng chỉ SSL miễn phí của CloudFlare

Để gửi dữ liệu dạng này bạn chỉ cần thay method GET thành POST trong form là được.

<form action="file php được truyền tới" method="POST">
     Họ tên: <input type="text" name="name" />
     Tuổi: <input type="text" name="age" />
     <input type="submit" />
</form>

Để nhận dữ liệu này cũng tương tự

$ten = $_POST["name"]
$tuoi = $_POST["age"]

11. Chèn file (File Inclusion)

Bạn sử dụng cách này để chèn các file khác nhau vào một file, ví dụ như header, footer, sidebar,… Để chèn file vào ta có hai hàm đó là include() và require().

Hàm include() trong PHP

Hàm này sẽ lấy toàn bộ nội dung của file được include và insert vào file hiện tại. Khi phát sinh lỗi các nó vẫn hoạt động và sinh ra một số dòng cảnh báo. Cách sử dụng như sau:

<html>
  <body>
     <?php include("header.php"); ?>
     <p>Ví dụ minh họa cách include header.php!</p>
  </body>
</html>

Đoạn mã trên sẽ chèn nội dung file header.php vào file hiện tại.

Hàm require() trong PHP

Tương tự như include, tuy nhiên khi phát sinh lỗi, nó không hoạt động và báo ra lỗi nghiêm trọng. Điều này cần thiết nếu như file bạn cần chèn vào rất quan trọng trong toàn bộ nội dung hiển thị. Cách sử dụng tương tự.

<html>
  <body>
     <?php require("header.php"); ?>
     <p>Ví dụ minh họa cách require header.php!</p>
  </body>
</html>

12. Mở / Đóng và Đọc / Ghi file

Mở file trong PHP

Để mở file trong PHP ta sử dụng hàm fopen. Cú pháp fopen($path, $option). Trong đó $path là đường dẫn đến file, $option là quyền thao tác.

Ví dụ

 $path = 'demo.txt';
 $fo = @fopen($path, "r");
 // Kiểm tra file mở thành công không
 if (!$fo) {
 echo 'Mở file không thành công';
 }
 else{
   echo 'Mở file thành công';
 }

Đọc file trong PHP

Có 3 cách đọc file trong PHP là đọc từng ký tự sử dụng fgetc($fo), đọc từng dòng sử dụng fgets($fo), sử dụng feof($fo) và vòng lặp while để đọc từng dòng và từng ký tự, và cuối cùng là đọc hết file sử dụng fread($fp, $size). Trong đó $fo là đối tượng mở file @fopen, $size là kích thước file cần đọc. Có thể dùng filesize($path) để lấy kích thước file.

Ví dụ về đọc từng ký tự file trong PHP

$fo = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
  if (!$fo) {
     echo 'Mở file không thành công';
  }
  else
  {
     // Lặp qua từng ký tự để đọc
     while(!feof($fo))
     {
        echo fgetc($fo);
     }
  }

Ví dụ về đọc từng dòng file trong php

  $fo = @fopen('demo.txt', "r");
   // Kiểm tra file mở thành công không
   if (!$fo) {
      echo 'Mở file không thành công';
   }
   else
   {
       // Lặp qua từng dòng để đọc
       while(!feof($fo))
      {
        echo fgets($fo);
      }
   }

Ví dụ về đọc hết file trong PHP

  $fo = @fopen('demo.txt', "r");
  // Kiểm tra file mở thành công không
  if (!$fo) {
      echo 'Mở file không thành công';
   }
   else
   {  
   // Đọc file và trả về nội dung
     $data = fread($fo, filesize('demo.txt'));
     echo $data;
   }

Ghi file trong PHP

Để ghi file trong PHP sử dụng hàm fwrite($fo, $content). Trong đó $fo là đối tượng mở file @fopen, $content là nội dung bạn muốn ghi vào. Ví dụ như sau:

  $fo = @fopen('demo.txt', "w");   
  // Kiểm tra file mở thành công không   
  if (!$fo) {       
       echo 'Mở file không thành công';   
  } else   
     { 
       $data = 'Nội dung cần ghi vào file';        
       fwrite($fo, $data);   
     }

Đóng file trong PHP

Nếu mở file mà không đóng sẽ gây ra một số lỗi trầm trọng, để đóng file hãy sử dụng fclose($fo). $fo là đối tượng mở file @fopen, ví dụ cụ thể:

  $fo = @fopen('demo.txt', "w");   
  // Kiểm tra file mở thành công không   
  if (!$fp) 
  { echo 'Mở file không thành công';}   
  else
  { $data = 'Nội dung cần ghi vào file';  
    // Ghi file  
    fwrite($fp, $data);       
    // Đóng file       
    fclose($fp);   
  }

Các hàm xử lý file cần thiết khác

Kiểm tra sự tồn tại của File trong PHP

 if (file_exists('demo.txt'))  { echo 'File tồn tại';  }
Kiểm tra quyền ghi của file trong PHP
$fp = @fopen('demo.txt', "w"); // Kiểm tra file mở thành công không 
if (!$fp) {
    echo 'Mở file không thành công'; }  
else {     
    if (is_writable ('demo.txt')) {fwrite($fp, 'Welcome');}  
 fclose($fp); }
Lấy nội dung của file không cần sử dụng hàm đọc file trong PHP:
// Lấy nội dung file  
echo file_get_contents('demo.txt');
Ghi nội dung cho file không cần sử dụng hàm ghi file trong PHP:
file_put_contents('demo.txt', 'noi dung');
Đổi tên file bằng phương thức rename trong PHP:
rename('demo.txt', 'demo2.txt');

Ghi chú: “r”, “w” là các chế độ thực hiện. Có 6 chế độ thực hiện như sau:

Mode Mục đích
r  

Mở file và chỉ đọc.

r+  

Mở file để đọc và ghi

w  

Mở file chỉ ghi, và tạo ra file nếu chưa tồn tại.

w+ Mở file đọc và ghi, và tạo ra file nếu chưa tồn tại.
a  

Mở file chỉ để ghi

a+  

Mở file để đọc và ghi, tạo ra file nếu chưa tồn tại.

13. Hàm trong PHP

Hàm là một trong những thứ cực kỳ quan trọng và phổ biến, không chỉ PHP mà hầu hết các ngôn ngữ lập trình đều có hàm. Cú pháp hàm như sau:

/* Định nghĩa hàm */
  function ham()
  {
     echo "Đây là chuỗi được in ra từ hàm";
  }
 /* Gọi hàm */
 ham();

Bạn cũng có thể truyền tham số vào hàm để xử lý như sau

   function hamTinh($num1, $num2)
   {
     $sum = $numa + $numb;
     echo "Tổng hai số là: $sum";
  }
  hamTinh(12, 23);

Hàm trả về giá trị được viết như sau

   function hamTinh2($num1, $num2)
   {
      $sum = $numa + $numb;
      return $sum;
   }
   $giaTriTraVe = hamTinh2(12, 23);

14. Cookie

Cookie được lưu trữ trên các client phục vụ cho việc theo dõi. Khi các trình duyệt của client truy cập một domain đã lưu cookie, các nội dung cookie sẽ được gửi đến server và có thể sử dụng biến $_COOKIE hoặc $HTTP_COOKIE_VARS["name cookie"].

Thiết lập các cookie cho Client sử dụng PHP

setcookie(name, value, expire, path, domain, security);

Trong đó:

  • Name − Thiết lập tên của Cookie, biến này được sử dụng để truy cập vào Cookie.
  • Value − Là nội dung mà bạn thực sự muốn Cookie lưu trữ.
  • Expiry − Là hạn sử dụng của cookie, tính từ 1/1/1970. Khi hết hạn, cookie sẽ không được sử dụng.
  • Path − Là nơi mà Cookie có hiệu lực. Dấu chéo (/) cho phép Cookie có hiệu lực trên tất cả các thư mục.
  • Domain − Xác định tên miền mà Cookie có hiệu lực.
  • Security − Nó có thể được thiết lập thành 1 để chỉ rằng Cookie này chỉ được gửi bằng truyền dẫn an toàn sử dụng HTTPS, ngược lại nếu thiết lập thành 0, nó có nghĩa rằng Cookie có thể gửi bằng HTTP thông thường.

Ví dụ như sau:

<?php
  setcookie("name", "Nguyen Van Minh", time()+3600, "/","", 0);
  setcookie("age", "25", time()+3600, "/", "", 0);
?>

Các cookie trên sẽ hết hạn trong 1 giờ, được phép lưu trữ trên tất cả thư mục và nó có thể được gửi bằng http thông thường.

Truy cập vào các cookie sử dụng PHP

Bạn có thể truy cập vào các code bằng 2 cách sau

 echo $_COOKIE["name"]. "<br />";
 /* là tương đương với */
 echo $HTTP_COOKIE_VARS["name"]. "<br />";

Nên sử dụng hàm isset để kiểm tra sự tồn tại của cookie

 <?php
  if( isset($_COOKIE["name"]))
  echo "Chào mừng " . $_COOKIE["name"] . "<br />";
  else
  echo "Không tìm thấy cookie ...!!!" . "<br />";
 ?>

Xóa cookie sử dụng PHP

Để xóa những cookie mà website của bạn đã lưu trên client, bạn có thể thiết lập để chỉ ra cho trình duyệt biết cookie đã hết hạn bằng cách:

setcookie( "name", "", time()- 60, "/","", 0);

15. Phiên (Session)

Session hay còn gọi là phiên làm việc sẽ được tạo ra và lưu trữ trên server.

Tạo biến Session

Các biến session sẽ được lưu trữ trong mãng $_SESSION[]. Ví dụ như để lưu trữ một người dùng đăng nhập bạn có thể tạo như sau:

$_SESSION['user'] = $user;

Sử dụng biến Session

Biến Session có thể được sử dụng như một biến lưu trữ hoặc có thể được dùng để kiểm tra các yêu cầu cần thiết. Ví dụ như sau

$user = $_SESSION['user']; hay sử dụng isset() để kiểm tra sự tồn tại của biến.

Hủy các biến Session

Để hủy một biến session xác định bạn sử dụng unset($_SESSION['user']);

Để hủy tất cả biến Session bạn sử dụng session_destroy();

16. Upload file

Tải các tệp tin như hình ảnh, âm thanh, video,… lên website là công việc yêu cầu bắt buột có của hầu hết website. Để làm được điều này, chúng ta sử dụng phương thức Upload file với biến $_FILES.

Tạo form upload file trong PHP

   <form method="post" action="" enctype="multipart/form-data">         
     <input type="file" name="avatar"/>         
     <input type="submit" name="uploadclick" value="Upload"/>     
   </form>

Mã xử lý cụ thể như sau:

<?php // Xử Lý Upload      // Nếu người dùng click Upload      if (isset($_POST['uploadclick'])){          // Nếu người dùng có chọn file để upload          if (isset($_FILES['avatar'])){              // Nếu file upload không bị lỗi,              // Tức là thuộc tính error > 0              if ($_FILES['avatar']['error'] > 0){echo 'File Upload Bị Lỗi'; }              else{ // Upload file                  move_uploaded_file($_FILES['avatar']['tmp_name'], './folder/'.$_FILES['avatar']['name']);                  echo 'File Uploaded'; }          }          else{ echo 'Bạn chưa chọn file upload'; }      } ?>

Ghi chú: hàm move_uploaded_file() sẽ có 2 tham số là $client_path và $server_path, với $client_path là đường dẫn file ở client, cái này sẽ được lấy từ form. và $server_path là đường dẫn ở server bạn muốn lưu thêm tên của file ở cuối nữa. bạn có thể tùy biến tên này cho phù hợp tránh bị trùng như thêm ngày,…

Chúc bạn thành công !

Các bài liên quan

Tuấn ĐC

Tuấn ĐC

Tôi thích tự do, làm những gì mình thích, thích đi nhiều nơi và học được nhiều thứ.

Liên hết bài viết: ""