✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Peaksite kasutama PHP filtreerimisfunktsioone, 2. osa

6

Eelmises postituses rääkisin põhjustest, miks PHP filtreerimisfunktsioonide kasutamine on pigem kasulik kui mitte.

Lühidalt, see aitab tagada keele sisseehitatud valideerimise taseme, et me ei peaks midagi ümber kirjutama. Loomulikult on hoiatusi.

Näiteks kui peate kinnitama mitte-ladina tähtedega väärtust, peate seda tegema üksi ja rakendama valideerimist võib-olla regulaaravaldise abil.

Kui aga kasutate e-posti aadresse, URL-e, numbreid, IP-aadresse ja palju muud, siis on teil hea võimalus kasutada midagi, mis on juba olemas.

Igatahes puudutab kõik eelnev ikkagi muutujate filtreerimist. Aga sisendid? See tähendab, et need, mis pärinevad $_POSTvõi $_GET. Sarnast strateegiat on võimalik kasutada erineva funktsiooni ja erineva filtrikomplektiga.

Aga kui sa mõistad viimases postituses esitatud põhitõdesid, siis see postitus väga erinev ei ole.

PHP filtreerimisfunktsioonid, 2. osa: sisendid

Sisendite filtreerimine toimub filter_inputfunktsiooni abil. Selle konkreetse funktsiooni määratlus on järgmine:

Hangib konkreetse välismuutuja nime järgi ja valikuliselt filtreerib selle

PHP käsiraamat

Ja nagu viimati mainitud, kõlab see pisut veidralt, kuni mõistate, mis filtrid on. Õnneks käsitlesime seda eelmises postituses. Ja kuigi see postitus keskendub konkreetselt POST(ja väga lühidalt GET).

Samas on ka teisi filtreid. Ja nende hulka kuuluvad:

  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

Igatahes, kuna kaks kõige levinumat toimingut, mida WordPressis nägema kipun, on POSTja GET, siis tundub oluline need kaks siia lisada.

Peaksite kasutama PHP filtreerimisfunktsioone, 2. osa

Nende funktsioonide kasutamine on triviaalselt lihtne. Oletagem, et teil on väärtus, mis pärineb millestki, mille kasutaja on vormis esitanud, ja nad saadavad selle serverisse, kasutades POSTpäringut võtmega, näiteks firstname.

Kood selle kinnitamiseks võib välja näha umbes selline:

  • filter_input(INPUT_POST, 'firstname');

Mida on piisavalt lihtne mõista, sest see võtab lihtsalt võtme, filtreerib selle ja tagastab seejärel väärtuse. Ja kuna see tagastab väärtuse, saame enne töö jätkamist seadistada kaitseklausli:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3}

Kui kõik on kontrollitud, saame edasi liikuda ja teha kõik, mida vajame kasutajateabega. Võib-olla peame selle mingil põhjusel praeguse postitusega seostama:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3} 4  5$firstname = filter_input(INPUT_POST, 'firstname'); 6update_post_meta(get_the_ID(), 'acme-firstname', $firstname); 7  8// Other code you may use...

Lisaks saate erinevate olemasolevate filtrite abil teavet veelgi paremini kaitsta. Need edastatakse filter_inputfunktsioonile kolmanda parameetrina.

Ja mis sellest GET?

Selle funktsiooni hea külg on see, et üldiselt kehtivad samad reeglid, mis kehtivad ka selle funktsiooni puhul, POSTvälja arvatud juhul, kui kasutate INPUT_POST, peate kasutama INPUT_GET.

Seejärel saate oma koodi läbi töötada nii, nagu see teie projekti vajadustele kõige paremini sobib.

Turvalisus, Nonces jne.

Pidage meeles, et seda ei saa kasutada turvalisuse asemel. See on mõeldud üksnes andmete kaitsmiseks, enne kui nendega midagi ette võtate.

Ärge asendage mitte-väärtuste kontrollimist lihtsalt seetõttu, et kontrollite andmeid erinevalt.

Muutujad ja sisendid

Pidage meeles, et kuigi need funktsioonid on väga sarnased muutujad ja sisendid erinevad. Teisisõnu, ärge proovige seda kasutada, filter_varkui töötate kasutajalt või brauserist pärineva sisendiga. Kasutage seda alati, kui töötate muutujatega. Ja samamoodi kasutage ht e

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem