Code cơ bản trong php – Phần 3

Code cơ bản trong PHP – phần 3 giải thích các biến cookie, session, tiếp nhận dữ liệu từ form, các hàm có sẵn trong php thường dùng


Nhận dữ liệu từ form trong php

Form trong html là vùng do web dev tạo ra để tiếp nhận dữ liệu từ trình duyệt gửi lên (dữ liệu do user nhập). Mỗi tag form có hai thuộc tính quan trọng là action và method. Thuộc tính action dùng để khai báo trang web php mà dữ liệu trong form sẽ gửi lên, thuộc tính method là cách thức form gửi dữ liệu (get hoặc post)

form login

Ví dụ: Để tạo form login như trên (có chỗ nhập username, password và nút submit) thì code html như sau:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet" >
<form action="xuly.php" method="post" id="frmlogin" class="border border-primary col-5 m-auto p-2">
<div class="form-group">
    <label>Username</label> <input name="u" type="text" class="form-control"/>
</div>
<div class="form-group">
    <label>Mật khẩu</label> <input name="p" type="password" class="form-control"/>
</div>
<div class="form-group">
    <input name="nho" type="checkbox"/> Ghi nhớ
</div>
<div class="form-group">
    <input name="btn" type="submit" value="Đăng nhập" class="btn btn-primary"/> 
</div>
</form>

Trong code trên, chúng ta thấy giá trị thuộc tính method là post và thuộc tiính action của form là xuly.php, đó là file mà dữ liệu trong form sẽ đưa lên. Vậy file xuly.php sẽ tiếp nhận dữ liệu thế nào?

<!-- xuly.php -->
<?php print_r($_POST); ?> <hr>
<?php
$username = $_POST['u'];
$password = $_POST['p'];
echo "Username=", $username , "<br>";
echo "Password=", $password , "<br>";
?>
submit form

Nếu method của form là get thì khi tiếp nhận dữ liệu, bạn dùng $_GET thay vì $_POST

Biến cookie trong php

Cookie là các biến được lưu trong trình duyệt để chứa các thông tin phía người dùng. Cookie do trình duyệt quản lý. Bạn có thể tạo biến cookie bằng mã lệnh javascript, hoặc dùng php cũng tạo được.

Mỗi biến cookie có tên, giá trị, thời điểm hết hạn, domain, đường path… Theo quy định của giao thức http, mỗi lần request một trang web, trình duyệt sẽ gửi các biến cookie đang có lên webserver. Trình duyệt cũng tự động xóa các biến cookie hết hạn.

Với tư cách người dùng, khi bạn vào các website để xem thì các website đó sẽ tạo nhiều cookie trong trình duyệt của bạn. Các cookie đó là vô hại, chỉ là các biến lưu thông tin do web developer tạo ta. Và với tư cách là web dev, bạn cũng làm được nhé, dễ thôi.

Để xem các biến cookie đang được lưu trong trình duyệt của mình, bạn thực như sau: gõ phím F12 trong trình duyệt rồi nhắp Application => nhắp Cookies => rồi nhắp domain muốn xem cookie (xem hình dưới)

xem-cac-bien-cookie-trong-trinh-duyet

Để tạo biến cookie trong php, bạn dùng lệnh setcookie như sau:

<?php 
setcookie("TênCookie",giá trị [,Thời điểm quá hạn]);
?>

Trong đó tên cookie tùy bạn đặt, giá trị gán tùy nhu cầu, thời điểm quá hạn tính bằng timestamp. Ví dụ sau tạo 2 cookie:

<?php 
setcookie("username","Van Teo", time()+ 3600*24*7); //tạo cookie sống 7 ngày
setcookie("dalogin",1);
?>
xem cookie đã tạo

Nếu không chỉ định thời điểm quá hạn thì cookie sẽ lưu trong bộ nhớ RAM trong trình duyệt và sẽ mất khi trình duyệt đóng lại. Còn nếu có khai báo thời điểm quá hạn thì giá trị cookie sẽ được ghi trong file và trình duyệt sẽ chỉ xóa khi quá thời hạn chỉ định.

Trong trang php, bạn có thể truy xuất đến các biến cookie do trình duyệt gửi lên theo cú pháp sau: $_COOKIE[TênBiến] . Ví dụ:

<?php 
if (isset($_COOKIE["username"])==true) 
    echo "Chào " . $_COOKIE["username"];  
else
    echo "Chào quý khách";
?>

Để xóa các biến cookie trong trình duyệt, bạn cũng dùng lệnh setcookie nhưng cho thông thố thời điểm quá hạn là số âm. Ví dụ:

<?php 
setcookie("username","", -1 );  // lệnh này xóa cookie tên username
?>

Biến session trong php

Trong php, có một loại biến đặc biệt, đó là biến session. Các biến này không bị mất khi trang web chạy xong. Các biến session sẽ còn tồn tại trên server một khoảng thời gian để sử dụng cho các request sau này của user đó.

Biến session sau khi bạn tạo xong sẽ được PHP giữ lại, và trang web nào trong website cũng có thể dùng được.

Tạo biến session

Tạo biến session và sử dụng biến session trong php thực hiện theo cú pháp sau: $_SESSION[“TênBiến“]  .

Ví dụ cách tạo biến session

  • Trong file session_a.php, code để tạo biến session
<?php 
session_start();
$_SESSION["login"]=1 ; // mọi trang đều đọc được 
?>
  • File session_b.php, code để xem giá trị session đã tạo
<?php 
session_start();
echo $_SESSION["login"]; // sẽ thấy giá trị 1
?>
  • Code để xem giá sự khác nhau giữa biến bình thường và biến session:
<?php
session_start();
if (isset($dem)==false) $dem=1;
$dem++;
echo $dem,"<br/>";

if (isset($_SESSION['count'])==false) $_SESSION['count'] = 1;
$_SESSION['count']++;
echo $_SESSION['count'];
?>

F5 nhiều lần lần để so sánh sự khác nhau của 2 biến dem và count

Hàm xử lý chuỗi trong php

Các hàm chuỗi của php giúp bạn xử lý các chuỗi dữ liệu trong ứng dụng như đổi chữ hoa – thường, đếm số ký tự, tìm chuỗi con, trích chuỗi con, đánh giá một chuỗi có phù hợp format hay không…

Hàm strlen trong php

Hàm strlen trong php dùng để đếm số ký tự của chuỗi. Vi dụ:

<?php
   $str = 'Thay Long Web';
   echo strlen($str); //13
?>

Hàm strpos trong php

Đây là làm giúp bạn tìm vị trí chuỗi con trong chuỗi mẹ. Ví dụ:

<?php
$mystring = 'longnv.name.vn';
$findme = 'a';
$pos = strpos($mystring, $findme);
if ($pos === false) 
    echo "Chuỗi '$findme' không thấy trong '$mystring'";
else 
    echo "Chuôi '$findme' tìm thấy trong '$mystring' ở vị trí $pos";
?>

Hàm str_replace trong php

Hàm str_replace giúp bạn tìm một chuỗi và thay thế bằng một chuỗi khác. Ví dụ:

<?php
   $str = "abc_ABC_abc";
   echo str_replace("abc","xyz",$str); //xyz_ABC_xyz
?>

Hàm strip_tags trong php

Hàm strip_tags trong php dùng để xóa các tag html trong một chuỗi. Ví dụ:

<?php 
  $text = '<p>Test paragraph.</p> <a href="#fragment">Other text</a>';
  echo strip_tags($text);  //Test paragraph. Other text
?>

Hàm strstr trong php

Hàm strstr trong php giúp trích xuất chuỗi con trong chuỗi mẹ. Ví dụ:

<?php
   $email  = 'admin@longnv.name.vn';
   $domain = strstr($email, '@');
   echo $domain; // @longnv.name.vn
?>

Hàm substr trong php

Hàm substr trong php giúp bạn trích chuỗi con trong chuỗi mẹ. Ví dụ:

<?php
   echo substr("abcdef", 0, -1), "<br/>";  // returns "abcde"
   echo substr("abcdef", 2, -1), "<br/>";  // returns "cde"
   echo substr("abcdef", 4, -4), "<br/>";  // returns ""
   echo substr("abcdef", -3, -1) ,"<br/>"; // returns "de"
?>

Hàm mb_convert_case trong php

Hàm mb_convert_case trong php giúp bạn đổi chữ sang hạng khác (chữ hoa, chữ thường). Ví dụ:

<?php
  $str = "lập trình ứng dỤng ";
  echo mb_convert_case($str, MB_CASE_UPPER ,'utf-8'),"<br>";
  echo mb_convert_case($str, MB_CASE_LOWER ,'utf-8'),"<br>";
  echo mb_convert_case($str, MB_CASE_TITLE ,'utf-8'),"<br>";
?>

Hàm md5 trong php

Hàm md5 trong php giúp bạn mã hóa một chuỗi theo giải thuật md5. Ví dụ:

<?php 
  echo md5('123456'); //e10adc3949ba59abbe56e057f20f883e
?>

Hàm sha1 trong php

Hàm sha1 trong php giúp bạn mã hóa một chuỗi theo giải thuật sha-1. Ví dụ:

<?php 
   echo sha1('123456');
?>

Hàm base64_encode và base64_decode:

Hai hàm này dùng để mã hóa 1 chuỗi theo giải thuật base64 và giải mã ngược lại được.. Ví dụ:

<?php
$url = "https://longnv.name.vn";
$mahoa = base64_encode($url); 
echo $mahoa; //aHR0cHM6Ly9sb25nbnYubmFtZS52bg==
?>
<hr>
<?php
$mahoa = "VGjhuqd5IExvbmcgV2Vi";
$str = base64_decode($mahoa); 
echo $str;  //Thầy Long Web
?>

Hàm trim trong php

Hàm trim trong php dùng để cắt các khảong trắng ở đầu và cuối của 1 chuỗi. Ví dụ:

<?php
   $site = "    Thầy Long Web    ";
   $site = trim($site) ; //"Thầy Long Web";
?>

Hàm htmlentities trong php

Hàm htmlentities trong php giúp đổi các ký tự đặc biệt trong html sang dạng entitiy (tức các ký tự thông thường, không còn ý nghĩa đặc biệt với trình duyệt nữa). Ví dụ dấu < có entity là &lt; còn > có entity là &gt;

Việc chuyển này có tác dụng khi bạn cần xuất mã html ra cho user xem, không cần trình duyệt parse. Ví dụ:

<?php
$link = "<a href='https://longnv.name.vn'>Thầy Long Web</a>";
echo $link;        // <a href='https://longnv.name.vn'>Thầy Long Web</a>
?><hr>
<?php
$link = "<a href='https://longnv.name.vn'>Thầy Long Web</a>";
echo htmlentities($link);      // &lt;a href='https://longnv.name.vn'&gt;Thầy Long Web&lt;/a&gt;
?>
ham-htmlentities

Các hàm thời gian trong php

Xử lý thời gian là một trong những code cơ bản php cần biết, vì website nào bạn cũng sẽ dùng đến, như định dạng, tính toán, hiễn thị ,…

Hàm time

Khi gọi hàm time(), bạn sẽ có giá trị timestamp của thời điểm hiện hành (dạng số nguyên, là số giây tính từ giây đầu tiên của năm 1970

<?php 
   echo time(); //1603875567
?>

Hàm checkdate

Checkdate này giúp kiểm tra bộ ba giá trị ngày-tháng-năm có phải là ngày hợp lệ hay không. Trả về true nếu hợp lệ và false nếu không hợp lệ. Khi gọi hàm, bạn truyền 3 tham số là tháng, ngày, năm.

<?php 
echo (checkdate(13,17,2010)==true)? "Hợp lệ":"không hợp lệ"; // không hợp lệ
?>

Hàm date

Hàm date giúp định dạng 1 giá trị timestamp thành dạng ngày tháng năm giờ phút giây … mà bạn muốn. Cú pháp như sau:

date ( string $format [, int $timestamp ] );

Nếu giá trị timestamp không có thì hàm date sẽ fùng thời điểm hiện hành. Ví dụ:

Now:  <?php echo date("d/m/Y H:i:s");?> <br />
Thứ trong tuần: <?php echo date("w");?> <br />
Tên thứ trong tuần: <?php echo date("D") ;?> <br />
Tên thứ trong tuần: <?php echo date("l");?> <br />
Tên tháng: <?php echo date("M") ;?> <br />
Tên tháng:<?php echo date("F");?> <br />
Ngày trong năm: <?php echo date("z");?> <br />

Bảng quy định cho format của hàm date:

formatDescriptionExample
Day  
dNgày trong tháng, có 2 chữ số01 to 31
DTên thứ trong tuần (tên ngắn)Mon through Sun
jNgày trong tháng, 1 hoặc 2 chữ số1 to 31
lTên thứ trong tuần (tên dài)Sunday through Saturday
NSố thứ tự của ngày trong tuần.1 (for Monday) through 7 (for Sunday)
wSố thứ tự của ngày trong tuần0 (for Sunday) through 6 (for Saturday)
zNgày trong năm0 through 365
Week  
WTuần trong nămExample: 42 (the 42nd week in the year)
Month  
FTên đầy đủ của thángJanuary through December
mSố thứ tự của tháng01 through 12
MTên ngắn của thángJan through Dec
nSố thứ tự của tháng1 through 12
tSố ngày trong 1 tháng28 through 31
Year  
YNăm có 4 ký sốExamples: 1999 or 2003
yNăm có 2 ký sốExamples: 99 or 03
Time  
aKý hiệu buổi sang, buổi chiều, chữ thườngam or pm
AKý hiệu buổi sang, buổi chiều, chữ hoaAM or PM
gGiờ theo kiểu 12 giờ, without leading zeros1 through 12
GGiờ theo kiểu 24 giờ,  without leading zeros0 through 23
hGiờ theo kiểu 12 giờ, leading zeros01 through 12
HGiờ theo kiểu 24 giờ, leading zeros00 through 23
iPhút, leading zeros00 to 59
sGiây, with leading zeros00 through 59
uMicroseconds (từ PHP 5.2.2)Example: 654321

Hàm strtotime trong php

Hàm strtotime trong php trả về timestamp tương ứng với chuỗi diễn tả thời gian cung cấp cho hàm. Cú pháp như sau:

strtotime ( string $time [, int $now ] );

Ví dụ sử dụng hàm strtotime:

Now: <?php echo strtotime("now");?> <br />
+1 day: <?php echo date("d/m/Y H:i:s", strtotime("+1 day") );?> <br/>
+1 week: <?php echo date("d/m/Y H:i:s", strtotime("+1 week") );?> <br/>
next Friday: <?php echo date("d/m/Y", strtotime("next Friday") )?> <br>
last Monday: <?php echo date("d/m/Y", strtotime("last Monday") )?> <br />
31 December 2020: <?php echo date("d/m/Y",strtotime("31 December 2020") ); ?>

Hàm file trong php

Code cơ bản trong PHP – phần 3 là bài viết hơi dài, nhưng cần thiết để bạn có nhiều kiến thức để lập trình, phần này sẽ đề cập đến các hàm xử lý file nhé.

Hàm basename

Hàm basename giứp lấy tên file – là phần cuối trong url. Cú pháp như sau:

basename ( string $path, string $suffix)

Ví dụ sử dụng hàm basename

<?php 
$filename = "https://longnv.name.vn/test/ham.php";  
echo basename($filename); //ham.php
?>

Hàm filesize

Hàm filezize trả về kích thước của một file , tính bằng byte. Ví dụ:

<?php 
   $filename = "dendamuoi.html";
   echo filesize($filename).' bytes';
?>

Hàm file_exists

Hàm file_exists giúp kểm tra một file có tồn tại không, nếu có trẻ về true, không có trả về false. Ví dụ:

<?php 
$f = "a.jpg";
if (file_exists($f)==true) echo "Có file"; else echo "Không có file";
?>

Hàm unlink dùng để xóa file. Ví dụ:

<?php 
    unlink("readme2.txt");
?>

Hàm file_get_contents

Hàm file_get_contents giúp đọc nội dung 1 file hoặc 1 url. Ví dụ:

<?php 
   $str = file_get_contents("readme2.txt");
   echo $str;
   $str = file_get_contents("https://longnv.name.vn");
   echo $str;
?>

Hàm file_put_contents

Hàm file_put_contents giúp ghi text vào nội dung file. Cú pháp như sau:

int file_put_contents ( string $filename , mixed $data [, int $flags = 0] )

Nếu file chưa có sẽ được tạo ra, nếu có sẽ bị ghi đè trừ phi $flag có giá trị là FILE_APPEND. Ví dụ:

<?php 
   $filename = 'counter.txt';
   $str = "19686";
   file_put_contents($filename, $str);//Nếu có cờ FILE_APPEND thì str sẽ thêm vào file
?>

Các hàm xử lý số trong php

Đây là phần cuối của bài Code cơ bản trong php – phần 3, 🙂 sắp khỏe rồi nhé. Phần này là các hàm xử lý số (number) trong php. Sau đây là một vài hàm thông dụng:

Hàm round trong php

Hàm round trong php là hàm giúp bạn làm tròn số. Ví dụ:

<?php
echo round(3.6) ; //4
echo round(2.4) ; //2
?>

Hàm ceil trong php

Hàm ceil trong php giúp bạn làm tròn lên . Ví dụ:

<?php
echo ceil(3.9) ; //4
echo ceil(3.1) ; //4
?>

Hàm mt_rand(min,max) trong php

SỬ dụng hàm mt_rand để có 1 số ngẫu nhiên từ min tới max

<?php
echo mt_rand(1 ,31);
?>

Hàm settype trong php

Bạn sử dụng hàm settype để ấn định kiểu dữ liệu cho biến (ép kiểu). Cú pháp như sau: settype(variabletype); trong đó type có thể là boolean, bool, integer, int, float, double, string, array, object, null 

<?php
$thang = "12"; // string
settype($thang, "integer"); // $thang bây giờ là số

Tham khảo thêm về các hàm xử lý số: https://www.w3schools.com/php/php_ref_math.asp


Bài viết Code cơ bản trong PHP – phần 3 này đã đề cập đến cách tiếp nhận dữ liệu từ form, cách dùng biến cookie, biến session và đề cập đến các hàm chuỗi, hàm mảng và hàm file thường dùng. Các kiến thức đề cập chỉ là sơ qua, chưa nói hết ứng dụng của chúng. Mời bạn xem tiếp trong các bài sau.

Mời bạn xem các bài liên quan: Code cơ bản trong php – phần 1 và Code cơ bản trong php – phần 2