https://secure.vinahost.vn/ac/knowledgebase/135/Hng-dn-c-bn-v-HTACCESS-va-cac-chc-nng.html
8/9/20
8/8/20
Thêm giỏ hàng (add cart) cho project bán hàng
Tính năng thêm giỏ hàng có rất nhiều thuật toán code dựa vào cách lưu trữ và tư duy của coder.
Chúng ta dùng mảng SESSION để lưu thông tin mã hàng + số lượng. Ví dụ đối với project bán sách:
SESSION['cart']=['td01'=>3, 'td02'=> 4]
8/4/20
Mô Hình MVC
8/2/20
Ứng dụng SESSION trong trang admin
if (!isset($_SESSION)) session_start();
include 'function.php';
$u= postIndex('u');
$p= postIndex('p');
if ($u=='admin' && $p=='123456') //dung
{
$_SESSION['admin']="Admin";
header('location:index.php');
exit;
}
header('location:dangnhap.html');
function getIndex($key, $valueDefault='')
{
return isset($_GET[$key])?$_GET[$key]:$valueDefault;
}
function postIndex($key, $valueDefault='')
{
return isset($_POST[$key])?$_POST[$key]:$valueDefault;
}
if (!isset($_SESSION)) session_start();
if (!isset($_SESSION['admin']))
{
header('location:dangnhap.html');
exit;
}
?>
Trang chu admin: Chao <?php echo $_SESSION['admin'] ?> <hr>
<a href="dangxuat.php">Thoat</a>
<hr>
<a href="themsp.php">Them sp</a> <br>
if (!isset($_SESSION)) session_start();
unset($_SESSION['admin']);
header('location:dangnhap.html');
if (!isset($_SESSION)) session_start();
if (!isset($_SESSION['admin']))
{
header('location:dangnhap.html');
exit;
}
?>
chuc nang them sp
$_SESSION ARRAY
Session dùng để lưu trữ thông tin, trao đổi dữ liệu giữa các trang web.
các ưu điểm so với cookie:
-cookie phải gửi dữ liệu (cookie-data) lên webserver khi request 1 URL=> giảm hiệu suất truy cập web, với session dữ liệu được lưu trên webserver.
-dữ liệu session ko lưu tại computer users, mà lưu tại server==> an toàn hơn, ko bị đánh cấp, sửa đổi.
$_SESSION được ứng dụng trong việc:
- chức năng đăng nhập (quyền truy cập đến 1 trang sau khi đã login)/ đăng xuất trang web
-đếm số lượt truy cập web
-tính năng mua hàng (giỏ hàng) trong website bán hàng...
Ta cần dùng lệnh session_start(); để khởi tạo biến session, resume giá trị cho nó.
Ví dụ liên kết biến $_SESSION['dem'] giữa các trang: vidu1, và vidu2 có chức năng tăng $n- lượt truy cập, vidu3, hủy giá trị biến $_SESSION['dem'], để hủy toàn bộ mảng $_SESSION ta dùng lệnh: session_destroy();
file vidu1.php
<?php
if(!isset($_SESSION)) session_start();
$n=isset($_SESSION['dem'])?$_SESSION['dem']:0;
$n++;
$_SESSION['dem']=$n;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>session</title>
</head>
<body>
<h1>VD1</h1>
ban da truy cap website nay <?php echo $n ?>lan
<a href="vidu2.php">
</html>
file vidu2.php
<?php
if(!isset($_SESSION)) session_start();
$n=isset($_SESSION['dem'])?$_SESSION['dem']:0;
$n++;
$_SESSION['dem']=$n;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>session</title>
</head>
<body>
<h1>VD2</h1>
ban da truy cap website nay <?php echo $n ?> lan
<a href="vidu1.php">VD1</a>
<a href="vidu3.php">reset session</a>
</html>
file vidu3
<?php
if(!isset($_SESSION)) session_start();
unset($_SESSION['dem']);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>session</title>
</head>
<body>
<h1>VD3</h1>
Quay la vidu1
<a href="vidu1.php">VD1</a>
</body>
</html>
8/1/20
Lấy giá trị mảng $_GET/ $_POST trong mô hình MVC
$obj=new $c();
Nội dung file function.php,
function getIndex($index, $defaultValue='')
{
if (isset($_GET[$index])) return $_GET[$index];
else return $defaultValue;
}
function postIndex($index, $defaultValue='')
{
if (isset($_POST[$index])) return $_POST[$index];
else return $defaultValue;
}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Form</title>
</head>
<body>
<form action="demo.php" method="POST">
Username<input type="text" name="username" ><br>
Password<input type="password" name="password"><br>
<input type="submit" name="submit">
</form>
</body>
</html>
include 'myclass/function.php';
$u=postIndex('username');
$p=postIndex('password');
echo "ban da nhap vao username: $u"." password: $p";
autoloadclass-Tự động load function ()
class A
{
public $a1;
public function __construct()
{
$this->a1=10;
echo "<br> Ham tao lop A <br>";
}
public function f1A()
{
echo "<br> Ham F1 cua class A duoc goi <br>";
}
}
function autoloadclass($className)
{
if(is_file("myclass/$className.php"))
{
include "myclass/$className.php";
}
else{
echo "Khong ton tai (chua tao) $className.php";
exit;
}
}
spl_autoload_register('autoloadclass');
$x = new A();
echo "chung ta hay goi method F1A cua class A <br>";
Ham tao lop A
chung ta hay goi method F1A cua class A
Ham F1 cua class A duoc goi
Mảng $_SERVER
Mảng $_SERVER là 1 mảng
được xác định trước, được thiết lập bới máy chủ web (wampserver)
Thực hiện print toàn bộ thông tin về mảng $_SERVER
<?php
echo
"<pre>";
print_r($_SERVER);
kết quả:
-Array
(
[HTTP_HOST] => localhost
[HTTP_CONNECTION]
=> keep-alive
[HTTP_UPGRADE_INSECURE_REQUESTS]
=> 1
[HTTP_USER_AGENT]
=> Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/84.0.4147.105 Safari/537.36
[HTTP_ACCEPT]
=> text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
[HTTP_SEC_FETCH_SITE]
=> same-origin
[HTTP_SEC_FETCH_MODE]
=> navigate
[HTTP_SEC_FETCH_USER]
=> ?1
[HTTP_SEC_FETCH_DEST]
=> document
[HTTP_REFERER] =>
http://localhost/demo/mangserver/
[HTTP_ACCEPT_ENCODING]
=> gzip, deflate, br
[HTTP_ACCEPT_LANGUAGE]
=> en-US,en-CA;q=0.9,en;q=0.8,zh-CN;q=0.7,zh;q=0.6
[PATH]
=> E:\Program Files (x86)\Common Files\Intel\Shared
Files\cpp\bin\Intel64;E:\Windows\system32;E:\Windows;E:\Windows\System32\Wbem;E:\Windows\System32\WindowsPowerShell\v1.0\;E:\Program
Files (x86)\NVIDIA Corporation\PhysX\Common;E:\wamp64\bin\php\php7.4.0;
[SystemRoot]
=> E:\Windows
[COMSPEC]
=> E:\Windows\system32\cmd.exe
[PATHEXT]
=> .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR]
=> E:\Windows
[SERVER_SIGNATURE]
=>
Apache/2.4.41 (Win64)
PHP/7.3.12 Server at localhost Port 80
[SERVER_SOFTWARE]
=> Apache/2.4.41 (Win64) PHP/7.3.12
[SERVER_NAME]
=> localhost
[SERVER_ADDR]
=> ::1
[SERVER_PORT]
=> 80
[REMOTE_ADDR]
=> ::1
[DOCUMENT_ROOT]
=> E:/wamp64/www
[REQUEST_SCHEME]
=> http
[CONTEXT_PREFIX]
=>
[CONTEXT_DOCUMENT_ROOT] =>
E:/wamp64/www
[SERVER_ADMIN]
=> wampserver@wampserver.invalid
[SCRIPT_FILENAME]
=> E:/wamp64/www/demo/mangserver/mangserver.php
[REMOTE_PORT]
=> 50746
[GATEWAY_INTERFACE]
=> CGI/1.1
[SERVER_PROTOCOL]
=> HTTP/1.1
[REQUEST_METHOD]
=> GET
[QUERY_STRING]
=>
[REQUEST_URI]
=> /demo/mangserver/mangserver.php
[SCRIPT_NAME]
=> /demo/mangserver/mangserver.php
[PHP_SELF]
=> /demo/mangserver/mangserver.php
[REQUEST_TIME_FLOAT]
=> 1596252364.334
[REQUEST_TIME]
=> 1596252364
)
In ra các thông tin cần
thiết:
<?php
echo "tra ve ten
file php dang chay <br>";
echo
$_SERVER['SCRIPT_FILENAME']; echo "<br>";
echo "tra ve ten
may chu <br>";
echo
$_SERVER['SERVER_NAME'];echo "<br>";
echo "tra ve duong
dan thu muc dang chay file php <br>";
echo
$_SERVER['HTTP_REFERER'];echo "<br>";
echo "tra ve
ten&phien ban webserver <br>";
echo
$_SERVER['SERVER_SOFTWARE'];echo "<br>";
echo "tra ve phuong
thuc yeu cau";
echo
$_SERVER['REQUEST_METHOD'];echo "<br>";
echo "The query
string is: ".$_SERVER['QUERY_STRING'];echo "<br>";
kết quả:
tra ve ten file php dang
chay
E:/wamp64/www/demo/mangserver/mangserver.php
tra ve ten may chu
localhost
tra ve duong dan thu muc
dang chay file php
http://localhost/demo/mangserver/
tra ve ten&phien ban
webserver
Apache/2.4.41 (Win64) PHP/7.3.12
tra ve phuong thuc yeu cau
GET
The query string is: