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
- Biến cookie trong php
- Biến session trong php
- Hàm xử lý chuỗi trong php
- Các hàm thời gian trong php
- Hàm file trong php
- Các hàm xử lý số trong php
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)
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>";
?>
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 trong trình duyệt
Để 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)
Tạo cookie trong php
Để 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); ?>
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.
Sử dụng cookie
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 biến cookie trong php
Để 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ụ:
<?phpecho
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à < còn > có entity là >
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); // <a href='https://longnv.name.vn'>Thầy Long Web</a>
?>
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:
format | Description | Example |
Day | ||
d | Ngày trong tháng, có 2 chữ số | 01 to 31 |
D | Tên thứ trong tuần (tên ngắn) | Mon through Sun |
j | Ngày trong tháng, 1 hoặc 2 chữ số | 1 to 31 |
l | Tên thứ trong tuần (tên dài) | Sunday through Saturday |
N | Số thứ tự của ngày trong tuần. | 1 (for Monday) through 7 (for Sunday) |
w | Số thứ tự của ngày trong tuần | 0 (for Sunday) through 6 (for Saturday) |
z | Ngày trong năm | 0 through 365 |
Week | ||
W | Tuần trong năm | Example: 42 (the 42nd week in the year) |
Month | ||
F | Tên đầy đủ của tháng | January through December |
m | Số thứ tự của tháng | 01 through 12 |
M | Tên ngắn của tháng | Jan through Dec |
n | Số thứ tự của tháng | 1 through 12 |
t | Số ngày trong 1 tháng | 28 through 31 |
Year | ||
Y | Năm có 4 ký số | Examples: 1999 or 2003 |
y | Năm có 2 ký số | Examples: 99 or 03 |
Time | ||
a | Ký hiệu buổi sang, buổi chiều, chữ thường | am or pm |
A | Ký hiệu buổi sang, buổi chiều, chữ hoa | AM or PM |
g | Giờ theo kiểu 12 giờ, without leading zeros | 1 through 12 |
G | Giờ theo kiểu 24 giờ, without leading zeros | 0 through 23 |
h | Giờ theo kiểu 12 giờ, leading zeros | 01 through 12 |
H | Giờ theo kiểu 24 giờ, leading zeros | 00 through 23 |
i | Phút, leading zeros | 00 to 59 |
s | Giây, with leading zeros | 00 through 59 |
u | Microseconds (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
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(variable, type); 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