den fuldstændige vejledning til wordpress indstillinger api, del 7: validering, sanitisation input, og jeg

, den fuldstændige vejledning til wordpress indstillinger api, del 7: validering, sanitisation og input -,,,,, 2,,,,,,,,, 7,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet den fuldstændige vejledning til wordpress indstillinger api. den fuldstændige vejledning til wordpress indstillinger api, del 6: menu pagesthe fuldstændige vejledning til wordpress indstillinger api, del 8: validering, sanitisation og input - ii, hvis du bare nu slutter sig til os, vi har dækket mange emner i denne serie –, vi har forsøgt at give et fuldstændigt overblik over wordpress indstillinger api - samt dennes forretningsmæssigt forbundne funktioner.vi har diskuteret indstillinger, optioner, navigation og menuer.vi har også arbejdet gennem praktiske eksempler, hvor hver af de emner, vi har drøftet, vi er næsten færdige.i de sidste to artikler i denne serie, vi kommer til at tage et kig på sanitization, validering og grundlæggende input elementer, som vi kan bruge i vores wordpress plugins og temaer,.,, før vi starter: denne artikel forudsætter, at man har fulgt sammen med resten af den serie, har et arbejde kopi af prøvens kode installeret, og nu er forholdsvis velkendt med indstillinger api - og tema muligheder.hvis du er i tvivl om noget af ovenstående, kan jeg anbefale at læse resten af artikel før at dykke ned i denne post, forståelse, validering og sanitization, før vi begynder at skrive en kode, vi er nødt til at forstå, hvad det er, at vi skal gøre – nemlig, validering og sanitization.kort sagt, disse to aspekter af sikkert skrive og læse data fra en wordpress muligheder side og de underliggende database. skal vi dykke dybere ind i det, så ser vi på hvert af de input, typer og arbejde gennem eksempler, men lad os give en forbindelse til, hvad vi skal gøre:,, validering, er den proces, hvorved vi gennemgå de data, der kommer fra de muligheder, side – eller snarere den brugerinput – og fastslå, om det er acceptabelt at redde.,, sanitization, er den proces, hvorved vi sikre, at data, der kommer ud af databasen er rent og ordentligt formateret. for at gøre på den side, måske det mest kortfattet oversigt er, at validering skal foretages før skriftlige oplysninger til database og sanitization skal ske mellem læsning af data fra databasen, og sende den til browseren., mange gange, validering er relateret til at redde data og sanitization er forbundet med at genfinde data, men det er også helt muligt at sterilisere data, efter at den har bestået validering, for at sikre, at kun ren data er blevet reddet i databasen.når vi arbejder sammen med vores egen kode, det er lettere at gøre det, men vi kan ikke altid afhænge af andre udviklere har renset deres data, så ansvaret for sanitizing alle data, der kommer ud af databasen påhviler os, om vores projekt med henblik på at gøre det let at forstå, validering og sanitization, lad mig introducere et nyt tab i vores muligheder side.hvis du har indført en ny overordnet plan, er dette også vil kræve, at man tilføjer tilføje en ny submenu punkt på dagsordenen, og ajourføre de muligheder - regning.lad os ordne det nu. først finde den, sandbox_example_theme_menu, funktion og tilføjes følgende punkt: submenu, add_submenu_page ('sandbox_theme_menu,'input eksempler,'input eksempler,'administrator,'sandbox_theme_input_examples, create_function (null, sandbox_theme_display ("input_examples") «), dernæst skal bare slukke en funktion, som vil skabe den gruppe af muligheder for vores nye indstillinger regning.hvis du har fulgt med den serie, burde det være let at følge:, funktion sandbox_theme_initialize_input_examples() (hvis (falsk = = get_option ('sandbox_theme_input_examples')) (add_option (' sandbox_theme_input_examples)} ////////////////ende hvis} sandbox_theme_initialize_input_examples add_action ('admin_init "," sandbox_theme_initialize_input_examples); endelig vi har brug for at ajourføre, sandbox_theme_display, funktion at gøre regning, og at udvælge det, når de er tilgængelige, enten via de tekniske vurderingsorganer eller submenu punkt på dagsordenen.først, lad os opdatere betinget, som undersøger spørgsmål snor og funktion er argumenter.den skal især behandle sagen for input eksempler.ajourføring af den betingede sådan her: hvis (isset ($_get ["tab"])) ($active_tab = $_get ["tab"]} andre, hvis ($active_tab = = "social_options') ($active_tab = social_options"} andre, hvis ($active_tab = = "input_examples') ($active_tab = input_examples"} andre ($active_tab = display_options "} //hvis /andet, vi er nødt til at tilføje en ny regning til sejlads.ajourføre, nav regning - papir, beholder til også at omfatte den nye vært:, < en href = "?s = sandbox_theme_options & tab = input_examples "klasse =" nav regning <?php echo $active_tab = = "input_examples?"nav regning aktive ":" "?> "> input på < /a >, endelig er vi nødt til at tilføje en mere betinget af, at den form faktor, der er ansvarlig for med muligheder.ajourføring af den betingede sådan her: hvis ($active_tab = = "display_options") (settings_fields ('sandbox_theme_display_options'); do_settings_sections (' sandbox_theme_display_options)} elseif ($active_tab = = "social_options") (settings_fields ('sandbox_theme_social_options'); do_settings_sections (' sandbox_theme_social_options)} andre (settings_fields ('sandbox_theme_input_examples'); do_settings_sections (' sandbox_theme_input_examples)} //hvis /andet, under forudsætning af, at de har medtaget alle de kode korrekt, deres administration panel bør nu ser sådan ud:,, vi er klar til at begynde at indføre nye mulighed elementer og validering og sanitization funktionalitet.hvis ovennævnte kode virker uklart, sørg for at se på artikel tidligere i serien som indstillinger, menu sider, og tekniske vurderingsorganer alle har været omfattet, elementet former, der er fem grundlæggende former, som vi kan bruge til input i vores wordpress muligheder sider.disse input, textareas, til galochka, radio - og udvælge kasser.i resten af denne artikel, skal vi tage et kig på input elementer og textareas, og vi vil gennemgå de sidste tre i den sidste artikel i serie. input input elementer er ideel til situationer, hvor vi er nødt til at fange en lille mængde tekst fra en bruger.det kan være noget, som deres navn og telefonnummer eller noget, bare lidt mere kompliceret som en url, deres e - mail - adresse, eller en api - nøgle.vi er faktisk allerede ved hjælp af input - områder på den "sociale muligheder" side, når vi beder om brugerens profiler adresser., validerer tekst input kan være en kompliceret operation, især når man ønsker at håndhæve visse begrænsninger.for eksempel, telefonnumre følge en særlig form, og hvis du spørger en bruger til hans /hendes telefon nummer, så du kan fælde en funktion, der afgør, om det nummer, overholder de strenge format.det er klart, at vi ikke kan fange alle disse anvendelser i vores eksempler her, så er det blot et for stort område. i stedet, hvad vi skal gøre, er at sikre, at ingen onde kode bliver skrevet ind i databasen.det betyder, at når en bruger input tekst i vores tekst boks, vi skal fjerne alle html tags og potentielt problematiske egenskaber.men før vi gør det, lad os præsentere en ny mulighed, forstå - og se, hvad der sker, hvis vi ikke gennemfører nogen form for bekræftelse, gå videre og indføre nye afsnit og område ved hjælp af, sandbox_theme_initialize_input_examples, funktion:, add_settings_section ('input_examples_section,'input eksempler,'sandbox_input_examples_callback,'sandbox_theme_input_examples'); add_settings_field ('input element,'input element,'sandbox_input_element_callback,'sandbox_theme_input_examples,'input_examples_section '); register_setting ('sandbox_theme_input_examples,'sandbox_theme_input_examples), næste, definere den callback til afsnit:, funktion sandbox_input_examples_callback() (echo '< p > giver eksempler på de fem grundlæggende element former. < /p > «), og endelig indføre input element, som vi skal bruge til at fange input:, funktion sandbox_input_element_callback() {$muligheder = get_option (' sandbox_theme_input_examples) //gøre produktionen echo '< input type = "tekst" id = "input_example" navn = "sandbox_theme_input_examples [input_example]" værdi = ".$muligheder ["input_example"]. "/> '}, dine muligheder side bør nu ligner det følgende billede:,, forståelse af avancen, indtil det punkt, vi har skabt vores mulighed elementer, og jeg har nævnt, at vi så ville diskutere de attributter, senere i serien.det er den artikel, hvor vi begynder at se på betydningen af det, id, og navn, attributter, konstatere, at der i begyndelsen af den rolle, vi læser de muligheder for dette tab ved hjælp af wordpress, get_option, funktion.denne funktion vil give muligheder i et system.det, id, attribut af input element angiver dette element er værdien i nettet.det navn, attribut er navnet på den vifte ridsede med id?for at være fuldstændig, tænk på det på denne måde:,, wordpress vil skabe et system baseret på vegne af afdelingen, at du har defineret.i dette tilfælde er det, sandbox_theme_input_examples, hvert enkelt element vil blive identificeret ved, id, attribut.i dette eksempel, er det ", input_example," kan du læse værdien af dette system ved hjælp af, sandbox_theme_input_examples [input_example], så de, id, af element udgør nøglen til værdi i valg system, navn, tilskriver repræsenterer navnet på nettet med nøglen i værdien i nettet. ved validering og sanitization, på dette punkt, at det er fuldt ud muligt begynde i værdier til input element, og at denne mulighed.prøv det – fastsat værdi, klik på "red ændringer", skulle du se input element - værdien, som du har skabt.men her er problemet: prøv slaget noget som dette i input område:, < iframe src = http://wp.tutsplus.com "bredde ='640" højde ='480 "> < /iframe >, hop over, index.php, og tilføje følgende blok af kode: og lt;?php $input_examples = get_option ('sandbox_theme_input_examples)?> <?php echo $input_examples ['input_example ']?>, - webstedet, og de bør bemærke en iframe dukker op midt i dit tema er hjemmeside:,, virker som en forholdsvis lille problem, men det er præcis den slags ting, som vi skal forhindre.vi ønsker ikke, at brugerne har denne form for kontrol med den database, stedet sider, og så videre.selvfølgelig, for at redde en enkelt iframe er et lille eksempel –, hvis brugerne er i stand til at indsætte javascript, så de kan påvirke visse aspekter af hele din hjemmeside.endnu mere alvorlig, hvis brugerne er i stand til at indsætte ondsindede sql, deres database kan være i fare. så lad os indføre en validering.som nævnt ovenfor, vi ønsker at fjerne enhver forhøjelse og problematiske egenskaber.for at gøre dette skal vi først definere en validering callback for vores input element afdeling.for at gøre dette, lad os vende tilbage til det, register_setting, ringe og ajourføre det, så det ser ud, som om dette:, register_setting ('sandbox_theme_input_examples,'sandbox_theme_input_examples,'sandbox_theme_validate_input_examples), lad os definere denne funktion:, funktion sandbox_theme_validate_input_examples ($input) {} //ende sandbox_theme_validate_input_examples, bemærker, at denne funktion accepterer en enkelt parameter, som vi har nævnt, input.dette argument er unvalidated sæt valgmuligheder, at wordpress sender til denne funktion fra muligheder side, som vi lige har reddet.bemærker også, at da vi tilføje yderligere mulighed elementer, vi bruger den samme funktion, at skabe en validering funktion typisk følger tre trin:,, skabe et system, der vil blive anvendt til at opbevare den validerede alternativer, validere og rent, når det er nødvendigt) alle indkommende muligheder returnere system, der skabte vi tidligere,,, lad os gøre det nu.se efter gennemførelsen meget opmærksom på de bemærkninger:, funktion sandbox_theme_validate_input_examples ($input) (//skabe vores system for lagring af den validerede alternativer $produktion = array(); //loop gennem hver af de nye muligheder for hvert ($input som $nøgle = > $værdi) (//se for at se, om den nuværende mulighed har en værdi.hvis det, behandle det.hvis (isset ($bidrag [$centrale])) (//fjerne alle html og folkesundhedsprogrammet tags og korrekt håndtering citerede strenge $produktion [$centrale] = strip_tags (stripslashes ($bidrag [$centrale])} //, hvis} //ende for hvert //returnere arraybehandling yderligere funktioner, filtreret ved denne handling tilbage apply_filters ('sandbox_theme_validate_input_examples, $output, $input)), og de fleste af kode bør være forholdsvis ligetil, men de to vigtigste aspekter i erklæring i den betingede og tilbagesendelse erklæring.,, vi bruger, strip_tags, funktion, som er hjemmehørende til folkesundhedsprogrammet, for at fjerne alle html og folkesundhedsprogrammet hundetegn, vi bruger, stripslashes, funktion, som er en indfødt php funktion, som vil propejuli klare anførselstegn omkring en snor. endelig kunne vi blot har returneret, $output, array ved udgangen af den funktion, men vender tilbage som følge af opfordringen til, apply_filters, er en bedste praksis.men det ligger uden for anvendelsesområdet for denne artikel, er det værd at bemærke, at denne erklæring og opfordrer alle andre funktioner, som er filtreret ved denne særlige funktion, før det når værdien, prøv nu at prøve på input til input element.prøv med en enkelt kæde, telefonnummer, e - mail - adresse, en url, en blok af: en række javascript osv.flot, ikke?endelig, lad os vende tilbage index.php, og give en sidste ændring for at vise, hvordan vi kan udføre produktion sanitization.husk, det er god praksis for at sterilisere muligheder, selv hvis du arbejder med værdier, der ikke kommer fra deres eget arbejde, finde den linje, som lyder:, <?php echo $input_examples ["input_example ']?> og ajourføre den, så den lyder:, <?php echo sanitize_text_field ($input_examples ["input_example ']).>,, sanitize_text_field, funktion, er en anden wordpress oprindelige funktion, der er specielt beregnet til at sterilisere bruger input fra tekstfelter eller fra databasen, vi kigger på mere i denne artikel og i de næste, men der er en fuldstændig liste over de funktioner, der er til rådighed i wordpress codex, textarea, når jeg kigger. ved input - elementer, der er omfattet, en masse af jord.heldigvis har mange af de samme principper gælder ikke kun for textareas, men resten af elementer.som sådan, vi behøver ikke at bruge så meget tid med hvert enkelt element.dette vil fri os for at se på nogle af de særheder, som kom med hver af de element typer. for lad os indføre en textarea element.i vort eksempel netop dette element vil give mulighed for at træde et par sætninger om sig selv – tænke på det som en kort bio.første, tilføje følgende opfordring til, sandbox_theme_initialize_input_examples, funktion:, add_settings_field ('textarea element,'textarea element,'sandbox_textarea_element_callback,'sandbox_theme_input_examples,'input_examples_section), lad os definere callback - nødvendigt for at gøre textarea:, funktion sandbox_textarea_element_callback() {$muligheder = get_option ('sandbox_theme_input_examples) ////////gøre produktionen echo' < textarea id = "textarea_example" navn = "sandbox_theme_input_examples [textarea_example]" rækker = "5" koller = "50" > ".$muligheder ["textarea_example"].< /textarea > «), bemærker, at den udfører meget lignende input element som defineret ovenfor.vi specifikt har leveret en, id, giver for at give denne værdi en nøgle i de muligheder, vi har fastlagt system og nøjagtige navn og centrale i element er, navn, attribut.vi har også givet textarea en bestemt størrelse, men det er rent tilfældig, minde om, at da dette element indgår i samme afdeling som input element, det er forarbejdet ved anvendelse af samme validering funktion.som sådan, får vi det samme niveau af validering gratis.prøv det – forsøg på at redde avance, manuskripter, og andre typer af kode og ved at anvende de textarea. endelig, lad os opdatere de offentlige modstående side af vores tema for at hente denne værdi, og at sterilisere den udstilling.i index.php, tilsættes følgende blok af kode:, <?folkesundhedsprogrammet aspektet om ($input_examples ["textarea_example ']) {?> <?php echo sanitize_text_field ($input_examples ["textarea_example ']).> <?php} //, hvis?> men det er næsten det samme som input - område, er vi nødt til at sikre, at vi er fuldstændig i vores validering og sanitization.,, konklusioner, selv om vi kun set på to typer elementer har vi snakket om en masse.ud over at bringe vores tema ajourførte, vi har også gennemført grundlæggende validering og er begyndt at udforske de sanitization elementer af wordpress. i den sidste artikel, vi skal se på de resterende tre elementer former, og hvordan til at forvalte dem ved hjælp af validering og sanitization.i mellemtiden, forsøg med noget af det, vi er her, og husk at revidere de tilknyttede kilde artikler sammen i bunden af post, forbundne kilder, wordpress validering af data, get_option,,,,, stripslashes strip_tags,,,,,,,,, sanitize_text_field apply_filters,,,

Initial Examples
Input Element
Input Element



Previous:
Next Page: