PHP og HTML interagerer meget: PHP kan generere HTML, og HTML kan videregive oplysninger til PHP. Før du læser disse ofte stillede spørgsmål, er det vigtigt, at du lærer at hente variabler fra eksterne kilder. Manualsiden om dette emne indeholder også mange eksempler.
hvilken kodning/dekodning har jeg brug for, når jeg sender en værdi gennem en formular / URL?
Der er flere trin, for hvilke kodning er vigtig., Forudsat at du har en streng $data, som indeholder den streng, du vil videregive på en ikke-kodet måde, er disse de relevante faser:
-
HTML-fortolkning. For at angive en tilfældig streng, skal du medtage den i dobbelt citater, og htmlspecialchars () hele værdien.
-
URL: en URL består af flere dele. Hvis du ønsker, at dine data skal fortolkes som et element, skal du kode det med urlencode().,
Eksempel #1 Et skjult HTML-form-elementet
<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>
Bemærk: Det er forkert at urlencode() $data, fordi det er den browsere ansvar for at urlencode() data. Alle populære bro .sere gør det korrekt. Bemærk, at dette vil ske uanset metoden (dvs.GET eller POST). Du vil dog kun bemærke dette i tilfælde af GET-anmodning, fordi postanmodninger normalt er skjult.,
Bemærk: De data, der vises i browseren som tiltænkt, fordi den browser vil fortolke HTML undsluppet symboler. Ved indsendelse, enten via GET eller POST, dataene vil blive urlencoded af bro .seren til overførsel, og direkte urldecoded af PHP. Så i sidste ende behøver du ikke gøre nogen urlencoding/urldecoding selv, alt håndteres automagisk.,
Eksempel #3 I en URL
<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>
Bemærk: I virkeligheden er du faking en HTML-GET-anmodning, derfor er det nødvendigt manuelt at urlencode() data.
Bemærk: Du skal htmlspecialchars() hele URL ‘ en, fordi den URL opstår, når værdien af en HTML-attributten. I dette tilfælde vil bro .seren først un-htmlspecialchars() værdien, og derefter videregive URL ‘ en til. PHP vil forstå URL ‘ en korrekt, fordi du urlencode()d dataene., Du vil bemærke, at
&
i URL ‘ en erstattes af&
. Selvom de fleste bro .sere vil komme sig, hvis du glemmer dette, er dette ikke altid muligt. Så selvom din URL ikke er dynamisk, skal du htmlspecialchars () URL ‘ en.
jeg forsøger at bruge en <input type=”image”> tag, men $foo.x og $ foo.y variabler er ikke tilgængelige. $_GET findes heller ikke. Hvor er de?,
Når du indsender en formular, er det muligt at bruge et billede i stedet for standard send-knappen med en kode som:
<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />
, Når brugeren klikker på et sted på billedet, der ledsager formular vil blive sendt til serveren med yderligere to variabler: foo.x og foo.y.
fordi foo.x og foo.y ville gøre ugyldige variabelnavne i PHP, de er automagisk konverteret til foo_ and og foo_y. det vil sige, perioderne erstattes med understregninger., Så du får adgang til disse variabler som enhver anden beskrevet i afsnittet om hentning af variabler fra eksterne kilder. For eksempel $_GET.
Bemærk:
mellemrum i forespørgselsvariabelnavne konverteres til understregninger.
Hvordan opretter jeg arrays i en HTML <form>?,
for At få din <form> resultat, der er sendt som et array til dit PHP-script, you name <input> <vælg> eller <textarea> – elementer, som dette:
<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />
Bemærk de firkantede parenteser efter variabelnavnet, det er, hvad der gør det til et array., Du kan gruppere elementer i forskellige arrays ved tildeling af samme navn, til forskellige elementer:
<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />
Dette giver to arrays, MyArray og MyOtherArray, der bliver sendt til PHP script. Det er også muligt at tildele specifikke taster til dine arrays:
<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />
AnotherArray-arrayet indeholder nu tasterne 0, 1, e-mail og telefon.
Bemærk:
angivelse af array-nøgler er valgfrit i HTML., Hvis du ikke angiver tasterne, bliver arrayet udfyldt i den rækkefølge, elementerne vises i formularen. Vores første eksempel vil indeholde nøgler 0, 1, 2 og 3.
Se også Array-funktioner og variabler fra eksterne kilder.
hvordan får jeg alle resultaterne fra et udvalgt flere HTML-tag?
Vælg flere tag i en HTML-konstruktion giver brugerne mulighed for at vælge flere elementer fra en liste. Disse elementer sendes derefter til handleren for formularen. Problemet er, at de alle er gået med samme wididget navn. Dvs.,
<select name="var" multiple="yes">
Hver valgt indstilling, vil nå frem til den handling, der handler som:
var=option1var=option2var=option3
Hver option vil overskrive indholdet af den tidligere $var variabel. Løsningen er at bruge PHP ‘ s “array from form element” – funktion. Følgende skal bruges:
<select name="var" multiple="yes">
Dette fortæller PHP til at behandle $var som et array, og hver tildeling af en værdi til var tilføjer et element til rækken. Den første vare bliver $var, den næste $var osv., Funktionen tæller () kan bruges til at bestemme, hvor mange indstillinger der blev valgt, og funktionen sorter () kan bruges til at sortere indstillingsarrayet om nødvendigt.
Bemærk, at hvis du bruger JavaScript, kan på elementnavnet give dig problemer, når du forsøger at henvise til elementet ved navn. Brug det numeriske form element-ID i stedet for, eller vedlægge variabel navn i anførselstegn, og bruger den som indeks til de elementer array, for eksempel:
variable = document.forms.elements'];
Hvordan kan jeg overføre en variabel fra Javascript til PHP?,
da Javascript (normalt) er en klientsideteknologi, og PHP (normalt) er en serversideteknologi, og da HTTP er en “statsløs” protokol, kan de to sprog ikke direkte dele variabler.
det er dog muligt at overføre variabler mellem de to. En måde at udføre dette på er at generere Javascript-kode med PHP, og få bro .seren til at opdatere sig selv og videregive specifikke variabler tilbage til PHP-scriptet. Eksemplet nedenfor viser præcist, hvordan man gør dette-det giver PHP kode til at fange skærmens højde og bredde, noget, der normalt kun er muligt på klientsiden.,