Névjegyek

Az űrlap kiadása adatokat küldött a php -nek. HTML űrlapok létrehozása. II. Adatok bevitele hurkon keresztül

Ahhoz, hogy egy űrlap segítségével megszervezhesse az adattovábbítást a szerverre, be kell vezetnie egy HTML -űrlapot, amelybe a webhely látogatói beírják adataikat és PHP -kódjukat, amelynek célja a fogadott adatok fogadása és feldolgozása a szerveren.

HTML űrlap adatküldéshez

Az oldalon található űrlapot címkék alkotják

...
, amelyeken belül címkék vannak elhelyezve a szöveges információk bevitelére szolgáló mezőkhöz, címkék speciális összetevőkhöz (például kombinált doboz), címkék egy kiválasztási mezőhöz és fájlfeltöltéshez.

* HTML5 esetén az űrlapmezőcímkéket nem az űrlapcímkék belsejébe, hanem az oldal bármely pontjára lehet helyezni. Ezenkívül minden ilyen mezőnél meg kell adnia a "form" attribútumot annak meghatározásához, hogy a beküldés melyik formájával kell együttműködnie.

Tehát a legegyszerűbb benyújtási űrlap a következő kódot tartalmazhatja:


A érték:
B érték:

Űrlap elemei és paramétereik:

action = "myform.php"- az "action" attribútum határozza meg, hogy melyik php fájl fogja feldolgozni az elküldött adatokat. Ebben a példában az adatokat a "myform.php" fájlba küldjük, amely ugyanabban a könyvtárban található, mint az űrlappal rendelkező oldal. Ha ez az attribútum nincs kifejezetten megadva, akkor az űrlapadatok elküldésre kerülnek az űrlap oldalcímére.

method = "post"- a method paraméter a POST vagy GET adatátviteli módot határozza meg. További részletek erről a "POST és GET módszerek közötti különbségek" című cikkben találhatók. Ha nem adja meg kifejezetten az attribútumot, akkor alapértelmezés szerint a GET metódust fogja használni.

Szöveg "A jelentése:"és "B érték:" csak a tervezés és az űrlap áttekinthetősége érdekében adható hozzá a felhasználó számára. Ezt nem szükséges hozzáadni az adatátvitelhez, de ahhoz, hogy a felhasználó megértse, mit kell megadnia, érdemes megadni.

Címkék: különböző űrlapvezérlők készítésére szolgálnak.

type = "text"- a "type" attribútum határozza meg a mező típusát. Attól függően, hogy milyen típus van megadva, az elem megjelenése és célja is megváltozik. A "text" attribútum értéke azt jelzi, hogy a böngésző egysoros szövegmezőként jeleníti meg az elemet, ahová a felhasználó beírhatja a karakterláncát.

name = "data1"- a "name" attribútum a szerver által kapott tömb adatainak nevét, vagy inkább indexét jelzi. Ez egy kötelező paraméter, amellyel az átadott érték elérhető a php kezelőben. A név tetszőlegesen választható, azonban kényelmesebb, ha ennek az értéknek valamilyen érthető jelentése van.

type = "benyújtás"- címke ezzel a "type" paraméter értékével gombként jelenik meg az oldalon. Valójában az űrlapon gomb nélkül is megteheti. Ha például az űrlapon szövegmezők vannak, akkor a küldés egyszerűen a billentyűzet "Enter" gombjának megnyomásával történhet. De a gomb jelenléte érthetőbbé teszi az űrlapot.

value = "(! LANG: Küldés" !}- ebben az esetben (típus = "benyújtás") csak a gombon található feliratot határozza meg. A type = "text" esetén például ez lesz a szöveg, amely megjelenik a szövegmezőben.

Ennek eredményeként az oldalon ez a kód valahogy így fog kinézni:

A gombra kattintva az adatok a megadott oldalra kerülnek, és ha léteznek és megfelelően működnek, akkor az adatok feldolgozásra kerülnek.

A beküldött HTML űrlap feldolgozása PHP -ben

Az így elküldött adatok a $ _POST, $ _GET és $ _REQUEST szuperglobális tömbökbe kerülnek. A $ _POST vagy a $ _GET adatokat fog tartalmazni attól függően, hogy milyen módszert használt a küldéshez. A $ _REQUEST a megadott módszerek bármelyikével tartalmazza a beküldött adatokat.

A $ _POST, $ _GET és $ _REQUEST asszociatív tömbök, amelyek indexmezői megegyeznek a címkék "name" attribútumaival ... Ennek megfelelően a myform.php fájlban lévő adatokkal való kezeléshez hozzárendelheti a változókhoz az ilyen tömb elemeinek értékeit a mező nevének indexként való megadásával:

// a GET metódushoz
$ a = $ _GET [ "data1"];
$ b = $ _GET [ "data2"];

// a POST módszerhez
$ a = $ _POST [ "data1"];
$ b = $ _POST [ "data2"];

// bármilyen módszerhez
$ a = $ _REQUEST [ "data1"];
$ b = $ _REQUEST [ "data2"];

Az űrlapmezők kitöltésének ellenőrzése

Néha az adatok fogadásakor ellenőriznie kell, hogy a felhasználó üres űrlapot küldött -e be. Ehhez használhatja az üres funkciót.

if (üres ($ _REQUEST ["data1"]))) (
visszhang "A mező nincs kitöltve";
} más (
visszhang "A mező kitöltve";
$ a = $ _REQUEST [ "data1"];
}

Általában ez a megoldás elegendő. Ha szöveget kell beírnia, egyértelmű lesz, hogy be van -e írva vagy sem. Ha azonban a felhasználó szándékosan beírja a nullát a számításokhoz, akkor az üres függvény azt mutatja, hogy nincs érték. Ezért jobb, ha ilyen esetekben használja az isset funkciót. Kifejezetten ellenőrzi, hogy az érték megadva van -e vagy sem.

if (isset ($ _REQUEST ["data1"]))) (
visszhang "A mező kitöltve";
$ a = $ _REQUEST [ "data1"];
} más (
visszhang "A mező nincs kitöltve";
}

vagy hogyan kell e-mail üzenetet küldeni egy HTML űrlap használatával

Saját weboldala van, és leveleket vagy üzeneteket szeretne kapni a felhasználóitól, kérdéseket, tanácsokat vagy csak kívánságokat e-mailben, akkor ez a lecke az Ön számára!

Hogyan lehet üzenetet küldeni e-mailben

A következő fájlokra van szükségünk:

  1. form.html - egy űrlappal rendelkező oldal.
  2. form_processing.php - szkript fájl, HTML űrlap feldolgozása.

Tekintsük a form.html kódot:

HTML űrlapfeldolgozás PHP -vel



A neved:


Email:


Téma:


Üzenet:







HTML űrlap mezőket tartalmaz a felhasználó nevének, postacímének, az üzenet tárgyának, az üzenet szövegének és a „Küldés” gombnak a megadására, amikor rákattint, az információ feldolgozásra kerül PHP script a form_processing.php fájlban.

A hipertext szállítási módnak két jelentése van: get (alapértelmezett) és post. A post módszert gyakrabban használják, mivel lehetővé teszi nagy mennyiségű adat továbbítását. A feldolgozási szkriptnek a post módszeren keresztül átadott összes értéket a $ _POST asszociatív tömb tárolja (ez a tömb eredetileg a php tolmácsba épült), amely a $ _POST változókból áll, ahol a név a bemenet tényleges neve mező - a name = "" attribútum értéke:

Hozzunk létre egy form_processing.php kezelő fájlt:

/ * Ellenőrizzük a bemeneti adatokat, és megvédjük őket az ellenségesektől
szkriptek * /
$ your_name = htmlspecialchars ($ _POST ["saját_neve"]);
$ email = htmlspecialchars ($ _POST ["email"]);
$ tema = htmlspecialchars ($ _POST ["téma"]);
$ message = htmlspecialchars ($ _POST ["messages"]);
/ * Állítsa be a címzett e-mail címét * /
$ myemail = " [e -mail védett]" ;
/ * Ellenőrizze, hogy a szükséges beviteli mezők ki vannak -e töltve a check_input használatával
funkció * /
$ your_name = check_input ($ _POST ["saját_neve"], "Adja meg nevét!");
$ tema = check_input ($ _POST ["téma"], "Kérjük, írja be az üzenet tárgyát!");
$ email = check_input ($ _POST ["email"], "Írd be az email címed!");
$ message = check_input ($ _POST ["message"], - Elfelejtett üzenetet írni!);
/ * Ellenőrizze, hogy helyesen van-e írva az e-mail * /
if (! preg_match ( "/((\ w \->+\@ [\ w \->+\. [\ w \-\+)/", $ email))
{
show_error ( "
Az e -mail cím nem létezik "
);
}
/ * Hozzon létre új változót érték hozzárendelésével * /
$ message_to_myemail = "Helló!
A kapcsolatfelvételi űrlapot üzenetben elküldtük!
Feladó neve: $ your_name
E-mail: $ email
Üzenet szövege: $ message
Vége "
;
/ * Üzenet küldése a mail () függvénnyel * /
$ from = "Feladó: $ yourname<$email>\ r \ n Válaszcím: $ email \ r \ n ";
mail ($ myemail, $ tema, $ message_to_myemail, $ from);
?>

Üzenetét sikeresen elküldtük!


Kezdőlap >>>


/ * Ha hibákat követtek el az űrlap kitöltésekor, akkor működni fog
a következő kódot: * /
függvény check_input ($ data, $ problem = "")
{
$ data = trim ($ data);
$ data = csíkvágások ($ data);
$ data = htmlspecialchars ($ data);
if ($ problem && strlen ($ data) == 0)
{
show_error ($ probléma);
}
$ adatok visszaadása;
}
függvény show_error ($ myError)
{
?>


Kérjük, javítsa ki a következő hibát:







exit ();
}
?>

Kód szakasz:

- megjeleníti a megadott szöveget, ha a mezők HTML űrlapok helyesen töltötték ki. Az index.php a webhely kezdőlapja.

Kód szakasz:

- jelzi a hiba jellegét.

Változó érték:

$ from = "Feladó: $ yourname<$email>\ r \ n Válaszcím: $ email \ r \ n ";
?>

- automatikusan megjeleníti a felhasználó e-mailjeit a megfelelő sorban, amikor választ ír.

PHP Form - A PHP űrlapokkal való munka a PHP bemutató nyolcadik leckéje. Ebben az oktatóanyagban a PHP űrlapfeldolgozásról fogunk beszélni.

Munka űrlapokkal

A PHP lehetővé teszi a felhasználó által az űrlapmezőkbe beírt adatok feldolgozását. A Küldés gomb aktiválása után az adatok elküldésre kerülnek az elem műveletmezőjében megadott kezelőoldalra

... Az oldalon - a kezelő egy PHP -szkript, amely bizonyos műveleteket hajt végre a fogadott adatokkal, például levelet generál és küld a felhasználó által megadott adatoknak megfelelően.

Adatok továbbítása a kezelőhöz.

Az űrlap adatait név / érték párok sorozataként küldi el a szervernek. Ez azt jelenti, hogy minden űrlapelem neve (a címke NAME attribútumában jelenik meg) az adott elem értékéhez (a felhasználó által beírt vagy kiválasztott) kapcsolódik. Az átvitelhez használt név / érték formátum a név = érték.

Az űrlapról a kezelőprogramnak továbbított összes adat a következő szuperglobális tömbökben található: $ _ GET, $ _POST és $ _REQUEST.

$ _GET - A GET metódus által átadott összes értéket tartalmazza.

$ _POST - A POST metódus által átadott összes értéket tartalmazza.

$ _REQUEST - A POST és GET metódusok által átadott összes értéket tartalmazza.

Vezetéknév:

Város:

Üzenet:

A gomb megnyomása után Beküldés ezen űrlapon minden adatot átadnak a kezelőnek folyamat.php ... Mivel ez az űrlap a módszert használja POST , akkor minden változó a tömb belsejében található$ _POST.

Most hozzunk létre egy kezelőt:

echo "Név: ". $ _POST ["FName"]. "
»;
echo "Vezetéknév: ". $ _POST ["LName"]. "
»;
echo "Város: ". $ _POST ["Város"]. "
»;
visszhang "
»;
echo "Az Ön üzenete:". $ _POST ["Üzenet"];
?>

Helyezze ezt a fájlt az űrlapoldallal ellátott könyvtárba. Most, amikor az űrlapot használja, az adatokat továbbítja a kezelőhöz, amely megjeleníti a felhasználói adatokat tartalmazó üzenetet.

$ _Request tömb

Szuperglobális tömb használata$ _Request nagyon kényelmes, különösen akkor, ha nem ismert, hogy milyen módszerrel továbbították az adatokat.

A foreach ciklus segítségével megismételheti a $ _Request tömb értékeit.

Ebben a példában a $ _Request tömb összes értékét megjelenítjük. Ezzel ellenőrizhető a felhasználói bevitel helyessége. Vagyis a felhasználó adatokat ír be az űrlapba, rákattint a küldésre, de az adatok feldolgozása helyett egy üzenet jelenik meg a képernyőjén az általa bevitt adatokkal, és a felirat megerősíti vagy elutasítja. Ezt az elképzelést számos webhelyen és sok programban alkalmazták.

Ebben az oktatóanyagban megtanultuk, hogyan kell a PHP -t használni az űrlapok feldolgozásához. Amint láthatja, a PHP egy hatékony űrlapfeldolgozó eszköz, amely lehetővé teszi a felhasználói adatok sokféle manipulációjának végrehajtását, például a felhasználói adatok adatbázisban való tárolását a későbbi engedélyezéshez, üzenet küldését a felhasználó e -mailjébe és még sok mást.

A következő leckében megtanuljuk, hogyan kell ellenőrizni a felhasználói adatokat, mielőtt közvetlenül feldolgozzák azokat.

Jó napot mindenkinek. Alexey Gulynin felveszi a kapcsolatot. Az utolsó cikkben megtudta, hogy mi a szerializáció a php -ben. Ebben a cikkben a munka módjáról szeretnék beszélni űrlapok PHP -ben... A PHP webes szkriptekhez készült, és az űrlapfeldolgozás talán a legfontosabb ebben a folyamatban. Manapság nincsenek olyan oldalak, amelyeken például nem lenne regisztráció vagy visszajelzési űrlap, vagy kérdőív. Fórumok, online áruházak, megjegyzés hozzáadása, üzenet küldése a közösségi hálózaton - mindez az űrlapmezőkben elhelyezett adatok feldolgozása. Vegyünk egy példát, hogy kitaláljuk, hogyan folyamatformák PHP -ben.
Egy egyszerű feladatot fogunk végrehajtani: létre kell hoznia 2 mezőt (kereszt- és vezetéknév), és át kell vinnie ezeket az adatokat az action.php szkriptbe, ennek eredményeként üdvözletnek kell megjelennie "Üdvözlöm, vezetéknév utónév"... Aki elfelejtette, hogyan jönnek létre az űrlapok, és milyen mezők vannak, láthatja. Hozzunk létre egy test.html fájlt:

Név: Vezetéknév:



Kérjük, vegye figyelembe, hogy az action.php fájlnak (a mi esetünkben) ugyanabban a mappában kell lennie, mint a test.html fájl. Itt megadhatja a relatív és az abszolút útvonalakat is. Legyen óvatos, sok hiba az űrlapkezelő parancsfájl elérési útjának helytelen megadásából ered.

Hozzunk létre egy action.php fájlt a következő tartalommal:

Ha most megnyitjuk a test.html fájlt, kitöltjük az űrlapmezőket, és rákattintunk a gombra, akkor az action.php fájlhoz jutunk, ahol egy üzenet jelenik meg. Ebben az esetben a böngésző az action.php parancsfájlra hivatkozik, és a "?" a címkék belsejében található name attribútumok összes értéke & választja el egymástól. Jegyezze meg, hogy mit helyettesít a $ _SERVER.

Meg tudjuk oldani a problémát úgy, hogy a QUERY_STRING karakterláncot elemezzük a standard függvények használatával a PHP karakterláncokkal való munkához, de jobb egy másik mechanizmust használni - ez a $ _REQUEST tömb. A PHP az űrlapmezőktől kapott összes adatot a $ _REQUEST tömbbe helyezi, függetlenül az adatok átvitelének módjától: POST vagy GET (ezt megtudhatja a $ _SERVER ["REQUEST_METHOD"] segítségével). Hadd emlékeztessem önöket arra, hogyan különböznek ezek a módszerek:

A GET módszer nyilvános, a POST módszer privát, azaz a paraméterek átadásának módjában különböznek. Példa:

1) Ha a közzétételi módszert használjuk: mysite.ru/request.php.
2) Ha a get metódust használjuk: mysite.ru/request.php?myname=ansAlexans&surname=Gulynin ".

Továbbá a $ _REQUEST tömb mellett a PHP létrehozza a $ _GET és $ _POST tömböket. Most valósítsuk meg feladatunkat a megszerzett ismeretek alapján:

Ha most kitöltjük az űrlapot, és rákattintunk a gombra, akkor látni fogjuk, hogy az action.php szkript vezetéknév és keresztnév szerint fogad minket. Minden megfelelően működik.

Itt minden rendben van, de ha megváltoztatjuk a szkript nevét, akkor módosítanunk kell a test.html fájlt. Módosítsuk az action.php fájlt úgy, hogy annak elérésével vagy egy űrlap jelenik meg, ha nem küldtünk be semmit, vagy üdvözlet, amikor rákattintottunk a gombra:

"> Név: Vezetéknév:


Most nem függünk a forgatókönyv nevétől, mert a $ _SERVER ["SCRIPT_NAME"] környezeti változón keresztül állítottuk be. = $ _ SERVER ["SCRIPT_NAME"]?> Ezzel egyenértékű .
A SCRIPT_NAME környezeti változón kívül sok más is létezik.

A JavaScript le van tiltva a böngészőben. Kérjük, engedélyezze a JavaScriptet az oldal működéséhez!

Munka űrlapokkal

A HTML űrlapok az adatok átvitelére szolgálnak a weboldal felhasználójától a szerverre. A PHP űrlapokkal való munkavégzéséhez számos speciális eszköz áll rendelkezésre.

Előre definiált változók

A PHP számos előre definiált változót tartalmaz, amelyek nem változnak, ha minden alkalmazás egy adott környezetben fut. Ezeket környezeti változóknak vagy környezeti változóknak is nevezik. Ezek tükrözik az Apache webszerver környezet beállításait, valamint az adott böngésző kérési adatait. Lehetőség van a HTTP -kérés URL -jének, lekérdezési karakterláncának és egyéb elemeinek értékeinek lekérésére.

Minden előre definiált változó a $ GLOBALS asszociatív tömbben található. Ez a tömb a környezeti változók mellett a programban meghatározott globális változókat is tartalmazza.

1. példa

$ GLOBALS tömb megtekintése $ value) echo "\ $ GLOBALS [\" $ key \ "] == $ érték
"; ?>

Ennek eredményeképpen megjelenik a képernyőn az összes globális változó, beleértve a környezeti változókat is. A leggyakrabban használtak a következők:

VáltozóLeírásTartalom
$ _SERVER ["HTTP_USER_AGENT"]Ügyfél neve és verziójaMozilla /5.0 (kompatibilis; Googlebot /2.1; + http: //www.google.com/bot.html)
$ _SERVER ["REMOTE_ADDR"]IP-cím5.9.142.17
getenv ("HTTP_X_FORWARDED_FOR")Az ügyfél belső IP -címe
$ _SERVER ["REQUEST_METHOD"]Kérési módszer (GET vagy POST)KAP
$ _SERVER ["QUERY_STRING"]GET kérés esetén a kódolt adatok az URL -lel együtt kerültek továbbításra
$ _SERVER ["REQUEST_URL"]Az ügyfél teljes címe, beleértve a lekérdezési karakterláncot
$ _SERVER ["HTTP_REFERER"]Annak az oldalnak a címe, amelyről a kérelmet benyújtották
$ _SERVER ["PHP_SELF"]A futó program elérési útja/index.php
$ _SERVER ["SERVER_NAME"]Tartománywebhely
$ _SERVER ["REQUEST_URI"]Út/php/php_form.php

A felhasználói bevitel kezelése

A PHP bemeneti feldolgozó program elválasztható a beviteli űrlapokat tartalmazó HTML szövegtől, vagy elhelyezhető egyetlen oldalon.

2. példa

Példa bemeneti feldolgozásra

"method =" post ">

Kártyaszám:



Itt nincs adatátviteli gomb. egyetlen mező nyomtatvány automatikusan elküldésre kerül egy gomb megnyomásakor .

Ha egy többértékű kijelöléssel rendelkező elemet dolgoz fel, akkor az összes kiválasztott érték eléréséhez szögletes zárójelet kell hozzáadnia az elem nevéhez. Több elem kijelöléséhez tartsa lenyomva a Ctrl billentyűt.

3.1. Példa

Lista



A 3.1. PÉLDA EREDMÉNYE:

3.2. Példa

A lista feldolgozása az ex1.htm fájlból

    "; foreach ($ Item as $ value) echo"
  • $ value "; echo"
"; ?>

4. példa Értékek fogadása a jelölőnégyzetekből

$ v) (if ($ v) echo "Ismeri a $ k programozási nyelvet!
"; else echo" Nem ismered a $ k programozási nyelvet.
"; } } ?>
"method =" post "> Milyen programozási nyelveket tud?
PHP
Perl

A 4. PÉLDA EREDMÉNYE:

5. példa

"; ?>
"method =" post ">

Lehetőség van az űrlapok feldolgozására anélkül, hogy a tényleges mezőneveken kellene aggódni.

Ehhez használhatja (az átviteli módtól függően) a $ HTTP_GET_VARS vagy $ HTTP_POST_VARS asszociatív tömböt. Ezek a tömbök név / érték párokat tartalmaznak a beküldött űrlap minden eleméhez. Ha nem érdekli, használhatja a $ _REQUEST asszociatív tömböt.

6. példa

Önkényes bevitel kezelése az átviteli módtól függetlenül $ value) echo "$ key == $ value
"; ?>

Példa 7. Egy gombra való kattintás kezelése a "@" operátorral.

">

A header () függvény használatával a "Location" fejléc elküldésével a böngészőbe átirányíthatja a felhasználót egy új oldalra.

Például:

Fájlátvitel a szerverre. Fájl feltöltés. Feltöltés

A PHP lehetővé teszi fájlok átvitelét a szerverre. A fájl elküldéséhez szükséges HTML-űrlapnak tartalmaznia kell az enctype = "multipart / form-data" argumentumot.

Ezenkívül az űrlapon található fájlmásolási mező előtt egy max_file_size nevű rejtett mezőnek kell lennie. Ennek a rejtett mezőnek tartalmaznia kell az átvitt fájl maximális méretét (általában nem több, mint 2 MB).

Maga a fájlátviteli mező egy szokásos INPUT elem, a type = "file" argumentummal.

Például:

"method =" post ">

Miután a fájlt feltöltötte a szerverre, egyedi névvel rendelkezik, és az ideiglenes könyvtárban tárolja. A fájl teljes elérési útja egy globális változóba van írva, amelynek neve megegyezik a fájl átvitelére szolgáló mező nevével. Ezenkívül a PHP további információkat tárol az átvitt fájlról más globális változókban:

8. példa

Az átvitt fájl feldolgozása "; echo" name: ". $ _ FILES [" userfile "] [" name "]."
"; echo" size: ". $ _ FILES [" userfile "] [" size "]."
"; echo" type: ". $ _ FILES [" userfile "] [" type "]."
"; } ?>
"method =" post ">



Példák fájlok feltöltésére a szerverre

Ha problémái vannak a szerverrel a feltöltött fájl átkódolásával, akkor a szimbólum a kóddal 0x00 helyébe szóköz (karakter kóddal 0x20), adja hozzá a fájlhoz httpd.conf az Apache könyvtárból ( / usr / local / apache) a következő sorokat.

CharsetRecodeMultipartForms Off



Tetszett a cikk? Oszd meg