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.
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.
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.
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.
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.
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:
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. название>
HEAD>
<Тело>
Ez egy példa a bekezdésre a HTML-ben. p>
Body>
Html>
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 kód mentése a HTML fájlban, és megtekintheti kedvenc böngészőjével, megjelenik a szokásos HTML űrlap:
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.
- Get - Küldés űrlapadatok a címsorban.
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?
- 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
- 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 szerver elemzi a fogadott lekérdezést, válaszoljon, elküldi azt a böngészőnek, és bezárja a kapcsolatot
- 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
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.
=$_SERVER["PHP_SELF"]?> - A felvétel rövidített formája echo $_SERVER["PHP_SELF"]; ?> .
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 "].
!" ;}
?>
A 8. sorban ugyanazt a sikert is lehet írni
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 "
" ;
}
?>
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 "
" ;
}
?>
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);.
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”].