Forma php uusi ilmoituskausi. HTML-lomakkeet

Usein Web-sivustoilta löytyy sivuja, joissa on HTML-lomakkeita. Verkkolomakkeet ovat kätevä tapa saada tietoja sivustosi vierailijoilta. Esimerkki tästä on vieraskirja, joka antaa palautetta vierailijoille ja sivuston kehittäjille. Lomakkeet ovat myös käteviä sivuston kehittäjille, kun he kehittävät CMS:ää, mikä mahdollistaa sivuston pääominaisuuden - merkityksen - ylläpitämisen. Tämä artikkeli keskittyy HTML-lomakkeiden luomisen perusteisiin, niiden käsittelyyn ja menetelmiin tietojen siirtämiseksi näyttölomakkeista PHP-skripteihin.

1) Luo yksinkertainen lomake

Tunnisteet

ja
aseta lomakkeen alku ja loppu. Lomakkeen aloitustunniste
sisältää kaksi attribuuttia: toiminta ja menetelmä... Action-attribuutti sisältää sen skriptin URL-osoitteen, joka on kutsuttava skriptin käsittelemiseksi. Attribuutti menetelmä kertoo selaimelle, millaista HTTP-pyyntöä lomakkeen lähettämiseen tulee käyttää; mahdollisia arvoja LÄHETTÄÄ ja SAADA.

Kommentti

Suurin ero POST- ja GET-menetelmien välillä on tiedonsiirtotapa. GET-menetelmässä parametrit kuljetetaan osoitepalkin kautta, ts. Itse asiassa HTTP-pyynnön otsikossa, kun taas POST-menetelmässä parametrit välitetään HTTP-pyynnön rungon läpi, eivätkä ne näy millään tavalla osoiterivin muodossa.

$ teksti = nl2br ($ _POST ["omateksti"]);
?>

Tehtävä: Oletetaan, että sinun on luotava avattava luettelo vuosilta 2000–2050.
Ratkaisu: On tarpeen luoda HTML-lomake, jossa on SELECT-elementti ja PHP - skripti lomakkeen käsittelemiseksi.

Keskustelu:

Luodaan ensin kaksi tiedostoa: form.html ja action.php... Tiedostossa form.html sisältää html-lomakkeen avattavalla luettelolla. Lisäksi luettelon arvot voidaan määrittää kahdella tavalla:

I. Tietojen syöttäminen manuaalisesti:

II. Tietojen syöttäminen silmukan kautta:

Kuten näet, toinen esimerkki silmukalla on kompaktimpi. Mielestäni tämän lomakkeen käsittelijän skriptiä ei tarvitse tuoda, koska se käsitellään samalla tavalla kuin tekstikenttä, ts. lista-arvot voidaan hakea superglobaalisesta taulukosta $ _POST.

Kuvaus:

Luodaan HTML-lomake tiedoston lähettämiseksi palvelimelle.




Annettu html-lomake sisältää elementin selata, joka avaa valintaikkunan palvelimelle ladattavan tiedoston valitsemiseksi. Painamalla painiketta "Siirrä tiedosto", tiedosto välitetään käsittelijän komentosarjalle.

Sitten sinun on kirjoitettava komentosarjakäsittelijä action.php... Ennen kuin kirjoitat käsittelijän, sinun on päätettävä, mihin hakemistoon kopioimme tiedoston:

if (isset ($ _ FILES ["omatiedosto"])) // Jos tiedosto on olemassa
{
$ katalogi = "../image/"; // Luettelomme
if (is_dir ($-luettelo)) // Jos sellainen hakemisto on
{
$ oma tiedosto = $ _FILES ["omatiedosto"] ["tmp_nimi"]; // Väliaikainen tiedosto
$ myfile_name = $ _FILES ["omatiedosto"] ["nimi"]; // Tiedoston nimi
if (! kopioi ($ oma tiedosto, $ katalogi)) echo "Virhe kopioitaessa tiedostoa"... $ tiedostoni_nimi // Jos tiedoston kopioiminen epäonnistui
}
else mkdir (../image/"); // Jos tällaista hakemistoa ei ole, luomme sen
}
?>

Kommentti

Jos luotat siihen, että käyttäjät lataavat tiedostoja palvelimellesi, sinun on oltava erittäin varovainen. Hyökkääjät voivat pistää "huonon" koodin kuvaan tai tiedostoon ja lähettää sen palvelimelle. Tällaisissa tapauksissa sinun on valvottava tiukasti tiedostojen lataamista.

Tämä esimerkki osoittaa, kuinka luodaan hakemisto ja kopioidaan tiedosto kyseiseen palvelimen hakemistoon.

Haluaisin myös esittää esimerkin elementistä valintaruutu... Tämä elementti eroaa hieman muista elementeistä siinä mielessä, että jos ei yksikään elementeistä valintaruutu'A ei ole valittu, niin superglobaali on $ _POST palauttaa tyhjän arvon:


Sininen
Musta
Valkoinen

if (! tyhjä ($ _ POST ["mycolor"])) echo $ _POST ["mycolor"]; // Jos vähintään 1 kohde on valittu
muu kaiku "Valitse arvo";
?>




Jos sinulla on kysyttävää tai jokin on epäselvää - tervetuloa palveluumme

Usein Web-sivustoilta löytyy sivuja, joissa on HTML-lomakkeita. Verkkolomakkeet ovat kätevä tapa saada tietoja sivustosi vierailijoilta. Esimerkki tästä on - joka antaa palautetta vierailijoille ja sivuston kehittäjille. Lomakkeet ovat myös käteviä sivuston kehittäjille, kun he kehittävät CMS:ää, mikä mahdollistaa sivuston pääominaisuuden - merkityksen - ylläpitämisen. Tämä artikkeli keskittyy HTML-lomakkeiden luomisen perusteisiin, niiden käsittelyyn ja menetelmiin tietojen siirtämiseksi näyttölomakkeista PHP-skripteihin.

1) Luo yksinkertainen lomake

Tunnisteet

ja
aseta lomakkeen alku ja loppu. Lomakkeen aloitustunniste
sisältää kaksi attribuuttia: toiminta ja menetelmä... Action-attribuutti sisältää sen skriptin URL-osoitteen, joka on kutsuttava skriptin käsittelemiseksi. Attribuutti menetelmä kertoo selaimelle, millaista HTTP-pyyntöä lomakkeen lähettämiseen tulee käyttää; mahdollisia arvoja LÄHETTÄÄ ja SAADA.

Kommentti

Suurin ero POST- ja GET-menetelmien välillä on tiedonsiirtotapa. GET-menetelmässä parametrit kuljetetaan osoitepalkin kautta, ts. Itse asiassa HTTP-pyynnön otsikossa, kun taas POST-menetelmässä parametrit välitetään HTTP-pyynnön rungon läpi, eivätkä ne näy millään tavalla osoiterivin muodossa.

$ teksti = nl2br ($ _POST ["omateksti"]);
?>

Tehtävä: Oletetaan, että sinun on luotava avattava luettelo vuosilta 2000–2050.
Ratkaisu: On tarpeen luoda HTML-lomake, jossa on SELECT-elementti ja PHP - skripti lomakkeen käsittelemiseksi.

Keskustelu:

Luodaan ensin kaksi tiedostoa: form.html ja action.php... Tiedostossa form.html sisältää html-lomakkeen avattavalla luettelolla. Lisäksi luettelon arvot voidaan määrittää kahdella tavalla:

I. Tietojen syöttäminen manuaalisesti:

II. Tietojen syöttäminen silmukan kautta:

Kuten näet, toinen esimerkki silmukalla on kompaktimpi. Mielestäni tämän lomakkeen käsittelijän skriptiä ei tarvitse tuoda, koska se käsitellään samalla tavalla kuin tekstikenttä, ts. lista-arvot voidaan hakea superglobaalisesta taulukosta $ _POST.

Kuvaus:

Luodaan HTML-lomake tiedoston lähettämiseksi palvelimelle.




Annettu html-lomake sisältää elementin selata, joka avaa valintaikkunan palvelimelle ladattavan tiedoston valitsemiseksi. Painamalla painiketta "Siirrä tiedosto", tiedosto välitetään käsittelijän komentosarjalle.

Sitten sinun on kirjoitettava komentosarjakäsittelijä action.php... Ennen kuin kirjoitat käsittelijän, sinun on päätettävä, mihin hakemistoon kopioimme tiedoston:

if (isset ($ _ FILES ["omatiedosto"])) // Jos tiedosto on olemassa
{
$ katalogi = "../image/"; // Luettelomme
if (is_dir ($-luettelo)) // Jos sellainen hakemisto on
{
$ oma tiedosto = $ _FILES ["omatiedosto"] ["tmp_nimi"]; // Väliaikainen tiedosto
$ myfile_name = $ _FILES ["omatiedosto"] ["nimi"]; // Tiedoston nimi
if (! kopioi ($ oma tiedosto, $ katalogi)) echo "Virhe kopioitaessa tiedostoa"... $ tiedostoni_nimi // Jos tiedoston kopioiminen epäonnistui
}
else mkdir (../image/"); // Jos tällaista hakemistoa ei ole, luomme sen
}
?>

Kommentti

Jos luotat siihen, että käyttäjät lataavat tiedostoja palvelimellesi, sinun on oltava erittäin varovainen. Hyökkääjät voivat pistää "huonon" koodin kuvaan tai tiedostoon ja lähettää sen palvelimelle. Tällaisissa tapauksissa sinun on valvottava tiukasti tiedostojen lataamista.

Tämä esimerkki osoittaa, kuinka luodaan hakemisto ja kopioidaan tiedosto kyseiseen palvelimen hakemistoon.

Haluaisin myös esittää esimerkin elementistä valintaruutu... Tämä elementti eroaa hieman muista elementeistä siinä mielessä, että jos ei yksikään elementeistä valintaruutu'A ei ole valittu, niin superglobaali on $ _POST palauttaa tyhjän arvon:


Sininen
Musta
Valkoinen

if (! tyhjä ($ _ POST ["mycolor"])) echo $ _POST ["mycolor"]; // Jos vähintään 1 kohde on valittu
muu kaiku "Valitse arvo";
?>

Tietojen siirron järjestämiseksi palvelimelle lomakkeella tulee ottaa käyttöön HTML-lomake, johon sivuston vierailijat syöttävät tietonsa ja PHP-koodinsa, jonka tarkoituksena on vastaanottaa ja käsitellä vastaanotetut tiedot palvelimella.

HTML-lomake tietojen lähettämistä varten

Sivulla oleva lomake muodostuu tunnisteista

...
, jonka sisään on sijoitettu tunnisteet tekstitietojen syöttökentille, tunnisteet erikoiskomponenteille (esimerkiksi yhdistelmälaatikko), tunnisteet valintakentälle ja tiedoston lataamiselle.

* HTML5:ssä on myös mahdollista sijoittaa lomakekenttätageja ei lomaketunnisteiden sisään, vaan mihin tahansa sivun kohtaan. Samanaikaisesti sinun on määritettävä jokaiselle tällaiselle kenttään "form"-attribuutti määrittääksesi, minkä lomakkeen kanssa sen tulee olla vuorovaikutuksessa.

Joten yksinkertaisin lähetyslomake saattaa sisältää seuraavan koodin:


Arvo A:
Arvo B:

Lomakeelementit ja niiden parametrit:

action = "omalomake.php"- "action"-attribuutti määrittää, mikä php-tiedosto käsittelee lähetetyt tiedot. Tässä esimerkissä tiedot lähetetään tiedostoon "myform.php", joka sijaitsee samassa hakemistossa kuin lomakesivu. Jos et nimenomaisesti määritä tätä attribuuttia, lomaketiedot lähetetään itse lomakkeen sivuosoitteeseen.

metodi = "postitus"- menetelmäparametri määrittää tiedonsiirtomenetelmän POST tai GET. Lisätietoja tästä on artikkelissa "POST- ja GET-menetelmien erot". Jos et määritä attribuuttia nimenomaisesti, GET-menetelmää käytetään oletuksena.

Teksti "Merkitys A:" ja "Arvo B:" lisätty vain lomakkeen suunnittelun ja selkeyden vuoksi käyttäjälle. Tätä ei tarvitse lisätä tiedonsiirtoa varten, mutta jotta käyttäjä ymmärtäisi mitä syöttää, se kannattaa määritellä.

Tunnisteet käytetään muodostamaan erilaisia ​​lomakeohjausobjekteja.

tyyppi = "teksti"- "type"-attribuutti määrittää kentän tyypin. Määritetyn tyypin mukaan sekä elementin ulkonäkö että sen tarkoitus muuttuvat. "text"-attribuutin arvo ilmaisee, että selain hahmontaa elementin yksirivisenä tekstikenttänä, johon käyttäjä voi syöttää merkkijononsa.

nimi = "data1"- "name"-attribuutti osoittaa nimen tai pikemminkin palvelimen vastaanottaman taulukon tietojen indeksin. Tämä on pakollinen parametri, jonka avulla välitetty arvo voidaan sitten käyttää php-käsittelijässä. Nimi voidaan valita mielivaltaisesti, mutta se on kätevämpää, kun tällä arvolla on jokin ymmärrettävä merkitys.

type = "lähetä"- tunniste tällä parametrin arvolla "tyyppi" näytetään sivulla painikkeena. Itse asiassa voit tehdä ilman painiketta lomakkeessa. Jos lomakkeessa on esimerkiksi tekstikenttiä, niin lähetys onnistuu yksinkertaisesti painamalla "Enter" näppäimistöltä. Mutta painikkeen läsnäolo tekee lomakkeesta ymmärrettävämmän.

value = "(! LANG: Lähetä" !}- tässä tapauksessa (tyypille = "lähetä") määrittää vain painikkeen kuvatekstin. Esimerkiksi tyypille = "teksti" tämä on teksti, joka näytetään tekstikentässä.

Tämän seurauksena sivulla tämä koodi näyttää suunnilleen tältä:

Arvo A:
Arvo B:

Napsauttamalla painiketta tiedot lähetetään määritetylle sivulle ja jos se on olemassa ja toimii oikein, tiedot käsitellään.

HTML-lomakkeella lähetettyjen tietojen käsittely PHP:ssä

Tällä tavalla lähetetyt tiedot sijoitetaan superglobaalisiin taulukoihin $ _POST, $ _GET ja $ _REQUEST. $ _POST tai $ _GET sisältävät tietoja sen mukaan, mitä menetelmää lähetys on käytetty. $ _REQUEST sisältää lähetetyt tiedot millä tahansa määritetyistä menetelmistä.

$ _POST, $ _GET ja $ _REQUEST ovat assosiatiivisia taulukoita, joiden hakemistokentät vastaavat tunnisteiden "name" attribuutteja ... Vastaavasti voidaksesi käsitellä myform.php-tiedoston tietoja, voit määrittää muuttujia tällaisen taulukon elementtien arvoille määrittämällä kentän nimen indeksiksi:

// GET-menetelmälle
$ a = $ _HAE [ "data1"];
$ b = $ _HAE [ "data2"];

// POST-menetelmälle
$ a = $ _POST [ "data1"];
$ b = $ _POST [ "data2"];

// mille tahansa menetelmälle
$ a = $ _PYYNTÖ [ "data1"];
$ b = $ _PYYNTÖ [ "data2"];

Lomakekenttien täyttymisen tarkistaminen

Joskus tietoja vastaanotettaessa on tarkistettava, onko käyttäjä lähettänyt tyhjän lomakkeen. Voit käyttää tätä varten tyhjää toimintoa.

if (tyhjä ($ _REQUEST ["data1"])) (
kaiku "Kenttä ei ole täytetty";
} muu (
kaiku "Kenttä on täytetty";
$ a = $ _PYYNTÖ [ "data1"];
}

Yleensä tämä ratkaisu riittää. Jos sinun on syötettävä tekstiä, on selvää, onko se syötetty vai ei. Jos käyttäjä kuitenkin syöttää tarkoituksella nollan laskelmia varten, tyhjä funktio näyttää, että arvoa ei ole. Siksi on parempi käyttää isset-toimintoa tällaisissa tilanteissa. Se tarkistaa nimenomaisesti, onko arvo annettu vai ei.

if (isset ($ _REQUEST ["data1"])) (
kaiku "Kenttä on täytetty";
$ a = $ _PYYNTÖ [ "data1"];
} muu (
kaiku "Kenttä ei ole täytetty";
}

leijonan osa tehtäviä PHP:ssä liittyvät käyttäjältä saatujen tietojen käsittelyyn. Ja useimmissa tapauksissa nämä tiedot saadaan lomakkeesta, siksi PHP-lomakkeen käsittely on tärkein kohta milloin verkkosivujen luominen, josta puhun tässä artikkelissa.

Ensin luodaan HTML-lomake:



Lomake



Kirjautumistunnuksesi:


Salasanasi:





Tämä on esimerkki klassikosta käyttäjien valtuutuslomakkeet, jonka olen varma, että monet teistä ovat täyttäneet useita kertoja eri sivustoilla. Keskustellaan nyt yhdestä tärkeästä asiasta: miten tiedot lähetetään? On olemassa kaksi tapaa (tarkastelemme vain kahta kanssasi) - nämä ovat SAADA ja LÄHETTÄÄ... Niiden tärkein ero on lähetystyyppi: avoin ( SAADA) ja suljettu ( LÄHETTÄÄ). Paras tapa ymmärtää ero on avata annettu Html-koodi selaimessa ja napsauta " Tulla sisään"Katso osoitepalkkia ja kokeile sitten toista tapaa, käy läpi ja katso osoitepalkkia uudelleen. Ero tulee heti näkyviin.

Vastaavasti sisään PHP on kaksi taulukkoa: $ _GET ja $ _POST jotka sisältävät kullakin näistä menetelmistä saadut tiedot. On myös taulukko $ _REQUEST joka sisältää dataa $ _GET ja $ _POST samanaikaisesti. Suosittelen käyttämään POST-menetelmä ja $ _POST -joukko, vaikka se tietysti riippuu tilanteesta, mutta useimmissa tapauksissa he tekevät juuri näin.

Nyt käsitellään tietoja. Toteutetaan yksinkertainen komentosarja (tiedostossa " req.php"):

$ kirjautuminen = $ _POST ["kirjautuminen"];
$ pass = $ _POST ["hyväksy"];
if (($ login == "Admin") && ($ pass == "AdminPass"))
echo "Hei Admin!";
else echo "Pääsy kielletty";
?>

Tässä skriptissä saamme lomakkeesta saadut tiedot POST-menetelmällä(alkaen taulukko $ _POST, vaikka he olisivat voineet saada nämä tiedot samalla menestyksellä $ _PYYNTÖ). Sitten tarkistamme käyttäjätunnuksen ja salasanan ja näytämme: "Hei, Admin!" tai "Pääsy kielletty". Tietenkin, jotta voit luoda järjestelmän käyttäjien valtuuttamiseksi sivustolle, sinun on opittava lisää evästeen tai noin istuntoja(periaatteessa myös evästeen), mutta puhumme niistä hieman myöhemmin, koska meillä on vielä paljon tärkeitä aiheita edessä.

Periaatteessa parametrien välittämiseen käytetään menetelmiä LÄHETTÄÄ ja SAADA.
Tärkein ero menetelmien välillä LÄHETTÄÄ ja SAADA piilee tavassa, jolla tiedot välitetään. Menetelmässä SAADA parametrit välitetään osoitepalkin kautta ( URL-osoite), eli v HTTP-pyynnön otsikko, ollessaan menetelmässä LÄHETTÄÄ parametrit kulkevat kehon läpi HTTP-pyyntö, eivätkä ne näy osoitepalkissa millään tavalla.

1. Painikkeet - Tag

Tag vaaditaan.
Vaihtoehdot:
liikuntarajoitteinen- estää pääsyn ja muokkaamisen elementtiin.
tyyppi- painikkeen tyyppi
arvo- Painikkeen arvo, joka lähetetään palvelimelle tai luetaan skriptien avulla.


Parametri LIIKUNTARAJOITTEINEN
Lukitsee painikkeen käytön ja vaihtamisen. Tässä tapauksessa se näkyy harmaana, eikä käyttäjä voi aktivoida sitä. Lisäksi tällainen painike ei voi vastaanottaa tarkennusta painamalla näppäintä. Tab, hiirellä tai muulla tavalla. Painikkeen tätä tilaa voidaan kuitenkin muuttaa skriptien avulla.

Parametri TYYPPI
Määrittää painikkeen tyypin, joka määrittää sen toiminnan lomakkeella. Ulkonäöltään erityyppiset painikkeet eivät eroa millään tavalla, mutta jokaisella tällaisella painikkeella on omat toimintonsa. Oletusarvo: -painiketta.
Argumentit:
-painiketta- Tavallinen painike.
nollaa- Painike tyhjentää syötetyt lomaketiedot ja palauttaa arvot alkuperäiseen tilaan.

Lähetä - Painike lomaketietojen lähettämiseen palvelimelle.

Parametri ARVO Määrittää palvelimelle lähetettävän painikkeen arvon. Pari " nimi = arvo", jossa nimi määritellään tagin nimiparametrilla

1.1. Painike (syöttötyyppi = painike)
1.2. Painike kuvalla (syöttötyyppi = kuva)

Kuvapainikkeilla on sama toiminta kuin painikkeella Lähetä vaan edustavat piirustusta. Tätä varten määritimme tyyppi = kuva ja src = "image.gif".

Kun käyttäjä napsauttaa mitä tahansa kuvan kohtaa, vastaava lomake lähetetään palvelimelle kahdella lisämuuttujalla - ala_x ja ala_y... Ne sisältävät koordinaatit siitä, kuinka käyttäjä klikkaa kuvaa. Kokeneet ohjelmoijat saattavat huomata, että selaimen lähettämät muuttujien nimet sisältävät pisteen, eivät alaviivaa, mutta PHP muuntaa pisteen automaattisesti alaviivaksi.

1.3. Lomakkeen lähetyspainike (syöttötyyppi = lähetä)

Käytetään lomakkeen lähettämiseen käsikirjoitukseen. Kun luot painiketta lomakkeen lähettämistä varten, sinun on määritettävä 2 attribuuttia: type = "lähetä" ja value = "(! LANG: Painikkeen teksti" !}... Nimi-attribuutti vaaditaan, jos painiketta ei ole yksi, vaan useita, ja ne kaikki luodaan eri toimintoja varten, esimerkiksi painikkeet "Tallenna", "Poista", "Muokkaa" jne. Painikkeen napsautuksen jälkeen skriptille välitetään merkkijonon nimi = painikkeen teksti.


PHP-skriptiä ei tarvita.

1.4 Painikkeita (lähetä) toimintovaihtoehdon valitsemista varten
2. Muodon palautuspainike (Palauta)

Kun painat nollauspainiketta ( nollaa), kaikki lomakeelementit asetetaan oletusmääritteissä määritettyyn tilaan, eikä lomaketta lähetetä.


PHP-skriptiä ei tarvita.

3. Valintaruutu

Valintaruudut tarjoavat käyttäjälle useita vaihtoehtoja ja sallivat mielivaltaiset valinnat (ei yhtään, yksi tai useampi).

Valkoinen
Vihreä
Sininen
Punainen
Musta
$ go) (echo $ index. "->". $ go. "
"; }; };

4. Kytkin (radio)

Radiopainikkeet tarjoavat käyttäjälle useita vaihtoehtoja, mutta vain yhden niistä voi valita.
Esimerkki 1.

Valkoinen
Vihreä
Sininen
Punainen
Musta

Esimerkki 2.
// ensimmäinen painikesarja
// toinen painikesarja
// kolmas painikesarja
\ n ";?>

5. Tekstikenttä (teksti)

Kun luot tavallista tekstiruutua, jonka koko on ja suurin sallittu pituus Maksimi pituus merkkiä, type-attribuutti saa arvon teksti... Jos parametri on määritetty arvo, kentässä näkyy muuttujassa määritetty arvo. Kun luot kenttää, älä unohda määrittää kentän nimeä, koska tämä attribuutti on pakollinen.

6. Kenttä salasanan syöttöä varten (salasana)

Täysin samanlainen kuin tekstikenttä, paitsi että käyttäjän kirjoittamat merkit eivät näy näytöllä.

7. Piilotettu tekstikenttä (piilotettu)

Mahdollistaa jonkinlaisen palvelutietojen siirtämisen skriptiin näyttämättä niitä sivulla.

8. Pudotusvalikko (valitse)

Tag ... Tunnisteet voit määrittää luettelon sisällön ja parametrin arvo määrittää merkkijonon arvon. Jos tunniste määritetty parametri valittu, niin rivi valitaan aluksi. Koko-parametri määrittää, kuinka monta riviä luettelo vie. Jos koko on yhtä suuri kuin 1 niin luettelo tulee avattavaksi. Jos määrite on määritetty useita sitten on sallittua valita useita kohteita luettelosta. Mutta tätä järjestelmää ei käytännössä käytetä ja milloin koko = 1 ei ole järkeä.

Jos sinun on luotava pudotusvalikko, jossa on ennakoitava järjestys. Esimerkiksi luettelo vuosista 2000-2050. Sitten käytetään seuraavaa tekniikkaa.

9. Monirivinen tekstinsyöttökenttä (tekstialue)

Monirivisen tekstinsyöttökentän avulla voit lähettää yhden rivin sijaan useita kerralla. Valinnaisesti voit määrittää määritteen Lue ainoastaan, joka kieltää tekstin muokkaamisen, poistamisen ja muuttamisen, ts. teksti on vain luku -tilassa. Jos haluat tekstin näkyvän aluksi monirivisessä syöttökentässä, se on sijoitettava tunnisteiden väliin .
On parametri kääri- rivien käärintätehtävä. Mahdolliset arvot:
vinossa- poistaa rivien rivityksen käytöstä;
virtuaalit- näyttää rivinvaihdot, mutta lähettää tekstin sellaisena kuin se on syötetty;
fyysistä- rivinvaihdot jätetään ennalleen.
Oletustunniste on

Jotta monirivinen tekstikenttä olisi HTML-muotoilun mukainen (rivin rivitys tunnisteen avulla
tai
), käytä sitten toimintoa nl2br ():

10. Painike tiedostojen lataamiseen (selaa)

Toteuttaa tiedostojen lataamisen palvelimelle. Kun luot tekstiruutua, sinun on myös määritettävä laatikon tyyppi tyyppi Miten "tiedosto".

Lataa tiedosto:

Kuinka selain kommunikoi palvelimen kanssa

Protokollan tarjoamat menetelmät HTTP, Vähän. Tämä on tärkeää tietoa. Muita tapoja ei ole. Käytännössä käytetään kahta:
SAADA Kun tiedot välitetään osoitepalkkiin, esimerkiksi kun käyttäjä napsauttaa linkkiä.
LÄHETTÄÄ- kun hän napsauttaa lomakkeen painiketta.

GET-menetelmä

Tietojen välittäminen menetelmällä SAADA ei tarvitse luoda lomaketta HTML-sivulle (käytä lomakkeita pyyntöihin käyttämällä SAADA kukaan ei kiellä) - linkki dokumenttiin, johon on lisätty kyselymerkkijono, joka voi näyttää muuttuja = arvo, riittää. Parit ketjutetaan käyttämällä et-merkkiä &, ja merkkijono liitetään sivun URL-osoitteeseen käyttämällä kysymysmerkkiä " ? ».
Mutta et voi käyttää avain = arvo -pareja, jos sinun on siirrettävä vain yksi muuttuja - tätä varten sinun on kirjoitettava muuttujan ARVO (ei nimi) kysymysmerkin jälkeen.
Etu parametrien välittäminen tällä tavalla on asiakkaille, jotka eivät voi käyttää menetelmää LÄHETTÄÄ(esimerkiksi hakukoneet) voivat silti vain seurata linkkiä ja välittää parametreja skriptille ja saada sisällön.
Virhe siinä, että yksinkertaisesti muuttamalla osoitepalkin parametreja käyttäjä voi kääntää komentosarjan kulkua arvaamattomalla tavalla ja tämä luo valtavan tietoturva-aukon yhdistettynä määrittelemättömiin muuttujiin ja register_globals päällä tai joku voi saada selville tärkeän muuttujan arvon (esim ID istunnot) yksinkertaisesti katsomalla näyttöä.
:
- päästä julkisille sivuille välitysparametreilla (lisää toiminnallisuutta)
- sellaisten tietojen siirto, jotka eivät vaikuta turvallisuustasoon
:
- päästäksesi suojatuille sivuille parametrien välityksellä
- turvallisuustasoon vaikuttavien tietojen välittämiseen
- lähettää tietoja, joita käyttäjä ei voi muokata (jotkut lähettävät SQL-kyselyjen tekstiä.

POST-menetelmä

Siirrä tiedot menetelmän mukaan LÄHETTÄÄ voidaan tehdä vain HTML-sivulla olevalla lomakkeella. Tärkein ero LÄHETTÄÄ alkaen SAADA se, että tietoja ei välitetä pyynnön otsikossa, vaan rungossa, joten käyttäjä ei näe sitä. Muokkaus voidaan tehdä vain muuttamalla itse lomaketta.
Etu:
- Parempi tietoturva ja toiminnallisuus pyyntöjen avulla lomakkeita käyttäen POST-menetelmällä.
Virhe:
- vähemmän saatavuutta.
Mihin käyttää:
- siirtää suuria määriä tietoa (tekstiä, tiedostoja ..);
- välittää kaikki tärkeät tiedot;
- pääsyn rajoittaminen (esim. käytä vain lomaketta navigointiin - mahdollisuus ei ole kaikkien robottiohjelmien tai sisällön sieppaajien käytettävissä).
Mihin ei saa käyttää:

PHP pystyy hyväksymään tiedoston, joka voidaan ladata millä tahansa selaimella. Tämä mahdollistaa sekä teksti- että binääritiedostojen lataamisen. Yhdessä PHP-todennuksen ja tiedostojärjestelmän kanssa työskentelyyn liittyvien toimintojen kanssa voit hallita täysin sitä, kuka saa ladata tiedostoja ja mitä tiedostolla tehdä sen jälkeen, kun se on ladattu.
Tiedostojen lataussivu voidaan toteuttaa erityisellä lomakkeella, joka näyttää suunnilleen tältä:

// Lomake tiedostojen lataamista varten

Lähetä tämä tiedosto:

Yllä olevassa esimerkissä "URL-osoite" on korvattava linkillä PHP-skriptiin. Piilotettu kenttä MAX _FILE_SIZE(arvo on määritettävä tavuina) on edeltävä tiedoston valintakenttää ja sen arvo on vastaanotetun tiedoston enimmäiskoko. Varmista myös, että olet määrittänyt lomakkeen attribuutit enctype = "moniosainen / muototiedot" muuten tiedostoja ei ladata palvelimelle.
Huomio
Vaihtoehto MAX _FILE_SIZE on suositus selaimelle, vaikka PHP olisi myös tarkistanut tämän ehdon. Tämän rajoituksen ohittaminen selainpuolella on yksinkertaista, joten sinun ei pitäisi luottaa siihen, että kaikki suuret tiedostot estetään tämän ominaisuuden avulla. PHP:n enimmäiskokorajoitusta ei kuitenkaan voi kiertää. Sinun tulee joka tapauksessa lisätä lomakemuuttuja MAX _FILE_SIZE koska se estää käyttäjiä odottamasta innokkaasti siirrettäessä suuria tiedostoja, jotta he huomaavat, että tiedosto on liian suuri ja siirtoa ei todellakaan tapahtunut.

Kuinka määritän pyyntömenetelmän?

Suoraan:

Getenv ("REQUEST_METHOD");

palaa SAADA tai LÄHETTÄÄ.

Mitä menetelmää tulisi käyttää?

Jos lomake palvelee tietojen pyytämistä esimerkiksi haun yhteydessä, se tulee lähettää menetelmällä SAADA... Voit päivittää sivun lisäämällä kirjanmerkkeihin ja/tai lähettämällä linkin ystävälle.
Jos lomakkeen lähettämisen seurauksena palvelimelle kirjoitetaan tai muutetaan tietoja, se tulee lähettää menetelmällä LÄHETTÄÄ, ja on välttämätöntä, että lomakkeen käsittelyn jälkeen sinun on ohjattava selain uudelleen menetelmällä SAADA... Samalla tavalla, LÄHETTÄÄ saattaa olla tarpeen, jos sinun on siirrettävä suuri määrä tietoa palvelimelle (esim SAADA se on hyvin rajoitettu), sekä jos lähetetyt tiedot eivät saisi "loistaa" osoitepalkissa (esimerkiksi käyttäjätunnusta ja salasanaa syötettäessä).
Joka tapauksessa käsittelyn jälkeen LÄHETTÄÄ sinun on aina ohjattava selain jollekin sivulle, vaikka samalle, mutta ilman lomaketietoja, jotta sivun päivityksen yhteydessä niitä ei kirjoiteta uudelleen.

Kuinka voin siirtää tietoja toiseen tiedostoon suoraan PHP-ohjelman rungosta GET- ja POST-menetelmillä?

Esimerkki havainnollistaa tietojen lähettämistä POST- ja GET-menetelmillä samanaikaisesti ja vastauksen vastaanottamista palvelimelta.