Névjegyzék

Szerezd meg és adja meg a példákat. Attribútum akció és módszer. Szerezd meg és adja meg a módszereket. Választás a Get és a Post között

A modern webes források nem csak tájékoztatást adnak a látogatónak, hanem kölcsönhatásba lépnek vele is. A felhasználóval való kölcsönhatáshoz néhány információt kell kapnia tőle. Az adatok megszerzéséhez számos módszer létezik, nagyon gyakori módszerek. Kap. és Post.. És B. PHP. Az adatátviteli módszerek támogatása Kap. és Post.. Lássuk, hogyan működnek ezek a módszerek.
Szerezzen módszertAdat kAP. Továbbítják őket a hívott forgatókönyv URL-címéhez, amelyet a beérkezett információk feldolgozására szántak. Megmagyarázni ezt a módszert, tárcsázza a forrás URL-t a címsorba a címsorba, és hozzáadjuk a kérdőjel az első (?), Majd a számot num \u003d 10. például

http: //domure.ru/script.php? Num \u003d 10


Ha van helyi szerver, akkor a domain általában localhost lesz, majd az előző bejegyzés megjelenik

http: //localhost/script.php? Num \u003d 10


Ebben az esetben a számparamétert 10-re továbbítjuk. A következő paraméterek hozzáadásához a szkriptet kell használni - ampersant (&), például

http: //domure.ru/script.php? Num \u003d 10 & Type \u003d New & V \u003d Szöveg


Ebben az esetben három paramétert továbbítottunk a szkripthez: NUM 10 értékkel, írja be az "Új" és V értéket a "szöveg" értékkel.
Ahhoz, hogy ezeket a paramétereket a szkriptben be kell használni, beépített tömböt kell használnia. $ _Get. $ _Get ["num"], $ _get ["Type"], $ _ get ['v]]. Ezek a tömbelemek tartalmazzák a továbbított paraméterek értékeit. A példa bemutatásához hozzon létre egy script.php fájlt az alábbiak szerint.



A GET módszer ellenőrzése PHP-ben


echo ($ _get ["szám"]. "
");
echo ($ _get ["Type"]. "
");
echo ($ _get ["v"]);
?>




És hívja ezt a fájlt a böngészőbe

http: //at/script.php? NUM \u003d 10 & TYPE \u003d Új & V \u003d szöveg


És megjelenik a továbbított paraméterek a böngészőablakban. De ha ezt a fájlt további paraméterek nélkül hívja meg a http: ////script.php, akkor a tolmács kiadása PHP.Hogy nincs ilyen elem a $ _get. Ezeknek az adatoknak a felhasználó ellenőrzése nem egy cikket is kiemelhet, így ebben a cikkben nem fogok megérinteni ezt a pillanatot.
Ahogy valószínűleg megérti, hogy kényszerítse a felhasználót, hogy tárcsázza az adatokat a címsorban nem túl jó és teljesen kényelmetlen. Ezért, hogy adatokat fogadjon el a felhasználónak, a HTML-formátumot kell használnia. Írjon egy egyszerű HTML-formát.


Adja meg a számot

Van számítógéped?

A te hozzászólásod:





Megjegyzem a létrehozott űrlapot. Formákat hoznak létre az űrlapcímke. Az űrlap mezőket bemeneti, kiválaszthatja, textarea címkéket hoznak létre (többet tudsz olvasni). Az űrlapcímkén a szkript URL-je a művelet attribútumban van megadva, amely ezeket az űrlapokat kapja. A mi esetünkben már megadtuk a már meglévő script.php fájlt. A módszer attribútum beállítja az adatküldés módját. Jelzük a módszert Kap.. Most már tudjuk, hogy milyen fájlokat fognak továbbítani, és milyen módon kell kitalálni, hogy hol keressük őket?!
Ez az űrlapadatok átkerülnek a webes erőforrás-böngészőbe az URL-hez való hozzáadásával: Először kérdőjel (?), Majd a paraméterek elválaszthatók az ampersant (és) elválasztva. A paraméter nevét a név attribútumból fogják venni, amelyet bármely mező mezőből ki kell írni. A paraméter értéke a mező típusától függ. Ha a mező szöveges, a felhasználó által megadott szöveg lesz a felhasználó. Ha a mező listája lesz, a kapcsolók vagy zászlók csoportja, akkor a kiválasztott elem értékének értéke a paraméter értéke lesz. Megmagyarázom a formájunk példáját. Ha a felhasználó belép a 10-es számba a beviteli mezőbe, akkor a paraméter neve Num lesz (a bemeneti címke név attribútumának értéke), és az érték lesz az érték (felhasználó által megadott szám). Ennek megfelelően a böngésző egy "szám \u003d 10" párot alkot. Ha a felhasználó közül a felhasználó kiválasztja az "Igen" opciót, akkor a paraméter neve lesz (a névcímke érték attribútuma), és az érték értéke lesz (az értékcímke értékének értéke) ). Ennek megfelelően a böngésző "típusa \u003d igen" párot alkot.
Most ezt az űrlapot a forma.php oldalra helyezik.



Adatátviteli űrlap a Get és a PHP használatával



Adja meg a számot

Van számítógéped?

A te hozzászólásod:









Adjon meg minden értéket az űrlap mezőkbe, és kattintson a "Küldés" gombra. A böngésző gomb megnyomása után megjelenik egy másik oldal (Script.php), és megjelenik a böngészőablak megadott adatai. Úgy gondolom, hogy világos, miért: A böngésző adatátviteli adatokat a Script.php-hez, és a szkriptben ezeket az adatokat feldolgozzák és megjelenítik.
Postos módszerNézzük meg, hogyan működik a módszer Post..
Ezeket a módszereket Post. HTML-űrlapot kell használnia. Hogyan emlékezzünk arra, hogy az űrlap módja felelős az űrlap adatlapjának elküldésének módjáért. Ezért meg kell adnia a hozzászólás értékét a módszer attribútumában. Ellenkező esetben az űrlap lehet ugyanaz, mint a szerkezeti módszer. Megváltoztatjuk az alakunkat, amelyet már használtunk az adatok átvitelére a Post módszerrel történő átvitelhez.


Adja meg a számot

Van számítógéped?

A te hozzászólásod:





Amint láthatja, az űrlap ugyanaz marad, kivéve a módszer és a művelet attribútumait. Most az adatok átkerülnek a Script_Post.php parancsfájlba. Helyezze el az űrlapot a forma_post.php oldalra.



Posta és PHP adatátviteli űrlap



Adja meg a számot

Van számítógéped?

A te hozzászólásod:









Most írjon egy parancsfájlt, amely feldolgozza az űrlapadatokat.
Az adatszkriptben átvitt módszer beszerzése Post. Be kell használni a beépített tömböt $ _Post.. A tömb gombjai a paraméterek nevei lesznek. A mi esetünkben használni kell $ _Post ["Num"], $ _post ["Type"], $ _ Post ["V"]. Ezek a tömbelemek tartalmazzák a továbbított adatok értékeit. Ahogy látja a különbséget a Get módszer használatával, csak csak egy sor $ _post használatával fejeződik ki. Ezért nem lesz nehéz írni egy script_post.php fájlt:



A PLP POST módszer ellenőrzése


echo ($ _post ["szám"]. "
");
echo ($ _post ["Type"]. "
");
echo ($ _post ["V"]);
?>




Most nyissa meg a Forma_Post.php fájlt a böngészőben. Adjon meg néhány adatot az űrlap mezőbe, és nyomja meg a "Küldés" gombot. Most, valószínűleg észrevetted a különbséget a POST módszert GET - ezeket a formákat nem jelenik meg a címsorban a böngésző. Adatmód Post. Nem adhatja át a böngésző címsávján. Ezt az alapvető különbséget meg kell emlékezni.
BAN BEN PHP. A függetlenség, milyen módszerrel adatot küldött - a POST módszerrel vagy a GET metódus - megszerezni adatokat egy $ _REQUEST tömbben. A GET és POST módszerek összehasonlításaA GET módszer használata esetén az adatokat az URL-hez adjuk hozzá. Így láthatóak lesznek a felhasználó számára, hogy a biztonság szempontjából nem mindig jó. Továbbá a továbbított adatok maximális mennyisége a böngészőtől függ a böngésző címsorának legnagyobb megengedett számából.
A POST módszer használata esetén az adatok nem lesznek láthatóak a felhasználó számára (a böngésző címsorában nem jelennek meg). És ezért védettek, ezért az adatok feldolgozása jobban védett a biztonság szempontjából. Továbbá a továbbított adatok mennyisége gyakorlatilag nem korlátozott.
Az adatátvitel módjának kiválasztásakor figyelembe kell vennie a leginkább elfogadható módszerrel megadott és leállási funkciókat.

Közös közöttük, az a tény, hogy egyenlően dolgoznak. A különbség közöttük technikailag nem. De van ideológiai különbségek.

A PHP keretében elmondom őket. Felhívjuk figyelmét, hogy a HTTP protokoll PHP közvetett hozzáállás, mert jött létre, hogy csere HTML oldalak és a PHP csak kibontja a lehetőségeket, és a többi.

A lekérdezést az adatok küldéséhez használják. (Emlékeztetem, hogy technikailag ugyanúgy működik).

Ezért a PHP keretében az e-címre támaszkodva a következőképpen történt:
1. Minden alkalommal, amikor a PHP elindul, a Superglobal tömbök ($ _get, $ _post) alapértelmezés szerint jönnek létre.
2. Ha kérdésjel van a lekérdezési karakterláncban (?). Aztán mindent tekintenek utána paraméterek Kéréseket kapnak, amelyeket a "Key" formátumban mutatnak be \u003d "érték", és egy leválasztóként használnak egy ampersand jel (&)
Példa:
Get /index.php?name\u003dAndrey&surname\u003dhalkin
Ez egy lekérdezési karakterlánc, itt 2 paraméter. Ezek a paraméterek esnek a $ _get tömbbe.
3. $ _post tele van egy másik módon. A tömb tartalma kitölti a "kérés fejléceket". Vagyis a szemtől elrejtett helyről kifejezetten. Az egész rutin az ilyen címsorok létrehozásához egy böngészőt vesz igénybe. Bár néha valami kézikönyvben szerkesztik a címsorokat.

Leggyakrabban a postai kérelmet az űrlapok (adatok küldése) használják.

Például van egy űrlapunk, hogy bejelentkezzen 2 mezőbe Bejelentkezés és jelszó.

Képzeld el, hogy a GET módszert használjuk. Majd ha küld egy űrlapot, mi pedig a következő címre /Login.php?Login\u003dandrey&password\u003d123 Elfogadom, hogy ez nem biztos, hogy az ilyen információkat. Bárki megnyithatja a böngészőt, és elindíthatja a webhely címét. Láthatja a jelszavát és bejelentkezését.

De ha a post módszerrel megadjuk, akkor a következő kérést kapjuk:
Post /login.php (login \u003d andrey & password \u003d 123) A zárójelben elrejthető, és nem kerül mentésre a böngészőben.

Általában összefoglalva:
Szerezd meg egy bizonyos oldalt egy adott formában (válogatás, az aktuális oldal a blogban, a keresési karakterlánc stb.).
Post - a mandreladatok esetében, amelyek nem befolyásolják az oldal megjelenítését, ahogyan ezek az adatok csak a szkript végrehajtásának eredményét befolyásolják (loginok, jelszavak, hitelkártyaszámok, üzenetek stb.).

És még egy jó hír kombinálható, például
Post /index.php?page\u003dlogin (login \u003d andrey & password \u003d 123) Azt hiszem, már elég elmagyaráztam, hogy kiderül, és milyen paraméterek, amelyekre tömb esik.

GET és POST módszert a HTTP és HTTPS a két legnépszerűbb módszerek átadása az adatokat a kliens a szerver HTTP protokoll használatával (hipertext átviteli protokoll). És a Get és a Post felhasználható kérés küldéséhez, és válaszolhat, de jelentős különbség van közöttük.

A HTTP-hez vagy https-ben lévő bejövő kérések közötti különbség egy népszerű kérdés az egyes webes programozási interjún. Mivel a HTML nem függ a webkiszolgáló technológiától, mint például a Java, az Asp vagy a PHP és a HTTP az internetes tér fő protokollja, lehetetlen egyértelműen figyelmen kívül hagyni a megértés fontosságát a Get és Post módszerek megértésének fontosságát. Ebben a cikkben megnézzük, hogy mi a HTTP módszer, mi a post http módszer, mikor kell használni egy vagy másik kérést, és mi a különbség közöttük. Minden koncepciót külön fogunk elemezni.

Mi a html?

A HTML a weboldalak létrehozásához használt nyelv. A hipertext hivatkozik hiperhivatkozásokra, amelyek tartalmazhatnak HTML oldalt. A jelölés nyelv azt jelenti, hogyan kell használni a címkéket az oldal és az elemek elrendezésének meghatározásához.
Az alábbiakban egy HTML példa, amelyet az alapvető weboldal meghatározására használunk a szöveg címzettjével és egy bekezdésével:



<Голова>
<Название> TechTerms.com.

<Тело>

Ez egy példa a bekezdésre a HTML-ben.

Az első karakterlánc határozza meg a dokumentumban található tartalom típusát., és amelyek mindegyike a fenti példaként szerepel. Oldal fejléc, metaadatok és linkek a kötőfájlokhoz a tényleges oldal tartalma között vannak elhelyezve a címkék között. .

Az elmúlt néhány évtizedben a hálózat túlélte sok változását, de a HTML mindig is a weboldalak fejlesztésére használt fő nyelv. Érdekes módon, bár a webhelyek fejlettebbek és interaktívak lettek, a HTML könnyebbé vált. Ha összehasonlítja a HTML5 oldalt, a HTML 4.01 vagy XHTML 1.0-ban írt hasonló oldalon, a HTML5 oldalon kevesebb kód lesz. Ez annak köszönhető, hogy a modern HTML a kaszkádos stíluslapokra vagy a JavaScriptra támaszkodik, hogy szinte minden elemet formázzon az oldalon belül.

Számos dinamikus weboldal a Script kiszolgálónyelv használatával, például a PHP-vel vagy az ASP segítségével internetes oldalakat generál. Azonban még a dinamikus oldalakat is formázni kell a HTML segítségével. Ezért a forgatókönyvek gyakran létrehoznak egy HTML kódot, amelyet a webböngészőnek küldünk.

A HTTP-hypertext átviteli protokoll célja az ügyfelek és szerverek közötti kölcsönhatás, és lekérdezési protokollként működik.

A webböngésző lehet az ügyfél, és az alkalmazás a számítógépen, amelyen a webhelyet közzéteszik, a kiszolgáló.

Az ügyfél (böngésző) HTTP-kérést küld a kiszolgálónak, a kiszolgáló visszatér egy olyan választ, amely információt tartalmaz a lekérdezés állapotáról, és tartalmazhat a kért tartalmat is.

A lekérdezések két módja és posta

Két gyakran használt módszer az ügyfél és a szerver közötti kérés-válaszra:

    Get - Adatok kérése a megadott erőforrásból;

    Post - Adatok feldolgozása a megadott erőforráshoz.

A beszerzés és a posta átadása szó szerint azt jelenti, hogy a bevétel és a feldolgozás után.

További információ a httpról

A HTTP egy protokoll, amelyet az adatok interneten keresztül történő átvitelére használnak. Ez része az internetes protokollcsomagnak, és meghatározza a weboldaladatok továbbítására használt parancsokat és szolgáltatásokat.

A HTTP a kiszolgáló-kliens modellt használja. Az ügyfél lehet otthoni számítógép, laptop vagy mobil eszköz. A HTTP-kiszolgáló általában webes gazdagép, például az Apache vagy az IIS. Ha a felhasználó hozzáférést kap a weboldalhoz, a böngésző kérést küld a megfelelő webszerverre, és megfelel a HTTP állapotkódnak. Ha az URL érvényes és a kapcsolat rendelkezésre áll, a kiszolgáló elküldi a weboldalt a böngésző és a kapcsolódó fájlokhoz.

Általános HTTX állapotkódok:

    200 - sikeres kérés (van egy weboldal);

    301 - folyamatosan mozog (gyakran átirányít egy új URL-re);

    401 - jogosulatlan kérés (szükséges engedély);

    500 - belső kiszolgálói hiba (gyakran a helytelen kiszolgáló konfigurációja által okozott).

Hozzászólás és http

A HTTP határozza meg a weboldalakon lévő formanyomtatványok feldolgozásához használt get és post parancsokat. A Connect parancs az SSL használatával titkosított biztonságos kapcsolat megkönnyítésére szolgál. Titkosított HTTP kapcsolatok történhet HTTPs - HTTP kiterjesztése szánt biztonságos adatátvitelt.

Az URL-ek a "http: //" -vel kezdődően a standard hipertext-átviteli protokollok és az alapértelmezett HASZNÁLAT 80. Port szerint érhetők el. Az URL-ek a "HTTPS: //" -vel kezdődően biztonságos HTTPS-kapcsolaton keresztül érhetők el, és gyakran használják a 443 portot.

Post.

A posta számos rendszerellenőrzéssorozat, amelyet a számítógépek és más elektronikus eszközök végeznek, amikor be van kapcsolva. A vizsgálati eredmények megjeleníthetők a képernyőn, kimenet a villogó LED-eken, vagy egyszerűen rögzítve. A számítógépes rendszerekben a post művelet a rendszerindítási sorrend elején történik. Ha minden tesztet átadnak, a kezdési folyamat többi része automatikusan folytatódik.

Operációs rendszerek Mac és Windows Eszközök Elindulnak minden alkalommal, amikor a számítógép betöltött vagy újraindul. Szkennelés Ellenőrzi a hardvert, és biztosítja, hogy a processzor, a RAM és a tárolóeszközök megfelelően működjenek. Ha hiba történt a bejegyzés során, az indítási folyamat szüneteltetheti vagy teljesen leállhat, és a monitor megjelenhet a PC PC-hiba esetén A PC-k gyakran jelennek meg a BIOS információs képernyőn. Ezek titkos kódokként jelenhetnek meg, például "08" vagy rendszerüzenetként, például a "rendszer memóriahiba, amikor elmozdult." A Mac-en a postai hibákat gyakran egyszerű grafikák jelzik, például egy törött mappa ikon, amely azt jelzi, hogy a rendszerindító egység nem található.

Fizikai megnyilvánulások

Bizonyos esetekben a számítógép képernyője még nem kapcsol be a postai hibák előtt. Ha ez megtörténik, a hibakódok villogó LED-kijelzők vagy hangjelzések segítségével jeleníthetők meg. Például az Apple iMac három egymást követő hangot fog játszani, hogy ellenálljon egy szünet öt másodperces, majd ismételje meg a hangokat, amikor az indításkor rossz ramot észlel. A legtöbb számítógép hangjelzést is közzétesz, amikor a post hibák észlelése, bár minden gyártó saját kódokat használ.

A hozzászólás egy olyan technikai kifejezés, amely rendszeresen csak számítógépes technikákat használ. Ez azonban jó rövidítés, mert segít jobban megérteni a számítógépeken vagy más elektronikus eszközökön megjelenő hibaüzeneteket. Ha a számítógép nem indul el a POST hiba miatt, akkor más eszközt használhat az érték megtalálásához, és hibákat okozhat a gyártó honlapjáról. Ezután megteheti a megfelelő műveleteket - a memóriamodul eltávolítása vagy a videokártya újra telepítése a következő újraindítási berendezéssel.

Kap.

A bejegyzés egy olyan módszer is, amely a HTML formanyomtatvány-változókat egy weboldalról a másikra továbbítja, anélkül, hogy megjelenítené őket a címsorban. Alternatív módszer - Get, amely hozzáadja az értékeket az URL-hez. A HTTP-bejegyzések további adatokat adnak az ügyfél (böngésző) további adataival az üzenetszerkezet kiszolgálójához. Éppen ellenkezőleg, kérje meg a kéréseket az összes szükséges adatot az URL-ben. A HTML formanyomtatványok bármilyen módszert használhatnak, meghatározva a módszert \u003d post vagy módszer \u003d Get (alapértelmezett) az elemben

. A megadott módszer meghatározza, hogyan továbbítják ezeket a formákat a kiszolgálónak. Amikor a GET módszert használják, az összes űrlapadat az URL-ben lekérdezési karakterláncban van kódolva. A POST segítségével ezek az űrlapok megjelennek a HTTP lekérdezési üzenetben.

Különbségek az űrlap ábrázolásában

A Post Query Method egy webszervert kér, hogy megkapja és tárolja a lekérdezési üzenetben található adatokat. Gyakran használják a fájl letöltésekor vagy a befejezett webes űrlap küldése során.

A HTTP Get Query Methode információt kap a kiszolgálóról. A lekérdezés részeként bizonyos adatok továbbíthatók az URL lekérdezési sorban, meghatározva a keresési feltételeket, a dátumtartományokat vagy más olyan információkat, amelyek meghatározzák a lekérdezést.

A kiküldetési lekérdezés során bármilyen típusú adattovábbítási mennyiséget lehet elküldeni a kiszolgálónak a lekérdezési üzenetben. A postafiók fejléc mezője jellemzően az internetes média üzenet típusát jelzi.

A Get és a Post kérések közötti fő különbség az, hogy megfelelnek a HTTP-specifikációkban meghatározott különböző HTTP-kéréseknek. A mindkét módszer etetésének folyamata ugyanúgy kezdődik: az űrlapadatkészletet a böngésző hozza létre, majd az EncType attribútum által megadott módszerrel kódolja. A Method \u003d "Post esetében az alapértelmezett attribútum lehet több pontos / űrlap-adat vagy alkalmazás / X-www-form-urlencoded, míg a módszer \u003d" Get "csak az alkalmazás / x-www-form-urlencoded. Ezek az űrlapok Az adatkészletet akkor továbbítják a kiszolgálónak.

Ha egy űrlapot szeretne küldeni a módszerrel \u003d "Get" A böngésző létrehoz egy URL-t, akkor egy cselekvési attribútum értékét és az alkalmazás / X-www-form-urlencoded tartalomtípus alkalmazásával kódolt formanyomtatvány hozzáadása. A böngésző ezután feldolgozza ezt az URL-t, mintha utalna a linkre (vagy, mintha a felhasználó manuálisan szerezte meg az URL-t). A böngésző osztja az URL részéről, és elismeri a fogadó, majd elküldi a GET kérést a szerverhez a többi az URL érvként. Fontos megjegyezni, hogy ez a folyamat azt jelenti, hogy ezek az űrlapok az ASCII kódokra korlátozódnak. Különös figyelmet kell fordítani a kódolásra és a más típusú karakterek dekódolására, amikor az URL-t az ASCII formátumban továbbítják.

A formanyomtatvány bemutatása a módszerrel \u003d "Post" okozza, hogy posta kérés küldése művelet attribútum értéket és egy üzenetet a Tartalomtípus szerint, amelyet az Inclype attribútum megadott.

PHP.

A PHP beépített HTML. Ez azt jelenti, hogy a PHP kód beilleszthető a HTML oldalra. A PHP kódot a kiszolgáló elolvassa vagy elemzi, amelyen az oldal található. A PHP-ben a PHP-ben a PHP-ben történő kimenetét általában HTML-kódként adják vissza, amelyet a böngésző olvashat. Mivel a PHP kódot HTML-re alakítják le az oldal letöltése előtt, a felhasználók nem tekinthetik meg a PHP kódot az oldalon. Ez a PHP oldalakat elegendővé teszi az adatbázisok és egyéb védett információk eléréséhez.

A PHP szintaxis többsége más nyelvekből, például C, Java és Perl között kölcsönzött. A PHP azonban számos egyedi funkcióval és speciális funkcióval rendelkezik. Ennek a nyelvnek az a célja, hogy lehetővé tegye a webfejlesztők számára, hogy gyorsan és egyszerűen írjanak dinamikusan generált oldalakat.

WordPress.

A WordPress egy ingyenes tartalomkezelő rendszer, amelyet weboldalak létrehozására és fenntartására használnak. Az egyszerűség és az egyedülálló blogfunkciós funkciók segítették, hogy az interneten a legnépszerűbb blogkezelési eszköz legyen.

A WordPress interfész lehetővé teszi bárkinek, akinek nincs webfejlesztési tapasztalata, létrehoz egy webhelyet. A beépített blogolási eszközök egyszerű módja az egyéni üzenetek, látogatók és felhasználói megjegyzések nyomon követésére.

Annak ellenére, hogy több ezer Wordpress és Plug-in sablon áll rendelkezésre, a hozzászólás beszerzése a WordPress-ben még mindig korlátozott. Mivel ez egy sablon alapú szolgáltatás, a felhasználónak előre meghatározott webhelyen kell elkezdenie, és nem hozzon létre oldalakat a semmiből. Ezenkívül a szkripteket nem lehet beilleszteni, vagy ugyanazon szintű adatbázis fenntartása, amelyet a felhasználó honlapja kínál.

POST_GET_ID () eszköz lehetővé teszi, hogy script, hogy ellenőrizzék az elem, hiszen rendelkezik egy egyedi azonosítóval, és amikor küldés formájában formában át ezeket a módszereket, a legördülő listából kerül kiszállításra, egy egyedi azonosítóval, amely lehetővé teszi a Szkript, hogy vegye észre, hogy melyik kiadvány működik. Alternatívaként egy rejtett változó elküldhető, amely lehetővé teszi a szkript számára, hogy mely kiadvány hivatkozik a prezentációra.

Ez a hozzászólás az a kérdésre adott válasz, amely az egyik cikkemre vonatkozó megjegyzésekben szerepel.

A cikkben azt szeretném megmondani, hogy a HTTP módszerek megkapják / post / tedd / Törlés és mások, amelyekre feltalálták őket, és hogyan kell használni őket a többieknek megfelelően.

Http.

Tehát mi az egyik fő internetes protokoll? A pedánsok az RFC2616-ra küldenek, és a többiek emberi úton fognak mondani :)

Ez a protokoll leírja a két számítógép (ügyfél és szerver) közötti kölcsönhatást, amelyet az üzenetek adatbázisára építettek, a kérés neveznek) és válasz (válasz). Minden üzenet három részből áll: kiindulási vonal, címsorok és test. Ebben az esetben csak a kiindulási vonal kötelező.

A kérés és válasz kezdővonalai eltérő formátumúak - csak a lekérdezés kiindulási vonala, amely így néz ki:

Módszer URI Http / Változat. ,

Ahol a módszer csak a HTTP lekérdezési módszer, az URI az erőforrás-azonosító, a verzió a protokoll verziója (jelenleg frissített 1.1 verzió).

A fejlécek egy pár pár név, a vastagbél által elválasztva. A fejlécekben különböző szolgáltatási információkat továbbítanak: az üzenetkódolás, a böngésző neve és változata, amelyből az ügyfél jött (referrer) és így tovább.

Az üzenetszervezet valójában a továbbított adatok. Válaszolva továbbított adatok, szabályként a kért HTML oldal, és a lekérdezésben például az Üzenet szervben a szerverre letöltött fájlok tartalma kerül továbbításra. De általában a lekérdezésben lévő üzenetszervezet általában hiányzik.

A HTTP kölcsönhatás példája

Fontolja meg a példát.

Vizsgálat:
Get /index.php http / 1.1 Host: example.com Felhasználói ügynök: Mozilla / 5.0 (x11, u; Linux i686; ru; RV: 1.9b5) Gecko / 2008050509 Firefox / 3.0b5 Elfogadás: Szöveg / HTML Kapcsolat: Bezárás
Az első sor a lekérdezési karakterlánc, a többiek címsorok; Nincs testüzenet

Válasz:
Http / 1.0 200 ok szerver: nginx / 0.6.31 tartalomnyelv: RU tartalom típus: szöveg / html; Charset \u003d UTF-8 tartalomhossz: 1234 Csatlakozás: Bezárás ... HTML Page ...

Erőforrások és módszerek

Menjünk vissza a kérés kezdővonalához, és ne feledje, hogy egy ilyen paramétert URI-ként mutat be. Ez egységes erőforrás-azonosítónak dekódolódik - egy egységes erőforrás-azonosító. Az erőforrás általában a szerverre vonatkozó fájl (példa az URI-re ebben az esetben "/styles.css"), de egyáltalán lehetnek bármilyen absztrakt objektum ("/ blogok / webdev /" - jelzi a blokkolja a "webfejlesztést", nem egy adott fájlban).

A HTTP lekérdezés típusa (más néven a HTTP módszer) azt mutatja, hogy a szerver az a tény, hogy szeretnénk, hogy készítsen egy erőforrás. Kezdetben (a 90-es évek elején) feltételezték, hogy az ügyfél csak azt akarja, hogy az erőforrásból származhasson -, hogy megkapja, de most, a HTTP protokoll segítségével létrehozhat bejegyzéseket, profil szerkesztése, üzenetek törlése, és még sok más. És ezeket az intézkedéseket nehéz kombinálni az "átvétel" kifejezést.

A HTTP-módszer szintjén lévő erőforrásokkal való cselekvés elhelyezése, és a következő lehetőségek kerültek feltöltésre:

  • Szerezd meg az erőforrást
  • Post - Erőforrás létrehozása
  • Tegye - erőforrás-frissítés
  • Törlés - erőforrás törlése
Figyeljen arra, hogy a HTTP-specifikáció nem kötelezi a kiszolgálót arra, hogy megértse az összes módszert (ami valójában sokkal több, mint 4) - csak a kapu szükséges, és nem jelzi, hogy a kiszolgálónak meg kell tennie, hogy kérjen egy vagy másik módszer. És ez azt jelenti, hogy a kiszolgáló a Delete /index.php kérésére http / 1.1 nem köteles Törölje az index.php oldalt a kiszolgálón, valamint a /index.php http / 1.1 kéréshez nem köteles Tegye vissza az index.php oldalt, akkor törölheti, például :)

A pihenés belép a játékba

Nyugdíj (reprezentációs állam átruházás) 2000-ben vezették be a Roem Fielding (Roy Fielding) - a HTTP protokoll egyik fejlesztőjét - mint a weboldal építési elvének nevét. Általánosságban elmondható, hogy a többi szélesebb területet foglal magában, mint a HTTP - más hálózatokban más protokollokkal is alkalmazható. REST elvét ismerteti ügyfél interakció és a szerver, amely a fogalmak „forrás” és a „ige” (tudod megérteni őket alá mindkettő). HTTP esetén az erőforrást URI határozza meg, és az ige http módszer.

A pihenés azt javasolja, hogy megtagadják ugyanazt az URI-t különböző erőforrásokra (vagyis két különböző cikk címe, mint például a /index.php?Article_ID\u003d10 és /index.php?Article_Id\u003d20 nem a többi), és használjon különböző módon HTTP-módszerek különböző műveletekhez. Ez azt jelenti, hogy a többi megközelítést használó webes alkalmazás törli az erőforrást, amikor eléri azt a HTTP-módszerrel (természetesen ez nem jelenti azt, hogy lehetőséget kell adni arra, hogy mindent és mindent eltávolítson bármi A kérelemben szereplő törlési kérelemnek a HTTP-DELETE módszert kell használnia).

A pihenés lehetővé teszi a programozók számára, hogy képesek legyenek szabványosított és kissé szépebb webes alkalmazások írására, mint korábban. A többi, URI használata új felhasználó hozzáadásához nem lesz /user.php?action\u003dcreate (Get / Post módszer), és egyszerűen /user.php (szigorú postalap).

Ennek eredményeképpen együttesen a meglévő specifikáció http és a többi megközelítés végül megszerzi a különböző HTTP-módszerek jelentését. Get - Visszaadja az erőforrást, a hozzászólás - új, feltünteti a meglévő, törlés - törléseit.

Problémák?

Igen, van egy kis probléma a többi gyakorlatban a gyakorlatban. Ezt a problémát HTML-nek nevezik.

A kéréseket az XMLHTTPRECREST-en keresztül küldheti el, a kézi kiszolgálóra való hivatkozással (Say, Curl vagy akár Telnet segítségével), de nem hozhat létre olyan HTML-űrlapot, amely teljes körű elszámolási / törlési kérelmet küld.

A tény az, a HTML specifikáció nem teszi lehetővé, hogy hozzon létre formák adatok küldését eltérően keresztül GET vagy POST. Ezért a szokásos működés más módszerekkel mesterségesen kell utánozni őket. Például a rackben (olyan mechanizmus, amely alapján Ruby kölcsönhatásba lép a webszerverrel; rack, sínek, Merb és más rubin keretek készülnek) formában hozzáadhat egy "_thod" nevű rejtett mezőt, és a Érték Adja meg a módszer nevét (például a "Tedd") - Ebben az esetben a kérés után kerül elküldésre, de a rack képes lesz úgy tenni, mintha megtörténne, és nem post.

HTML űrlap. Arrays $ _post és $ _get

HTML űrlap. Az adatok küldésére szolgáló módszerek a szerverre

A HTML-formákkal valószínűleg már találkozott:

Adja meg nevét:

A kód mentése a HTML fájlban, és megtekintheti kedvenc böngészőjével, megjelenik a szokásos HTML űrlap:

Címke

páros végső címke
Valójában megkérdezi az űrlapot. Az jellemzői mindkettő választható:

  • action - jelzi az URL-t (teljes vagy rokon), amelyhez az űrlapot elküldi. Ha ez a tulajdonság nem határozza meg, a legtöbb böngésző (pontosabban szólva, minden böngésző általam ismert) Levél formában a jelenlegi dokumentum, azaz „a magukat”. Ez egy kényelmes csökkentés, de a HTML szabvány szerint a cselekvési attribútum szükséges.
  • a módszer az űrlap küldésének módja. Két közülük van.
    • Get - Küldés űrlapadatok a címsorban.
      Észrevenné a jelenlétét a szimbólum URL-jének végén "?" És a következő adatok a formátum paraméter \u003d érték. Itt a "Paraméter" megfelel az űrlapelemek név attribútumának értékének (lásd az alábbiakban: Teg ), és az "érték" - az érték attribútumának tartalma (például például tartalmazza a felhasználói bemenetet az azonos címke szövegmezőbe ).
      Például próbáljon meg valamit keresni a Yandexben, és figyeljen a böngésző címsávára. Ez egy szerkezeti módszer.
    • Post - forma Ezeket a lekérdezési testbe küldjük. Ha nem teljesen tisztázott (vagy teljesen tisztázott), mi az is - ne aggódj, hamarosan visszatérünk erre a kérdésre.
    Ha a módszer attribútum nincs megadva - a juttatás.

Címke - Megadja a Típus attribútum által meghatározott űrlapelemet:

  • A "szöveg" érték egy sor bemeneti mezőt állít be
  • Az "Submit" érték beállítja a gombot, amikor az űrlapot a kiszolgálóra megnyomja

Más értékek lehetségesek (és - nem az egyetlen címke, amely meghatározza az űrlap elemet).

Tehát mi történik, amikor megnyomjuk az "OK" gombot?

  1. A böngésző az alakban szereplő elemek böngészése és a nevükből és az értéktől származik ezek az űrlapok. Tegyük fel, hogy a VASYA név bevezetésre került. Ebben az esetben ezek az űrlapok - NAME \u003d VASYA & OKBUTTON \u003d OK
  2. A böngésző létrehozza a kapcsolatot a kiszolgálóhoz, kérést küld az Action tag attribútumban megadott kiszolgálóra
    A Módszer attribútumában megadott (ebben az esetben - Get) által megadott küldési mód használatával az adatok továbbítása a lekérdezésben.
  3. A szerver elemzi a fogadott lekérdezést, válaszoljon, elküldi azt a böngészőnek, és bezárja a kapcsolatot
  4. A böngésző megjeleníti a kapott dokumentumot a kiszolgálón.

Ugyanazt a lekérdezést manuálisan küldjük (Telnet Súgó segítségével) úgy néz ki, mint ez (feltételezzük, hogy a webhely tartományneve www.example.com):

Telnet www.example.com 80 get /cgi-bin/form_handler.cgi?name\u003dvasya&okbutton\u003dok http / 1.0 \\ r host: www.example.com \\ r \\ n \\ r \\ n

Ahogyan, valószínűleg azt találtuk, már kitalálták, megnyomva a küldött gombot az űrlapon a "Get" küldésének módjával hasonló a megfelelő URL bemenetéhez (kérdőjel és űrlap adatok a végén) a böngésző címében rúd:

Http://www.example.com/cgi-bin/form_handler.cgi?name\u003dvasya&okbutton\u003dok

Tény, hogy a GET metódus mindig használják, amikor dokumentumot kér a szervertől, egyszerűen adja meg annak URL-t vagy a linkre kattintva. Használ Az URL egyszerűen adjon hozzá kérdőjeleket és adatait.

Talán mindezek műszaki adatait és gyakorlat a Telnet-Ohm tűnik hihetetlenül unalmas, sőt szükségtelen ( „és mi van a PHP?”). És hiába. :) Ezek a munka alapjai a HTTP protokollon, amelyet minden webes programozónak tudnia kell, és ez nem az elméleti tudás - mindez hasznos a gyakorlatban.

Most cserélje ki az űrlapunk első karakterláncát a következőkre:

Rámutattunk a "posta" küldési módjára. Ebben az esetben az adatokat több más módon küldjük el a szervernek:

Telnet www.example.com 80 Post /cgi-bin/form_handler.cgi http / 1.0 \\ r \\ n host: www.example.com \\ r \\ n Tartalom típus: Alkalmazás / X-www-form-urlencoded \\ N tartalomhossz: 41263 \\ r \\ r \\ n név \u003d VASYA & OKBUTTON \u003d OK

Amikor a POST módszer, ezeket a formákat után küldött „két beírja a” - a lekérdezés szervezetben. Mindezek a fentiek szerint egy lekérdezési fejléc (és amikor a szerkezeti módszert használtuk, ezeket a formákat elküldték a címben). Annak érdekében, hogy a szerver tudja, hogyan kell befejezni a kérés testületeinek olvasását, a cím a tartalomhossz-vonalban jelen van; Körülbelül ugyanez, hogy az űrlapadatokat a paraméter1 \u003d érték1 \u003d Value1 és paraméter2 \u003d Value2 ... és az értékek URLENCODE-ként továbbítják - azaz a szerver, de a lekérdezési testben, számolt be a Content fejléc -Type: application / x-www-form-urlencoded.

A post módszer előnye a korlátozás hiánya a karakterlánc hosszában az űrlapadatokkal.

A post módszer használatakor lehetetlen küldeni egy űrlapot, csak "a linken megy", ahogy a Get.

A post-formátum használata esetén a cselekvési attribútumban megadhatja a kérdőjel és a paraméterek elérését. Így a post módszer mind a Get módszert is tartalmazza.

Arrays $ _get és $ _post

Tehát, a formák a fő út közötti adatcserét a webszerver és a böngésző, vagyis biztosítani interakció a felhasználó - sőt, amelyre szüksége van, webes programozás.

Tekintsünk egy egyszerű példát:



ha ($ _server ["request_method"] \u003d\u003d "posta") (
Echo "

Helló, "$ _Post [" Név "]."

!" ;
}
?>
">
Adja meg nevét:






A 8-12 vonalak formája két elemet tartalmaz: név és okkutton. A módszer attribútum a POST form method, a cselekvési attribútum jelöli az URL-t, amely az űrlap elküldése van töltve a PHP_SELF szerver változó értékét - a címe a forgatókönyvet abban a pillanatban.

- A felvétel rövidített formája .

Tegyük fel, hogy a Név mezőben lépett be a Vasya értékét, és megnyomta az OK gombot. Ugyanakkor a böngésző elküldi a kiszolgálót. Lekérdezés test: NAME \u003d VASYA & OKBUTTON \u003d OK. A PHP automatikusan kitölti a $ _post tömböt:

$ _POST ["NAME"] \u003d "VASYA"
$ _POST [OKBUTTON] \u003d "OK"

Valójában a "Vasya" értékét elküldjük a böngészőnek az URLENCODE-formában; Windows-1251 kódolás esetén ez az érték% C2% E0% F1% FF. De mivel a PHP automatikusan elvégzi a szükséges dekódolást, akkor „elfelejti” ezt a funkciót -, amíg meg kell dolgozni HTTP lekérdezés kézzel.

Mivel a lekérdezési testületben csak nevek és értékek jelennek meg, de nem az űrlapelemek típusát, a PHP-nek nincs ötlete, megfelel a $ _post ["NAME"] bemeneti sor, gomb vagy a lista. De ez az információ általában nem szükséges. :)

Mivel tudod, hogy mi van a Submit gombon, opcionális, a 11. sorban törölheti a név attribútumot, rövidzárlat a gomb leírásához . Ebben az esetben a böngésző elküldi a nevet \u003d Vasya-Vasya.

És most - ugyanaz, de a get alakú:



ha (BETSET ($ _ get ["Név]))) (
Echo "

Helló, "$ _Get [" Név "].

!" ;
}
?>
">
Adja meg nevét:







A 8. sorban ugyanazt a sikert is lehet írni

: Get - az alapértelmezett módszer. Ezúttal a böngésző elküldi a GET-kérés, amely egyenértékű a belépő a címsorba a cím: http: //adress-site./mety-script.php? Name \u003d Vasya.

A PHP Get-formákkal ugyanúgy, mint a posztdal, azzal a különbséggel, hogy a $ _get tömb kitöltött.

A bíboros különbség a sorban 4. Mivel az egyszerű input a címet a böngésző string egy Get-queuity, check if ($ _SERVER [ "REQUEST_METHOD"] \u003d\u003d "Get") értelmetlen. Ezért igénybe a isset () design, amely értéke igaz, ha ez a változó határozza meg (vagyis jelöltek értéket), és hamis - ha a változó nincs definiálva. Ha az űrlapot megtöltötték - ahogy már megértették, a PHP automatikusan hozzárendeli a $ _get ["NAME"] értéket.

Az ellenőrzést a BETSET () - Univerzális használatával használják, amelyet utólag használhatunk. Ezenkívül előnyös, mivel lehetővé teszi, hogy megtudja, melyik űrlap kitöltése van.

Egy kicsit összetettebb példa.




Echo "Adja meg a nevet!
" ;
< 1900 || $_POST [ "year" ] > 2004 ) {
Visszhang.
"
;
) MÁS (

" ;

Echo "te. $ Kor. " évek
" ;
}
Echo "


" ;
}
?>
">
Adja meg nevét:


Adja meg születési évét:







Itt nem használnak új technikákat. Tartsa be, hajtsa végre a kódot, próbálja meg módosítani ...

Módosítsa az utolsó példát, hogy a felhasználó ne legyen újratöltse a mezőket. Ehhez töltse ki a formanyomtatvány-elemek értéktulajdonságok értékét.



$ NAME \u003d BETSET ($ _ POST ["NAME"])? $ _Post ["Név"]: "";
$ Év \u003d Isset ($ _ Post ["Év"])? $ _Post ["Év"]: "";

Ha (PONTSET ($ _ POST ["NAME"], $ _POST ["Év"])) (
ha ($ _post ["Név"] \u003d\u003d "") (
Echo "Adja meg a nevet!
" ;
) Más, ha ($ _post ["év"]< 1900 || $_POST [ "year" ] > 2004 ) {
Visszhang. "Adja meg a születési év! Érvényes értéktartomány: 1900..2004
"
;
) MÁS (
Echo "hello". $ _POST ["NAME"]. "!
" ;
$ Kor \u003d 2004 - $ _Post ["Év"];
Echo "te. $ Kor. " évek
" ;
}
Echo "


" ;
}
?>
">
Adja meg nevét:


Adja meg születési évét:







Néhány értelemszerűen 4 és 5. Minden nagyon egyszerű: a 4. sor így rögzíthető:

ha (PONTSET ($ _ POST ["NAME"]))))
$ NAME \u003d $ _POST ["NAME"];
mÁS.
$ NAME \u003d "";

Egy kérdés merülhet fel - miért ne dobja el a húrokat 4-5, és ne írjon:

Adja meg nevét: ">

Adja meg születési évét: ">

A tény az, hogy ha ezek a bejegyzések nem meghatározott - és ez lesz, ha a forma még nem töltött, - PHP fog kiadni figyelmeztetések használatát inicializált változók (és megalapozott: Egy ilyen üzenet lehetővé teszi, hogy gyorsan Keressen keményen rögzített hibákat változó nevekben, és figyelmezteti a lehetséges "lyukakat" a webhelyen). Természetesen a kódot közvetlenül az űrlapba helyezheti, de túlságosan nehézkes.

Kitalált? És most próbálja meg hibát találni az alábbi kódban. Nos, nem teljesen hiba, de hibák.

htmlspecialchars ()

Nem találtam? Majd szólok. Írja be például a "Név" mező kettős idézeteket és néhány szöveget, például VA "SIA-t. Küldjön egy űrlapot, és nézze meg az oldal forráskódját. A negyedik sorban valami ilyesmi lesz :

Adja meg nevét:

Ez - semmi jó. És ha a ravasz felhasználó belépett a JavaScript kódba?

Ahhoz, hogy megoldja ezt a problémát, meg kell használni a htmlspecialchars () függvény, amely felváltja a szolgáltatás karakterek a HTML-ábrázolás (például idézetek - be „):



$ NAME \u003d BETSET ($ _ POST ["NAME"])? Htmlspecialchars ($ _post ["Név"]): "";
$ Év \u003d Isset ($ _ Post ["Év"])? Htmlspecialchars ($ _post ["év"]): "";

Ha (PONTSET ($ _ POST ["NAME"], $ _POST ["Év"])) (
ha ($ _post ["Név"] \u003d\u003d "") (
Echo "Adja meg a nevet!
" ;
) Más, ha ($ _post ["év"]< 1900 || $_POST [ "year" ] > 2004 ) {
Visszhang. "Adja meg a születési év! Érvényes értéktartomány: 1900..2004
"
;
) MÁS (
Echo "hello". $ Név. "!
" ;
$ Kor \u003d 2004 - $ _Post ["Év"];
Echo "te. $ Kor. " évek
" ;
}
Echo "


" ;
}
?>
">
Adja meg nevét:


Adja meg születési évét:







Ismételje meg a tapasztalatot, és győződjön meg róla, hogy a HTML-kód helyes.

Ne feledje - a HTMLSpecialchars () függvényt mindig akkor kell használni, ha a HTML-speciálisan jelen lévő változó tartalma jelenik meg.

phpinfo ()

A PHPInfo () függvény az egyik legfontosabb a PHP-ben. Megjeleníti a PHP beállításokról szóló információkat, az összesféle konfigurációs változók értékeit ...

Miért említem őt a formanyomtatványon? PHPINFO () - kényelmesebb hibakeresési eszköz. PhpInfo () Többek között megjeleníti az összes $ _get, $ _post és $ _server változók értékeit. Tehát, ha a változó "elveszett", a legegyszerűbb módja annak, hogy észlelje, mi a helyzet - használja a phpinfo () funkciót. Annak érdekében, hogy a funkció csak a változók értékeit jelenítse meg (és nem kellett görgetnie egy tíz oldalt), azt a következőképpen kell felhívni: phpinfo (info_variables); , vagy - ez teljesen ugyanaz - phpinfo (32);.



">
Adja meg nevét:


phpinfo (32);
?>



Vagy például ez a helyzet: tudni szeretné a látogató IP-címét. Emlékszel, hogy a megfelelő változót tömb tárolja a $ _SERVER, de - ez nem elég - ők elfelejtették pontosan a változó neve. Ismét hívja a phpinfo-t (32); Keresünk az IP-címet a lemezen, és találja meg - a $ _SERVER string [ „REMOTE_ADDR”].



Tetszett a cikket? Oszd meg