Sesiynau a Chwcis PHP

P

Mae angen i dudalennau gwe storio'r data dros dro neu'n barhaol i gyflawni'r gweithrediadau cais ac ymateb yn llwyddiannus. Mae bron pob iaith datblygu gwe yn darparu sesiynau a chwcis i storio gwybodaeth i'r cleient a'r gweinydd. Mae'n gyfrifol am brofiad llyfn a diogelwch. Yn y tiwtorial PHP hwn, byddwch chi'n dysgu am sesiynau PHP a chwcis. Felly, gadewch i ni blymio i mewn iddo.

Beth yw cwcis yn PHP?

Ffeiliau bach wrth storio cyfrifiadur y cleient yw cwcis. Mae'r cwcis hyn yn cael eu storio yn y porwr a gallant gynnwys gwybodaeth sy'n ymwneud â'r defnyddiwr, cais, ymateb, a'r gweinydd. Mae'r cwcis hyn yn mynd gyda'r cais i'r gweinydd sy'n caniatáu i'r gweinydd adnabod y defnyddiwr.

Gall defnyddiwr hefyd greu ei gwcis ei hun a storio data ynddynt. Yn ddiweddarach, gall y defnyddiwr gyrchu'r cwcis hyn.

Sut i greu cwci yn PHP?

Mae dull setcookies PHP () yn creu cwci newydd.

setcookie(name, value, expire, path, domain, secure, httponly);

Yn y gystrawen gyffredinol uchod o gwci PHP, dim ond y paramedr cyntaf sy'n ofynnol sef enw'r cwci. Mae gweddill y paramedrau yn ddewisol.

setcookie("my_first_cookie","It contains string");

Sut i gael cwcis a'u gwerth yn PHP?

Mae pob cwci yn storio yn y newidyn byd-eang PHP $ _COOKIE. I gael y cwci a'i werth, dim ond trosglwyddo enw'r cwci i'r newidyn byd-eang. Gan ystyried y cwci uchod a grëwyd yn yr enghraifft, edrychwch ar y gystrawen ganlynol i gael y cwci gan ddefnyddio globalau.

$_COOKIE["my_first_cookie"] // will return "It contains String"

Sut i ddileu cwcis yn PHP?

Gallwch chi osod yr amser dod i ben ar gyfer cwci. Ar ôl yr amser dod i ben, bydd y cwci yn dileu yn awtomatig. Edrychwch ar yr enghraifft isod, lle rydyn ni'n creu cwci ac yn gosod ei hamser dod i ben.

setcookie("my_first_cookie","It contains String", time() + (86400), "/"); // 86400 = 1 day

Yn yr enghraifft uchod, bydd y cwci “my_first_cookie” yn dod i ben ar ôl un diwrnod. Cadwch mewn cof bod yn rhaid i'r amser dod i ben ar gyfer y cwci fod mewn nifer o eiliadau. Felly, gwnaethom ddefnyddio'r swyddogaeth amser () sy'n dychwelyd yr amser cyfredol ac yn ychwanegu nifer yr eiliadau mewn diwrnod hy 86400.

Sut i ddiweddaru cwci yn PHP?

Gallwch chi ddiweddaru cwci gan ddefnyddio'r un dull setcookie (). Ffoniwch y swyddogaeth yn ôl enw'r cwci a gallwch chi osod paramedrau eraill y cwci.

setcookie("my_first_cookie","It contains String", time() + (86400 * 2), "/"); // 86400 = 1 day

Yn yr enghraifft uchod, rydym wedi galw'r dull setcookie () ar gyfer yr un cwci yr ydym wedi'i greu yn yr enghraifft flaenorol. Tybiwch, rydyn ni am gynyddu amser dod i ben y cwci o un diwrnod i ddau ddiwrnod. Yn syml, addaswch baramedr yr amser dod i ben.

Nodyn: Pan fydd cwcis wedi'u gosod, yn ddiofyn maent wedi'u hamgodio URL wrth anfon y cais a'u dadgodio pan dderbynnir hwy. I analluogi amgodio URL, gallwch ddefnyddio dull setrawcookie ().

Gan eich bod bellach yn gyfarwydd â diweddaru'r cwcis, gadewch inni roi dull arall i ddileu cwci yn arbennig, os nad oes amser dod i ben ar gyfer y cwci. Yn syml, diweddarwch amser dod i ben y cwci i'r gorffennol.

setcookie("my_first_cookie","", time() - 3600); // delete the cookie immediately

Gwiriwch a yw'ch porwr yn caniatáu cwcis?

Dyma'r tric syml y gallwch wirio bod porwr wedi galluogi'r cwcis ai peidio. Gosod cwci gan ddefnyddio dull setcookie (). Fel y gwyddom o'r dysgu blaenorol bod arae $ _COOKIE yn storio'r holl gwcis. Felly, gwiriwch gyfrif yr arae hon.

<?php
if(count($_COOKIE) > 0) {
  echo "Cookies are enabled.";
} else {
  echo "Cookies are disabled.";
}
?>

Sesiynau PHP

Os ydych chi ar eich cyfrifiadur ac yn defnyddio rhaglen am beth amser ac yna ei gau. Bydd gan y cyfrifiadur gofnod o ddefnyddiwr y rhaglen a hefyd olrhain y camau a gyflawnwyd gyda'r rhaglen. Ond, ar y wefan, nid yw protocol HTTP yn cynnal cyflwr y defnyddiwr.

Os ydych chi am barhau a chyrchu gwerth ar sawl tudalen we, mae'r sesiwn yno i ddatrys y broblem hon. Yn yr adran hon, byddwn yn dysgu sut i weithio gyda sesiynau PHP i storio a chyrchu gwerthoedd.

Nodyn: Nid yw'r sesiwn yn storfa barhaol. Mae sesiwn yn cychwyn wrth agor y dudalen we ac yn gorffen pan fyddwch chi'n cau'r we honno. Y gronfa ddata yw'r ateb ar gyfer storio parhaol y byddwn yn ei ddysgu yn adran gronfa ddata sesiynau tiwtorial PHP.

Sut i ddechrau sesiwn yn PHP?

I ddechrau sesiwn yn PHP, defnyddiwch swyddogaeth session_start (). Sicrhewch, dylid galw'r swyddogaeth hon ar ben y sgript PHP. Y cam nesaf yw storio'r gwerth yn arae fyd-eang y sesiwn. Edrychwch ar yr enghraifft gyflawn o ddechrau sesiwn a storio gwerthoedd ynddo.

<?php
// Start the session
session_start();

// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

Sut i gael gwerth y sesiwn o'r arae fyd-eang?

Yn syml, wrth i ni gyrchu gwerth cwci allan o'r arae fyd-eang cwci, defnyddiwch arae fyd-eang y sesiwn i gael mynediad at werth y sesiwn. Edrychwch ar yr enghraifft ganlynol.

echo "Favorite animal is " . $_SESSION["favanimal"] . ".";

Sut i ddiweddaru newidyn y sesiwn?

Ffoniwch arae fyd-eang y sesiwn gydag enw'r newidyn sesiwn a neilltuwch y gwerth newydd iddo.

$_SESSION["favcolor"] = "yellow";

Dileu Sesiwn yn erbyn Dinistrio Sesiwn

Mae cael gwared ar sesiwn yn golygu cael gwared ar yr holl werthoedd sydd wedi'u storio yn y sesiwn gyfredol.

session_unset();

Mae dinistrio sesiwn yn golygu atal y sesiwn a ddechreuwyd gan ddefnyddio session_start ()

session_destroy();

Amddiffynnir sesiynau gan allwedd arbennig yn erbyn y defnyddiwr. Maent yn cael eu storio gydag allwedd fel “765487cf34ert8dede5a562e4f3a7e12” yn y cyfrifiadur. Felly, pan fydd angen i'r sesiwn gyrchu'r gwerth sydd wedi'i storio ynddo ar dudalen we arall o'r wefan, mae'r allwedd hon yn cael ei chyfateb â'r allwedd sydd wedi'i storio yng nghyfrifiadur y cleient.

I gael cyfeirnod cyflawn o sesiynau php, ewch i yma

Ychwanegu sylw

Rhwydwaith Tiwtoriaid

Dysgwch PHP o A i Z