Kuidas mees end liikmete nimekirja php vormis tunneb. Tagasiside vorm PHP-s koos e-posti teel saatmisega. Tagasiside vorm PHP-s

JavaScript on teie brauseris blokeeritud. Saidi toimimiseks lubage JavaScript!

Töötamine vormidega

HTML-vorme kasutatakse andmete edastamiseks veebilehe kasutajalt serverisse. PHP pakub vormidega töötamiseks mitmeid spetsiaalseid tööriistu.

Eelmääratletud muutujad

PHP-l on mitmeid eelmääratletud muutujaid, mis ei muutu kõigis konkreetses keskkonnas töötavates rakendustes. Neid nimetatakse ka keskkonnamuutujateks või keskkonnamuutujateks. Need kajastavad Apache veebiserveri keskkonna sätteid ja küsivad teavet selle brauseri kohta. On võimalik hankida URL-i, päringustringi ja muude HTTP-päringu elementide väärtused.

Kõik eelmääratletud muutujad sisalduvad assotsiatiivses massiivis $GLOBALS. See massiiv sisaldab lisaks keskkonnamuutujatele ka programmis määratletud globaalseid muutujaid.

Näide 1

$GLOBALS massiivi vaatamine $väärtus) echo "\$GLOBALS[\"$key\"] == $väärtus
"; ?>

Selle tulemusena kuvatakse ekraanile kõigi globaalsete muutujate loend, sealhulgas keskkonnamuutujad. Kõige sagedamini kasutatavad on:

MuutuvKirjeldusSisu
$_SERVER["HTTP_USER_AGENT"]Kliendi nimi ja versioonMozilla/5.0 (ühilduv; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]IP-aadress144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")Kliendi sisemine IP-aadress
$_SERVER["REQUEST_METHOD"]Taotluse meetod (GET või POST)SAADA
$_SERVER["QUERY_STRING"]GET-päringu korral saadetakse kodeeritud andmed koos URL-iga
$_SERVER["REQUEST_URL"]Kliendi täielik aadress koos päringustringiga
$_SERVER["HTTP_REFERER"]Selle lehe URL, millelt päring tehti
$_SERVER["PHP_SELF"]Käitava programmi tee/index.php
$_SERVER["SERVER_NAME"]Domeenveebisait
$_SERVER["REQUEST_URI"]Tee/php/php_form.php

Kasutaja sisendi käsitlemine

PHP sisendtöötlusprogrammi saab eraldada sisestusvorme sisaldavast HTML tekstist või paigutada ühele lehele.

Näide 2

Sisendtöötluse näide

" method="post">

Kaardi number:



Siin pole andmeedastusnuppu, sest... ühest väljast koosnev vorm esitatakse klahvi vajutamisel automaatselt .

Mitme väärtusega valikuga elemendi töötlemisel tuleb kõikidele valitud väärtustele juurdepääsuks lisada elemendi nimele paar nurksulgu. Mitme üksuse valimiseks hoidke all klahvi Ctrl.

Näide 3.1

Nimekiri



NÄITE 3.1 TULEMUS:

Näide 3.2

Loendi töötlemine failist ex1.htm

    "; foreach ($Item as $value) kaja"
  • $väärtus"; kaja "
"; ?>

Näide 4. Väärtuste vastuvõtmine märkeruutudest

$v) ( if($v) echo "Te teate programmeerimiskeelt $k!
"; else echo "Sa ei tea $k programmeerimiskeelt.
"; } } ?>
" method="post"> Milliseid programmeerimiskeeli teate?
PHP
Perl

NÄITE 4 TULEMUS:

Näide 5

"; ?>
" method="post">

Saate vorme töödelda ilma tegelike väljanimede pärast muretsemata.

Selleks saab kasutada (olenevalt edastusmeetodist) assotsiatiivset massiivi $HTTP_GET_VARS või $HTTP_POST_VARS . Need massiivid sisaldavad esitatud vormi iga elemendi nime/väärtuse paare. Kui te ei hooli, võite kasutada assotsiatiivset massiivi $_REQUEST .

Näide 6

Käsitsege suvalist sisendit olenemata edastusmeetodist $value) echo "$key == $väärtus
"; ?>

Näide 7: nupuvajutuse käsitlemine, kasutades operaatorit "@".

">

Kasutades header() funktsiooni, saates brauserile päise "Asukoht", saate suunata kasutaja uuele lehele.

Näiteks:

Faili edastamine serverisse. Laadige fail üles. Laadi üles

PHP võimaldab faile serverisse üle kanda. Faili esitamiseks mõeldud HTML-vorm peab sisaldama argumenti enctype="multipart/form-data".

Lisaks peaks vormil enne faili kopeerimise välja olema peidetud väli nimega max_file_size. Sellele peidetud väljale tuleks kirjutada ülekantava faili maksimaalne suurus (tavaliselt mitte rohkem kui 2 MB).

Failiedastusväli ise on tavaline INPUT-element argumendiga type="file".

Näiteks:

" method="post">

Pärast faili serverisse ülekandmist antakse sellele kordumatu nimi ja see salvestatakse ajutiste failide kataloogi. Faili täielik tee kirjutatakse globaalsesse muutujasse, mille nimi ühtib selle faili ülekandmise välja nimega. Lisaks salvestab PHP ülekantud faili kohta lisateavet muudesse globaalsetesse muutujatesse:

Näide 8

Edastatud faili töötlemine "; echo "nimi: ".$_FILES["kasutajafail"]["nimi"]."
"; echo "suurus: ".$_FILES["kasutajafail"]["suurus"]."
"; echo "type: ".$_FILES["kasutajafail"]["tüüp"]."
"; } ?>
" method="post">



Näited failide serverisse üleslaadimisest

Kui serveri poolt allalaaditud faili ümberkodeerimisel ilmnevad probleemid, siis sümbol koos koodiga 0x00 asendatakse tühikuga (märk koodiga 0x20), lisa faili httpd.conf Apache kataloogist (/usr/local/apache) järgmised read.

CharsetRecodeMultipartForms väljas

Üks suurepäraseid asju PHP juures on viis, kuidas see töötab HTML-vormidega. Siin on peamine, et iga vormielement muutub teie PHP programmidele automaatselt kättesaadavaks. Üksikasjaliku teabe saamiseks PHP-s vormide kasutamise kohta lugege jaotist. Siin on HTML-i vormi näide:

Näide nr 1 Lihtsaim HTML-vorm

Sinu nimi:

Sinu vanus:

Selles vormis pole midagi erilist. See on tavaline HTML-vorm ilma spetsiaalsete siltideta. Kui kasutaja täidab vormi ja klõpsab esitamisnupul, kutsutakse action.php leht. Sellel failil võib olla midagi sellist:

Näide #2 Vormiandmete kuvamine

Tere, .
Sulleaastat.

Selle programmi väljundi näide:

Tere, Sergey. Olete 30-aastane.

Kui te ei võta arvesse kooditükke htmlspecialchars() Ja (int), peaks selle koodi tööpõhimõte olema lihtne ja arusaadav. htmlspecialchars() Tagab, et "erilised" HTML-märgid on korralikult kodeeritud, et teie lehele ei sisestataks pahatahtlikku HTML-i või Javascripti. Vanusevälja, milleks me teame, peaks olema arv, saame lihtsalt teisendada täisarv, mis vabaneb automaatselt soovimatutest tegelastest. PHP saab seda teha ka automaatselt, kasutades filtrilaiendit. PHP määrab teie jaoks automaatselt muutujad $_POST["nimi"] ja $_POST["vanus"]. Varem kasutasime superglobaalset muutujat $_SERVER, kuid siin kasutasime ka $_POST superglobaalset muutujat, mis sisaldab kõiki POST-i andmeid. Märka seda saatmisviis(meetod) on POST. Kui kasutaksime meetodit SAADA, siis oleks meie vormiteave superglobaalses muutujas $_GET . Teise võimalusena võite kasutada muutujat $_REQUEST, kui andmeallikal pole tähtsust. See muutuja sisaldab GET-, POST- ja COOKIE-andmete segu.

15 aastat tagasi

HTTP spetsifikatsiooni kohaselt peaksite kasutama POST-meetodit, kui kasutate vormi millegi serveripoolses oleku muutmiseks. Näiteks kui lehel on vorm, mis võimaldab kasutajatel lisada oma kommentaare, nagu see Kui klõpsate POST-i kaudu jõudnud lehel "Laadi uuesti" või "Värskenda", on see peaaegu alati viga – te ei tohiks sama kommentaari kaks korda postitada. Seetõttu ei lisata neid lehti järjehoidjatesse ega vahemällu.

Peaksite kasutama GET-meetodit, kui teie vorm võtab midagi serverist välja ega muuda tegelikult midagi. Näiteks peaks otsingumootori vorm kasutama GET-i, kuna veebisaidilt otsimine ei tohiks muuta midagi, millest klient võiks hoolida, ning otsingumootori päringu tulemuste järjehoidjatesse lisamine või vahemällu salvestamine on sama kasulik kui järjehoidja või vahemällu salvestamine. staatiline HTML-leht.

2 aastat tagasi

Tasub selgitada:

POST ei ole turvalisem kui GET.

GET vs POST valimise põhjused on seotud mitmete teguritega, nagu päringu kavatsus (kas "esitate" teavet?), päringu suurus (URL-i pikkusele on piirangud ja GET-i parameetrid saadetakse URL) ja kui hõlpsalt soovite toimingut jagada. Näiteks Google'i otsingud on GET, kuna see muudab otsingupäringu kopeerimise ja jagamise lihtsalt URL-i jagamise kaudu hõlpsaks.

Turvalisus on siinkohal oluline ainult seetõttu, et GET-i on lihtsam jagada kui POST-i. Näide: te ei soovi, et GET saadaks parooli, kuna kasutaja võib saadud URL-i jagada ja kogemata oma parooli paljastada.

Siiski on GET-i ja POST-i võrdselt lihtne pealt kuulata hea asukohaga pahatahtlik isik, kui te võrguühenduse enda kaitsmiseks TLS-i/SSL-i ei juuruta.

Kõik HTTP kaudu saadetud vormid (tavaliselt port 80) on ebaturvalised ja tänapäeval (2017) pole palju häid põhjusi, miks avalik veebisait HTTPS-i (mis on põhimõtteliselt HTTP + transpordikihi turvalisus) mitte kasutanud.

Boonusena vähendate TLS-i kasutamisel ohtu, et teie kasutajad saavad teie liiklusesse koodi (AD-sid), mida te pole sinna sisestanud.

Selles õppetükis õpime tundma funktsiooni mail() loomise näitel Tagasiside vormid PHP-s millele järgneb saadud andmete e-posti teel saatmine.

Selleks loome kaks faili - formaat.php Ja mail.php. Esimene fail sisaldab ainult vormi, kus on väljad, kuhu kasutaja saab andmeid sisestada. Sildi sees vormi- nupp "Saada" ja atribuut tegevust mis viitab käitlejale - mail.php, see on see, et vormi andmetele pääseb juurde nupu vajutamisel "Saada". Meie näites saadetakse vormi andmed veebilehele nimega "/mail.php". See leht sisaldab skripti PHP mis töötleb vormiandmeid:


Vormi andmed saadetakse kasutades POSTITA(töödeldud kui $_POST). $_POST on muutujate massiiv, mis edastatakse praegusele skriptile meetodi kaudu POSTITA.

Allpool näete faili sisu formaat.php, mille väljad täidab mõnel veebilehel kasutaja ise. Kõigil andmesisestusväljadel peab olema atribuut nimi, määrame väärtused ise, lähtudes loogikast.




Tagasiside vorm PHP-s saadetud meili teel


Tagasiside vorm PHP-s







Jäta sõnum:
Sinu nimi:



E-post:

Telefoninumber:

Sõnum:

Tekstiala võib sisaldada piiramatul arvul märke-->









Nii näeb vorm brauseris visuaalselt välja.

Järgmisena kirjutame faili koodi mail.php. Me mõtleme muutujatele välja oma nimed. IN PHP muutuja algab märgiga $ millele järgneb muutuja nimi. Muutuja tekstiväärtus on jutumärkides. Muutujate abil saadetakse vormi sisu administraatori meilile, pannes lihtsalt vormielemendi nime nurksulgudesse – väärtus nimi.

$kuni = " [e-postiga kaitstud]"; // vormilt andmete saaja meiliaadress
$tema = "Tagasisidevorm PHP-s"; // saabunud meili teema
$message = "Teie nimi: ".$_POST["nimi"]."
";//määrake muutujale vormist nimi=nimi saadud väärtus
$message .= "E-post: ".$_POST["e-post"]."
"; //saadud kujul nimi=e-post
$message .= "Telefoninumber: ".$_POST["telefon"]."
"; //saadud kujul nimi=telefon
$message .= "Sõnum: ".$_POST["sõnum"]."
"; //saadud kujul nimi=teade
$headers = "MIME-versioon: 1.0" . "\r\n"; // päis vastab vormingule ja reavahetusele
$headers .= "Sisutüüp: text/html; charset=utf-8" . "\r\n"; // näitab saadetava sisu tüüpi
mail($adressaat, $tema, $sõnum, $päised); //saadab adressaadile muutuvaid väärtusi meili teel
?>

Seega andmed massiivist $_POST edastatakse vastavatele muutujatele ja saadetakse funktsiooni abil meili teel mail. Täidame oma vormi ja klõpsake nuppu Esita. Ärge unustage lisada oma e-posti. Kiri saabus koheselt.