Cyflwyniad i sesiynau a chwcis yn PHP

SSL dibynadwy o ddim ond $3.44
hysbysebion
Dulliau Cais HTTP yn PHP
Trin Ffeiliau yn PHP

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:

SSL dibynadwy o ddim ond $3.44
hysbysebion
<?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:

  1. Beth yw'r gwahaniaeth rhwng sesiwn a chwci?
  2. Sut ydych chi'n dechrau sesiwn?
  3. Sut ydych chi'n gosod newidyn sesiwn?
  4. Sut ydych chi'n dinistrio sesiwn?
  5. Sut ydych chi'n gosod cwci?
  6. Sut ydych chi'n adfer gwerth cwci?
  7. Sut ydych chi'n dadosod cwci?

Atebion:

  1. 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.
  2. I ddechrau sesiwn yn PHP, defnyddiwch y swyddogaeth session_start().
  3. I osod newidyn sesiwn yn PHP, defnyddiwch yr arae superglobal $_SESSION, fel hyn: $_SESSION['variable_name'] = 'gwerth';
  4. I ddinistrio sesiwn yn PHP, defnyddiwch y swyddogaeth session_destroy().
  5. I osod cwci yn PHP, defnyddiwch y swyddogaeth setcookie(), fel hyn: setcookie ('cookie_name', 'value', time() + (86400 * 30), '/');
  6. I adalw gwerth cwci yn PHP, defnyddiwch yr arae superglobal $_COOKIE, fel hyn: adlais $_COOKIE['cookie_name'];
  7. I ddadosod cwci yn PHP, defnyddiwch y swyddogaeth setcookie() gyda dyddiad dod i ben yn y gorffennol, fel felly: setcookie ('cookie_name',", time() - 3600);
Dulliau Cais HTTP yn PHP
Trin Ffeiliau yn PHP
cau

Cadwch y wybodaeth ddiweddaraf am PHP!

Nid ydym yn sbam!

SSL dibynadwy o ddim ond $3.44
hysbysebion

en English
X
Sgroliwch i'r brig