PHP en HTML interageren veel: PHP kan HTML genereren, en HTML kan informatie doorgeven aan PHP. Voordat u deze FAQ ‘ s leest, is het belangrijk dat u leert hoe u variabelen van externe bronnen kunt ophalen. De hulppagina over dit onderwerp bevat ook vele voorbeelden.
welke codering/decodering heb ik nodig als ik een waarde door een formulier/URL geef?
Er zijn verschillende fasen waarvoor codering belangrijk is., Aangenomen dat u een string $data hebt, die de string bevat die u op een niet-gecodeerde manier wilt doorgeven, zijn dit de relevante stadia:
-
HTML-interpretatie. Om een willekeurige tekenreeks te specificeren, moet u deze opnemen in dubbele aanhalingstekens, en htmlspecialchars() de hele waarde.
-
URL: een URL bestaat uit verschillende delen. Als u wilt dat uw gegevens worden geïnterpreteerd als één item, moet u het coderen met urlencode().,
Voorbeeld #1 een verborgen HTML-vormelement
<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>
opmerking: urlencode () is onjuist, omdat de browsers verantwoordelijk zijn voor urlencode ()) de gegevens. Alle populaire browsers doen dat correct. Merk op dat dit zal gebeuren ongeacht de methode (dat wil zeggen, GET of POST). U zult dit alleen merken in het geval van GET request al, omdat POST verzoeken zijn meestal verborgen.,
opmerking: de gegevens worden in de browser getoond zoals bedoeld, omdat de browser de html-ontsnapte symbolen zal interpreteren. Bij het indienen, hetzij via GET of POST, de gegevens worden urlencoded door de browser voor de overdracht, en direct urldecoded door PHP. Dus op het einde, je hoeft niet te doen een urlencoding/urldecoding jezelf, alles wordt behandeld automagically.,
Voorbeeld #3 in een URL
<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>
opmerking: in feite doet u een HTML-GET-verzoek na, daarom is het noodzakelijk om handmatig urlencode() de gegevens.
Opmerking: U moet htmlspecialchars() de hele URL, omdat de URL optreedt als waarde van een HTML-attribuut. In dit geval zal de browser eerst un-htmlspecialchars() de waarde, en geef de URL op. PHP zal de URL goed begrijpen, omdat je urlencode()d de gegevens., U zult merken dat de
&
in de URL wordt vervangen door&
. Hoewel de meeste browsers zullen herstellen als je dit vergeet, is dit niet altijd mogelijk. Dus zelfs als uw URL is niet dynamisch, je nodig hebt om htmlspecialchars () de URL.
ik probeer een <input type=”image”> tag te gebruiken, maar de $foo.x en $ foo.y-variabelen zijn niet beschikbaar. $_GET bestaat ook niet. Waar zijn ze?,
bij het verzenden van een formulier is het mogelijk om een afbeelding te gebruiken in plaats van de standaard submit-knop met een tag als:
<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />
wanneer de gebruiker ergens op de afbeelding klikt, wordt het bijbehorende formulier naar de server verzonden met twee extra variabelen: foo.x en foo.y.
omdat foo.x en foo.y zou ongeldige variabele namen in PHP maken, ze worden automatisch geconverteerd naar foo_x en foo_y. dat wil zeggen, de perioden worden vervangen door underscores., Dus, je zou toegang krijgen tot deze variabelen zoals elke andere beschreven in de sectie over het ophalen van variabelen van externe bronnen. Bijvoorbeeld, $_GET.
opmerking:
spaties in request variabelenamen worden geconverteerd naar underscores.
Hoe maak ik arrays in een HTML <form>?,
Voor uw <formulier> verzonden als resultaat een matrix naar uw PHP script de naam van de <input>, <selecteer> of <tekstvak> elementen zoals dit:
<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />
Merk op de vierkante haakjes na de naam van de variabele, dat maakt het een array., U kunt de elementen groeperen in verschillende arrays door dezelfde naam toe te wijzen aan verschillende elementen:
<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />
dit produceert twee arrays, MyArray en MyOtherArray, die naar het PHP script wordt verzonden. Het is ook mogelijk om specifieke sleutels toe te wijzen aan uw arrays:
<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />
De anotherarray array bevat nu de sleutels 0, 1, email en telefoon.
opmerking:
het specificeren van array keys is optioneel in HTML., Als u de sleutels niet opgeeft, wordt de array ingevuld in de volgorde waarin de elementen in het formulier verschijnen. Ons eerste voorbeeld bevat de sleutels 0, 1, 2 en 3.
zie ook Array functies en variabelen van externe bronnen.
Hoe krijg ik alle resultaten van een select multiple HTML tag?
De Select multiple tag in een HTML-constructie stelt gebruikers in staat om meerdere items uit een lijst te selecteren. Deze items worden vervolgens doorgegeven aan de actie handler voor het formulier. Het probleem is dat ze allemaal zijn doorgegeven met dezelfde widget naam. Dat wil zeggen:,
<select name="var" multiple="yes">
elke geselecteerde optie zal tot de actiehandler komen als:
var=option1var=option2var=option3
elke optie zal de inhoud van de vorige $var-variabele overschrijven. De oplossing is om PHP ‘ s “array from form element” functie te gebruiken. Het volgende moet worden gebruikt:
<select name="var" multiple="yes">
dit vertelt PHP om $var als een array te behandelen en elke toewijzing van een waarde aan var voegt een item toe aan de array. Het eerste item wordt $var, de volgende $var, enz., De functie count() kan worden gebruikt om te bepalen hoeveel opties zijn geselecteerd, en de functie sort () kan worden gebruikt om de option array te sorteren indien nodig.
merk op dat als u JavaScript gebruikt, de op de elementnaam problemen kan veroorzaken wanneer u probeert te verwijzen naar het element op naam. Gebruik het numerieke formulier-element ID in plaats daarvan, of sluit de variabele naam in enkele aanhalingstekens en gebruik dat als de index naar de elementen array, bijvoorbeeld:
variable = document.forms.elements'];
Hoe kan ik een variabele doorgeven van Javascript naar PHP?,
omdat Javascript (meestal) een client-side technologie is, en PHP (meestal) een server-side technologie, en omdat HTTP een “stateless” protocol is, kunnen de twee talen niet direct variabelen delen.
Het is echter mogelijk om variabelen tussen de twee door te geven. Een manier om dit te bereiken is om Javascript-code te genereren met PHP, en de browser zichzelf te vernieuwen, het doorgeven van specifieke variabelen terug naar het PHP-script. Het voorbeeld hieronder laat precies zien hoe dit te doen-het laat PHP code om schermhoogte en breedte vast te leggen, iets dat normaal alleen mogelijk is aan de client kant.,