De eenvoudigste vorm van het verzenden van gegevens per e-mail met behulp van HTML en PHP. HTML-formulieren. Methoden voor het verzenden van gegevens naar de server met behulp van een formulier

/php/php5ru.png HTTP/1.0

: www.php5.ru

Wat u zou zien als u dit zou bekijken, flitst over het scherm png-bestand in een teksteditor.

HTML-formulieren. Methoden voor het verzenden van gegevens naar de server met behulp van een formulier

Een van de meest voorkomende toepassingen van elke serverscripttaal is verwerking HTML- formulieren. Webprogrammering omvat meestal het verwerken van verschillende gebruikersinvoer.

RNR vergemakkelijkt de taak van het verwerken en parseren van formulieren ontvangen van de browser, omdat alle noodzakelijke mogelijkheden op het laagste niveau in de taal zijn ingebouwd. Daarom hoeft de programmeur niet eens na te denken over de protocolfuncties HTTP en vraag je af hoe het verzenden en ontvangen plaatsvindt

MET HTML-formulieren die je al tegenkomt bij het bestuderen van opmaaktaal HTML.

Laten we eens kijken naar een voorbeeld van het verzenden van een bericht vanuit een formulier via e-mail.

Lijst e_mail.html. Een bericht verzenden vanuit een formulier via e-mail

Het formulier per e-mail verzenden

Klik op Reset en vul de bestelling in.


Als u deze HTML-code met een browser verwerkt, wordt een webpagina weergegeven, die te zien is op het beeldscherm:

Gebruiker klikt op een knop "Resetten" en de velden krijgen hun standaardwaarden. Het formulier wordt door de gebruiker met één klik op de knop ingevuld "Bestelling verzenden" verzonden naar Dit e-mailadres is beschermd tegen spambots. Om het te zien, moet JavaScript ingeschakeld zijn. Meestal verzendt de browser het formulier niet zelf, maar vertrouwt dit werk toe aan het e-mailprogramma dat standaard op het besturingssysteem van de computer is geïnstalleerd (bijvoorbeeld Outlook). De brief wordt verzonden in de vorm:

onderwerp: Formulier ingediend vanuit Microsoft Internet Explorer

naam = Prokhorov Viktor Sergejevitsj

value= Dit e-mailadres is beschermd tegen spambots. Om deze te kunnen bekijken moet JavaScript ingeschakeld zijn

obj = "Richtlijnen"

De brief bestaat uit paren naam=waarde, die in volgorde uit de formuliervelden worden geselecteerd.

Laten we het volgende voorbeeld eens nader bekijken.

Lijst formulier_1.html

Voer uw naam in:

Deze code opslaan in een HTML-bestand formulier_1.html en als u het bekijkt met een browser, ziet u het HTML-formulier:

Het formulier wordt geïmplementeerd door een containertag . De tag geeft met zijn attributen aan:

Adres van het script waarnaar het formulier wordt verzonden;

Wijze van verzending en kenmerken van de gegevens in het formulier. Elementair en definitief tags definiëren de grenzen van het formulier. Hun indicatie is verplicht.

Kenmerken van containertags
(
allemaal optioneel):

? actie--een attribuut waarvan de waarde is URL-adres (volledig of relatief) van de gevraagde CGI-programma's. Dit programma verwerkt de gegevens in het formulier. Het is acceptabel om de invoer te gebruiken MAILTO:URL. In dit geval wordt het formulier per e-mail verzonden. Als attribuut actie niet specificeren, de inhoud van het formulier wordt verzonden naar URL het adres van waaruit deze webpagina is geladen, dat wil zeggen ‘naar zichzelf’. Dit is een handige afkorting, maar volgens de HTML-standaard het attribuut actie vereist.

? methode-- definieert een methode HTTP, gebruikt om formuliergegevens van de browser naar de server te verzenden. Attribuut methode kan twee betekenissen hebben: krijgen of na:

¦ krijgen- formuliergegevens verzenden in de adresbalk. Mogelijk hebt u op verschillende websites de aanwezigheid van een "?" aan het einde van de URL opgemerkt. en de volgende gegevens in het formaat parameter=waarde. Hier "parameter" komt overeen met de attribuutwaarde naam formulierelementen (zie hieronder over de tag ), A "betekenis"- attribuutinhoud waarde(het bevat bijvoorbeeld gebruikersinvoer in een tekstveld met dezelfde tag ).

Probeer bijvoorbeeld iets te zoeken in Yandex en let op de adresbalk van uw browser. Dit is de manier krijgen.

¦ na- formuliergegevens worden verzonden in de hoofdtekst van het verzoek. Als het niet helemaal duidelijk (of helemaal onduidelijk) is wat dit is, hoeft u zich geen zorgen te maken. We komen binnenkort op dit onderwerp terug.

Als attribuut methode niet gespecificeerd - impliciet "krijgen".

? enctype-- optioneel attribuut. Specificeert het inhoudstype van het formulier dat wordt gebruikt om het coderingsformaat te bepalen bij het indienen ervan. IN HTML Er worden twee mogelijke waarden voor het attribuut gedefinieerd enctype:

¦ APPLICATIE/X-WWW-FORM-URLENCODEERD(standaard).

¦ MULTIPART/FORMULIERGEGEVENS.

Label Hiermee kunt u tekstreeksen, bestandsnamen, wachtwoorden, enz. maken in de invoervelden van het formulier. geen eindtag. Kenmerken en gebruiksfuncties hangt af van hoe het wordt gebruikt.

Label - specificeert het vormelement dat door het attribuut wordt gedefinieerd type:

¦ Betekenis "tekst" specificeert een tekstinvoerveld van één regel.

¦ Betekenis "indienen" specificeert een knop die, wanneer erop wordt geklikt, het formulier naar de server verzendt.

Andere waarden zijn mogelijk (en (niet de enige tag die een formulierelement definieert), maar we zullen ze in de volgende hoofdstukken bekijken.

Dus wat gebeurt er als op de OK-knop wordt geklikt?

1. De browser kijkt naar de elementen in het formulier en maakt op basis van hun attributen naam En waarde formulier gegevens. Stel dat de naam is ingevoerd Vasya. In dit geval zijn de formuliergegevens: naam=Vasya&okbutton=OK.

2. De browser brengt een verbinding tot stand met de server en stuurt een verzoek naar de server voor het document dat in het attribuut is opgegeven actie label , met behulp van de gegevensverzendmethode die is opgegeven in het kenmerk methode(in dit geval - KRIJGEN), waarbij de formuliergegevens in het verzoek worden doorgegeven.

3. De server analyseert het ontvangen verzoek, genereert een antwoord, stuurt dit naar de browser en verbreekt de verbinding.

4. De browser geeft het document weer dat is ontvangen van de server.

Hetzelfde verzoek handmatig verzenden (met behulp van telnet) ziet er zo uit (ervan uitgaande dat de domeinnaam van de site www.voorbeeld.com).

Het formulier zelf is meestal bedoeld om informatie van de gebruiker te ontvangen en deze vervolgens naar de server te sturen, waar de formuliergegevens worden ontvangen door het afhandelingsprogramma. Zo'n programma kan worden geschreven in elke programmeertaal aan de serverzijde, zoals PHP, Perl, enz. Het programmaadres wordt aangegeven in het action-attribuut van de tag , zoals weergegeven in voorbeeld 1.

Voorbeeld 1: Formuliergegevens indienen

HTML5 IE Cr Op Sa Fx

Formuliergegevens



In dit voorbeeld worden de formuliergegevens aangegeven door het naamattribuut (login en wachtwoord) doorgegeven aan het bestand /example/handler.php. Als het actiekenmerk niet is opgegeven, vindt de overdracht plaats naar het adres van de huidige pagina.

Overdracht naar de server vindt plaats op twee verschillende manieren: GET en POST, om de methode in de tag in te stellen
Het method-attribuut wordt gebruikt en de waarden ervan zijn de trefwoorden get en post. Als het methodekenmerk niet is opgegeven, worden de gegevens standaard naar de server verzonden met behulp van de GET-methode. In tabel Figuur 1 laat de verschillen tussen deze methoden zien.

Welke methode wordt gebruikt, kan eenvoudig worden bepaald aan de hand van de adresbalk van de browser. Als er een vraagteken in staat en het adres ziet er zo uit, dan is dit zeker een GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

Een unieke combinatie van parameters in de adresbalk identificeert een pagina op unieke wijze, dus pagina's met de adressen ?q=node/add en ?q=node worden als verschillend beschouwd. Deze functie wordt gebruikt door contentmanagementsystemen (CMS, Contentmanagementsysteem) om veel websitepagina's te maken. In werkelijkheid wordt er één enkel bestand gebruikt dat een GET-verzoek ontvangt en op basis daarvan de inhoud van het document genereert.

Hieronder vindt u typische toepassingen van deze methoden op locaties.

KRIJGEN

Kleine tekstgegevens overbrengen naar de server; site zoeken.

Zoekmachines en sitezoekformulieren worden altijd verzonden met behulp van de GET-methode. Hiermee kunt u zoekresultaten delen met vrienden, een link per e-mail verzenden of deze op een forum plaatsen.

NA

Bestanden overbrengen (foto's, archieven, programma's, enz.); opmerkingen verzenden; berichten toevoegen en bewerken op het forum, blog.

Standaard wordt het formulier verwerkt in het huidige browsertabblad. Wanneer u het formulier verzendt, kunt u deze parameter echter wijzigen en de formulierhandler in een nieuw tabblad of frame openen. Dit gedrag wordt gespecificeerd via de “contextnaam”, wat de waarde is van het doelattribuut van de tag . Populaire waarden zijn _blank om het formulier in een nieuw venster of tabblad te openen, en de naam van het frame, die wordt gespecificeerd door het name-attribuut van de tag



Wanneer u in dit voorbeeld op de knop Verzenden klikt, wordt het resultaat van de formulierinzending geopend in een frame met de naam area .

Formulierelementen worden traditioneel in een tag geplaatst
, waarmee wordt bepaald welke gegevens naar de server worden verzonden. Tegelijkertijd heeft HTML5 de mogelijkheid om een ​​formulier van zijn elementen te scheiden. Dit wordt gedaan voor het gemak en de veelzijdigheid, dus een complexe lay-out kan verschillende formulieren bevatten die elkaar niet mogen kruisen, of sommige elementen worden bijvoorbeeld weergegeven met behulp van scripts op de ene plaats op de pagina en het formulier zelf bevindt zich op een andere plaats. . De verbinding tussen het formulier en zijn elementen vindt in dit geval plaats via de formulieridentificatie, en het vormattribuut met een waarde gelijk aan deze identificatie moet aan de elementen worden toegevoegd (voorbeeld 3).

Voorbeeld 3: Een formulier aan velden koppelen

HTML5 IE Cr Op Sa Fx

Formulier



In dit voorbeeld de tag
wordt uniek geïdentificeerd via de auth-identifier, en form="auth" wordt toegevoegd aan velden die via het formulier moeten worden ingediend. In dit geval verandert het gedrag van de elementen niet; wanneer op de knop wordt geklikt, worden de login en het wachtwoord naar de handler.php-handler verzonden.

Hoewel de parameters voor formulieroverdracht traditioneel in de tag worden gespecificeerd , ze kunnen ook worden overgebracht naar de formulierverzendknoppen (

Jouw naam: Uw adres: Versturen: