I gwblhau gweithgareddau cais ac ymateb yn gywir, rhaid i dudalennau gwe storio data dros dro neu'n barhaol. Mae gan bron bob iaith datblygu gwe sesiynau a chwcis i storio gwybodaeth cleientiaid a gweinyddwyr, gan ddarparu profiad di-dor a diogel. Bydd yr erthygl hon yn mynd dros sesiynau PHP a chwcis yn fanwl.
Beth yw cwcis a sesiynau?
Ffeiliau bach yw cwcis sy'n cael eu cadw ar gyfrifiadur y cleient a gallant gynnwys gwybodaeth am y defnyddiwr, y ofyn am, yr atebiad, a'r gweinydd. Cânt eu danfon i'r gweinydd ochr yn ochr â cheisiadau, gan adael i'r gweinydd adnabod y defnyddiwr. Gall defnyddiwr hefyd adeiladu ei rai ei hun cwcis a storio data ynddynt i'w cyrchu'n ddiweddarach. Mae sesiwn yn wrthrych sy'n storio data sy'n ymwneud ag ymwelydd penodol trwy gydol eu hymweliadau, gan gynnwys gwybodaeth mewngofnodi, manylion cyfrif, a chofnodion ffurflenni eraill.
Sut i greu cwci yn PHP
PHP's setcookie()
Defnyddir y dull i greu cwci newydd. Mae'r gystrawen gyffredinol ar gyfer creu cwci yn PHP fel a ganlyn:
setcookie(name, value, expire, path, domain, secure, httponly);
Y paramedr cyntaf, name
, yw'r unig un gofynnol. Mae gweddill y paramedrau yn ddewisol. Dyma enghraifft o greu cwci:
setcookie("my_first_cookie","It contains a string");
Sut i adfer cwcis a'u gwerth?
Mae PHP yn storio cwcis yn y $_COOKIE byd-eang newidyn. I gael cwci a'i werth, rhowch enw'r cwci i'r newidyn byd-eang. Dyma enghraifft o ddefnyddio'r newidyn byd-eang i gaffael cwci:
$_COOKIE["my_first_cookie"] // will return "It contains a string"
Sut i ddileu cwcis?
Gellir ffurfweddu cwci i ddod i ben ar ôl cyfnod penodol o amser, ac ar ôl hynny bydd yn cael ei ddinistrio ar unwaith. Dyma enghraifft o gynhyrchu cwci sy'n dod i ben am ddiwrnod amser:
setcookie("my_first_cookie","It contains a string", time() + (86400), "/"); // 86400 = 1 day
Oherwydd bod yn rhaid i gyfnod dod i ben y cwci fod mewn eiliadau, fe wnaethom ddefnyddio'r amser() dull i ddychwelyd yr amser presennol ac ychwanegu faint o eiliadau mewn diwrnod (86400).
Sut i ddiweddaru cwcis?
Yr un cwci() gellir defnyddio swyddogaeth i ddiweddaru cwci. Yn syml, galw ar y swyddogaeth gydag enw'r cwci a gosod y dadleuon newydd. Dyma enghraifft o newid cyfnod dod i ben cwci i ddau ddiwrnod:
setcookie("my_first_cookie","It contains a string", time() + (86400 * 2), "/"); // 86400 = 1 day
Mae'n werth nodi bod cwcis yn URL yn awtomatig amgodio pan gaiff ei gyflwyno mewn cais a'i ddadgodio pan ddaw i law. Gellir defnyddio'r ffwythiant setrawcookie() i ddadactifadu hyn.
Gallwch hefyd ddileu cwci trwy ddiweddaru ei amser dod i ben i ddyddiad blaenorol. Dyma enghraifft o ddileu cwci ar unwaith:
setcookie("my_first_cookie","", time() - 3600);
Ydy eich porwr yn caniatáu cwcis?
Dyma ffordd syml o wirio a yw eich porwr wedi galluogi cwcis:
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
Deall Sesiynau PHP
Nid yw'r protocol HTTP yn cadw statws defnyddiwr ar dudalen we. sesiynau yn cael eu defnyddio i ddatrys yr her o ddyfalbarhau a chael mynediad at newidyn ar draws sawl tudalen we. Yn y rhan hon, byddwn yn edrych ar sut i ddefnyddio sesiynau PHP i storio a chyrchu gwerthoedd.
Dechrau Sesiwn
Yn PHP, defnyddiwch y sesiwn dechrau( ) dull i gychwyn sesiwn. Mae'r dull hwn yn dechrau sesiwn newydd neu'n dychwelyd i un sy'n bodoli eisoes. Mae'n hanfodol sylwi bod yn rhaid galw'r swyddogaeth hon cyn i unrhyw allbwn gael ei drosglwyddo i'r porwr; fel arall, bydd gwall yn cael ei gynhyrchu. Dyma enghraifft o sut i ddechrau sesiwn:
<?php
session_start();
Storio Data
Ar ôl dechrau sesiwn, gallwch ddefnyddio'r newidyn byd-eang $_SESSION i gadw data yn y sesiwn. Mae'r data'n cael ei gadw fel parau gwerth allweddol, lle mae'r allwedd yn amrywiol enw a gwerth yw'r data i'w gofnodi. Dyma enghraifft o storio data mewn sesiwn:
<?php
session_start();
$_SESSION['username'] = "JohnDoe";
Adalw Data
I adalw data o sesiwn, gallwch ddefnyddio'r $_SESSION
newidyn byd-eang a chyrchwch allwedd y data rydych chi am ei adfer. Dyma enghraifft o adfer data o sesiwn:
<?php
session_start();
echo $_SESSION['username']; // will output "JohnDoe"
Dileu Data
I ddileu data o sesiwn, gallwch ddadosod allwedd y data rydych chi am ei dynnu. Dyma enghraifft o ddileu data o sesiwn:
<?php
session_start();
unset($_SESSION['username']);
Dinistrio sesiwn
I ddinistrio sesiwn, gallwch ddefnyddio'r session_destroy()
swyddogaeth. Bydd y swyddogaeth hon yn dileu'r holl ddata sydd wedi'i storio yn y sesiwn ac yn dod â'r sesiwn i ben. Dyma enghraifft o ddinistrio sesiwn:
<?php
session_start();
session_destroy();
Holi ac Ateb
Beth yw pwrpas cwcis yn PHP?
Ffeiliau bach yw cwcis sy'n cael eu storio ar gyfrifiadur y cleient a all gynnwys gwybodaeth sy'n ymwneud â'r defnyddiwr, cais, ymateb, a gweinydd. Fe'u hanfonir ynghyd â cheisiadau i'r gweinydd, gan ganiatáu i'r gweinydd adnabod y defnyddiwr.
Sut allwn ni greu cwci yn PHP?
PHP's setcookie()
Defnyddir y dull i greu cwci newydd. Mae'n bwysig nodi bod y paramedr cyntaf, name
, yw'r unig un gofynnol, tra bod gweddill y paramedrau yn ddewisol.
Sut allwn ni gael gwerth cwci yn PHP?
Mae cwcis yn cael eu storio yn y newidyn byd-eang $_COOKIE yn PHP. I gael cwci a'i werth, gallwch drosglwyddo enw'r cwci i'r newidyn byd-eang.
Sut allwn ni ddileu cwci yn PHP?
Gallwch chi osod amser dod i ben ar gyfer cwci, ac ar ôl hynny bydd yn cael ei ddileu yn awtomatig. Gallwch hefyd ddiweddaru amser dod i ben cwci i ddyddiad gorffennol er mwyn ei ddileu ar unwaith.
Beth yw pwrpas y sesiynau yn PHP?
Defnyddir sesiynau i barhau a chael mynediad at werth ar draws tudalennau gwe lluosog.
Ymarferion:
- Beth yw'r gwahaniaeth rhwng sesiwn a chwci?
- Sut ydych chi'n dechrau sesiwn?
- Sut ydych chi'n gosod newidyn sesiwn?
- Sut ydych chi'n dinistrio sesiwn?
- Sut ydych chi'n gosod cwci?
- Sut ydych chi'n adfer gwerth cwci?
- Sut ydych chi'n dadosod cwci?
Atebion:
- Mae sesiwn yn ffordd i storio data ar y gweinydd, tra bod cwci yn ffordd i storio data ar gyfrifiadur y cleient. Defnyddir sesiynau fel arfer ar gyfer dilysu ac awdurdodi, tra bod cwcis yn cael eu defnyddio ar gyfer dewisiadau defnyddwyr ac olrhain.
- I ddechrau sesiwn yn PHP, defnyddiwch y swyddogaeth session_start().
- I osod newidyn sesiwn yn PHP, defnyddiwch yr arae superglobal $_SESSION, fel hyn: $_SESSION['variable_name'] = 'gwerth';
- I ddinistrio sesiwn yn PHP, defnyddiwch y swyddogaeth session_destroy().
- I osod cwci yn PHP, defnyddiwch y swyddogaeth setcookie(), fel hyn: setcookie ('cookie_name', 'value', time() + (86400 * 30), '/');
- I adalw gwerth cwci yn PHP, defnyddiwch yr arae superglobal $_COOKIE, fel hyn: adlais $_COOKIE['cookie_name'];
- I ddadosod cwci yn PHP, defnyddiwch y swyddogaeth setcookie() gyda dyddiad dod i ben yn y gorffennol, fel felly: setcookie ('cookie_name',", time() - 3600);