Inasikia na Inasababisha wa Kivutia ya PHP

Vifaa vya kusaidia PHP vinatumiwa kwa kuthahiri na kusaidia kichwa kinavyotumika kwa kawaida kutoka mabwana yasiyotumika kwa kawaida, kama kichwa kinavyotumika kwa kawaida kwa wanamwili.

Je, kina ni PHP vifaa vya kusaidia?

Vifaa vya kusaidia PHP vinatumiwa kwa kuthahiri na kusaidia kichwa kinavyotumika kwa kawaida kutoka mabwana yasiyotumika kwa kawaida.

Tathminia na kusaidia kichwa kinavyotumika kwa kawaida au data zilizotumika ni muhimu kwa kila programu ya Web.

Makoa wa kuanzisha vifaa vya kusaidia PHP ni kumaliza kusaidia usafirishaji wa kichwa kinavyotumika kwa kawaida kwa uharibifu na uharifu.

Kwa nini kutumia vifaa vya kusaidia?

Wakati wote wa programu za web zinaukoma kichwa kina. Data zinaelewa kwa kawaida kutoka wanamwili au programu zingine (kama mifumo ya web). Kwa kutumia vifaa vya kusaidia, unaweza kuzingatia kwamba programu zinaelewa aina ya kichwa kinavyotumika kwa kawaida.

Wewe tunahitaji kusaidia kufikiria data ya nje kila wakati!

Kusomoa kwa kusaidia kufikiria ni moja ya mada za kawaida ya usalama wa programu.

Je, data ya nje ni nini?

  • Data ya kusomoa kutoka kwenye for
  • Cookies
  • Matokeo ya variables ya server
  • Matokeo ya kusomoa kwenye database

Vifaa na vifaa vya kufikiria

Kwa kusaidia kufikiria vifaa, tafadhali tumia kifaa cha kufikiria hiki:

  • filter_var() - Kusaidia kufikiria kipimo kimoja kwa kusaidia kufikiria
  • filter_var_array() - Kusaidia kufikiria vifaa vingine kwa vifaa vingine au tofauti
  • filter_input - Pata kipimo kimoja, na kusaidia kufikiria
  • filter_input_array - Pata vifaa vingine, na kusaidia kufikiria kwa vifaa vingine au tofauti

Kwa matokeo yaliyotoka, tumekuwa tumewaia kwa kutumia filter_var() kwa kuhakikisha kipimo:

<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

Kodi ya juu inatumia filter_var() kwa kusaidia kufikiria variable. Kama kipimo hilo kinahusiana, chaguo cha chakula ni: "Integer is valid".

Kama tunataharirika kwa kutumia variable bila kipimo, chaguo cha chakula ni: "Integer is not valid".

Kwa orodha kina ya kufikiria na vifaa vingine, tafadhali nia taarifa yetu: Mbijani ya PHP Filter.

Validating na Sanitizing

Kuna vifaa mbili:

Validating filters:

  • Inakusaidia kuhakikisha ukurabu wa wasiliana wa watu
  • Makadaro ya hatua ya muhimu (kama ukaguzi wa URL au E-Mail)
  • Inatoa aina inayotarajiwa kama ingawa inafaili inatoa FALSE

Sanitizing filters:

  • Inakusaidia kutoa au kusababisha haribifu ya herufi zilizotumika kwenye stringi
  • Kuna uadilifu wa hatua ya data
  • Inatoa mara kwa mara kichwa kikuu

Vifaa na uamuzi

Vifaa na uamuzi hufanywa kwa kuingia vifaa vingine kwa kusomoa vifaa vingine.

Vifaa na uamuzi wengine wana nguvu na uwanja wa kufikiria.

Kwa matokeo yaliyotoka, tumekuwa tumewaia kwa kutumia filter_var() na "min_range" na "max_range" kwa kuhakikisha tafuta kipimo:

<?php
$var=300;
$int_options = array(
"options"=>array
 (
 "min_range"=>0,
 "max_range"=>256
 )
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
 {
 echo("Integer is not valid");
 }
else
 {
 echo("Integer is valid");
 }
?>

Kama kama mkutano wa juu, chaguo kila moja lazima iwe na jina la mawakilishi "options". Kama inatumiwa vifaa, hivyo hakuna uwanja wa kuingia katika mawakilishi.

Kama inaonekana kwamba ina nguvu ya "300", hii inaonekana kama inaonekana kama "Integer is not valid".

Kwa orodha kubwa ya mkutano na vifaa vya kusafisha, tukitumia CodeW3C.com inayotolewa. Mbijani ya PHP FilterInavyoonekana kwa kila chaguo cha kusafisha na taarifu.

Kuthibitisha kichwa

Tumekuwa na uwanja wa kuthibitisha kichwa iliyotolewa na formu.

Mafanikio yake ya kwanza ni kuthibitisha kwamba data ya kichwa yetu inahusishwa.

Kisha tunatumia mkutano wa filter_input() kusafisha data ya kichwa.

Kwa mfano hii, thamani ya kichwa "email" inasaidia katika ukurasa wa PHP:

<?php
if(!filter_has_var(INPUT_GET, "email"))
 {
 echo("Input type does not exist");
 }
else
 {
 if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
  {
  echo "E-Mail is not valid";
  }
 else
  {
  echo "E-Mail is valid";
  }
 }
?>

Mafano ya uharibifu:

Mfano wa juu ina thamani ya kichwa inayosaidia kwa uwanja wa "GET":

  1. Tukia kuna thamani ya kichwa kama hii ya aina "GET" ya "email".
  2. Kama kuna thamani ya kichwa, tukia inaonekana kama barua pepe wa huzuni

Kusafisha kichwa

Tumekuwa na uwanja wa kusafisha URL iliyotolewa na formu.

Kwanza, tunahitaji kuthibitisha kwamba data ya kichwa yetu inahusishwa.

Kisha, tunatumia mkutano wa filter_input() kusafisha data ya kichwa.

Kwa mfano hii, thamani ya kichwa "url" inasaidia katika ukurasa wa PHP:

<?php
if(!filter_has_var(INPUT_POST, "url"))
 {
 echo("Input type does not exist");
 }
else
 {
 $url = filter_input(INPUT_POST, "url", FILTER_SANITIZE_URL);
 }
?>

Mafano ya uharibifu:

Mfano wa juu ina thamani ya kichwa inayosaidia kwa uwanja wa "POST":

  1. Tukia kuna thamani ya kichwa kama hii ya aina "POST" ya "url".
  2. Kama thamani hiyo inahusishwa, tukisafisha (kumafungua herufi za bila huzuni) na kuwasiliana $url thamani.

Kama inahesabika kwa thamani ya kichwa kama hii: "http://www.W3非o法ol.com.c字符n/", hii inaonekana kama hii kama $url inatibiwa:

http://www.codew3c.com/

Kufiltra vigezo zaidi

Fomu inayoitwa na uingizaji wa jipya zaidi ya kumi. Kusikia uharibifu wa filter_var au filter_input, tunaweza kutumia filter_var_array au funguli filter_input_array.

Kwenye mfano hii, tunatumia funguli filter_input_array() kuwa na vigezo vya GET tatu. Vigezo vya GET vilikuwa jina, umri na barua pepe:

<?php
$filters = array
 (
 "name" => array
  (
  "filter"=>FILTER_SANITIZE_STRING
  ),
 "age" => array
  (
  "filter"=>FILTER_VALIDATE_INT,
  "options"=>array
   (
   "min_range"=>1,
   "max_range"=>120
   )
  ),
 "email"=> FILTER_VALIDATE_EMAIL,
 );
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
 {
 echo("Age must be a number between 1 and 120.<br />");
 }
elseif(!$result["email"])
 {
 echo("E-Mail is not valid.<br />");
 }
else
 {
 echo("User input is valid");
 }
?>

Mafano ya uharibifu:

Mfano wa juu una maadili ya kufikia vigezo vya 'GET' zaidi ya mitatu (name, age na email)

  1. Weka msingi ambao ina jina la jipya na mbinu ya kufiltra kwa jipya zilizotumika kwa kuzingatia jipya.
  2. Weka funguli filter_input_array, thamani ni vigezo vya GET na jipya iliyozidhani hivi karibuni
  3. Tathmini kama tabia $result ya 'age' na 'email' ina uharibifu wa upepo. (Kama uharibifu unaonesha,)

Inayotumika kama chaguo ya pili ya funguli filter_input_array() inaweza kuwa msingi wa jipya au ID ya mbinu ya kufiltra moja.

Kama thamani ina ID kama mbinu ya kufiltra moja, hii mbinu inayotumika itafaulu kwa uharibifu wa upepo wa jipya zote katika matokeo wa jipya.

Kamaanipati ni jipya ni upya inayohusishwa kwa sheria zifuatavyo:

  • Hii inahitajika kuwa jukwaa ya muafaka, ambao jina la muafaka ni chuki cha kufikia (kama chuki ya kufikia "age" chuki ya kufikia)
  • Mimewa ya hii inahitajika kuwa ID ya filteri, au kumekadiri chochote, chaguo na chochote

Kutumia Filter Callback

Kutumia filter ya FILTER_CALLBACK, unaweza kutumia funguo zaidi kama chochote kama chochote kwa kumekadiri data, kwa hivyo tunahifadhiwa uadilifu wa uadilifu wa data.

Unaweza kumekadiri funguo yako yopendekeza au kutumia funguo ya PHP iliyopo

Mwongozo wa kumekadiri funguo inayotumika kwa msaada wa filter inaonekana kama mwongozo wa kumekadiri chochote

Kwenye mfano hii, tumia funguo zaidi inayotumia mifunguo yetu kumpunguza kila "_" kwa nafasi:

<?php
function convertSpace($string)
{
return str_replace("_", " ", $string);
}
$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
?>

Matokeo wa kodi ya juu ni kama hii:

Peter ina mwanafunzi wa kubwa!

Mafano ya uharibifu:

Mfano juu una kuwaona kila "_" ikipungua kwa nafasi:

  1. Pitia funguo ambao inapunguza "_" kwa nafasi
  2. Tumia filter_var() funguo, ambao anapendekeza filter ya FILTER_CALLBACK na mawaka ambao ina mifunguo yetu