Webové programovanie je z väčšej časti len spracovanie rôznych údajov zadaných používateľom – teda spracovanie HTML formuláre.
Snáď neexistuje žiadny iný jazyk ako PHP, ktorý by vám tak uľahčil úlohu spracovania a parsovania, t.j. premenné, ktoré pochádzajú (z prehliadača používateľa). Faktom je, že všetky potrebné funkcie sú zabudované do jazyka PHP, takže ani nemusíte myslieť na vlastnosti protokolu HTTP a myslieť na to, ako sa odosielajú a prijímajú formuláre POST, či dokonca nahrávanie súborov Vývojári PHP majú zaopatrené na všetko.
Tu sa nebudeme zaoberať mechanikou protokolu HTTP, ktorý je zodpovedný za doručovanie údajov z prehliadača na server a naopak, tomu je venovaná špeciálna časť PHP a HTTP. Hlboko sú tam zvážené aj princípy práce s HTML formulármi.
Teraz budeme uvažovať o týchto mechanizmoch iba z aplikovaných pozícií bez toho, aby sme sa ponorili do teórie.
Aby sme mohli prijímať údaje od používateľov, potrebujeme s nimi interaktívnu interakciu.
Teraz sa pokúsme napísať skript, ktorý v parametroch a výstupoch prevezme používateľské meno:
"Hej,<имя>!".
Najprv sa pozrime na najjednoduchší spôsob odovzdania názvu skriptu – jeho priamym zadaním do adresy URL za znakom ? - napríklad vo formáte meno=meno. Tu je príklad:
http://localhost/script.php? meno=meno
Náš skript musí rozpoznať parameter názov. Teda, zjednodušene povedané, skript (skript) musí akceptovať parameter názov ako premenná názov a potom vypíšte do prehliadača používateľa reťazec „Dobrý deň,<имя>!". Môžete to urobiť takto:
Písanie skriptu, ktorý preberá parameter názov a zobrazenie výsledku v prehliadači používateľa a následné uloženie pod menom skript.php:
echo "Dobrý deň, $_GET["meno"] !";
?>
V našom príklade sme použili preddefinovanú premennú $_GET["meno"]"akceptovať" parameter názov. Teraz prechádza GET-parameter požiadavky meno=Sasha, dostaneme nasledujúci výsledok:
Ahoj Sasha!
Teraz skúsme odovzdať parameter názov nie z reťazca dopytu prehliadača, ale prostredníctvom formulára HTML. Vytvárame HTML dokument s nasledujúcim obsahom:
Teraz uložme tento HTML dokument na našom testovacom serveri (localhost) pod názvom odoslať.html v rovnakom adresári, kde sme už skript uložili skript.php.
Teraz spustíme HTML dokument v prehliadači:
http://localhost/send.html
Zadajte meno do poľa a stlačte tlačidlo "GO!". Formulár odovzdá parameter prostredníctvom požiadavky GET názov náš scenár skript.php. Ak ste urobili všetko správne a váš webový server funguje správne, do poľa formulára sa zobrazí názov, ktorý ste zadali! V paneli s adresou prehliadača uvidíte cestu a parameter, ktorý ste odovzdali názov.
Teraz musíme pochopiť, ako môžeme odovzdať veľa parametrov, aspoň na začiatok dva.
Potrebujeme teda, aby skript vydal nasledovné:
"Hej,<имя>! Vám<возраст>rokov!".
To znamená, že musíme skriptu odovzdať 2 parametre: názov a Vek.
Teraz napíšeme scenár skript.php, ktorý má dva parametre: názov a Vek, ako aj dokument HTML s formulárom, ktorý odovzdá tieto dva parametre nášmu novému skriptu:
echo "Ahoj $_GET["name"] ! Máš $_GET["age"] rokov!";
?>
A tu je HTML dokument odoslať.html, s ktorými sme parametre názov a Vek prejdite do nášho skriptu:
Teraz má náš skript dva parametre názov a Vek a vypíše do prehliadača výsledok vo formáte: "Dobrý deň,<имя>! Vám<возраст>rokov!".
Po odovzdaní parametrov skriptu dávajte pozor na panel s adresou prehliadača, bude to vyzerať asi takto (bez kódovania adresy URL v cyrilike):
http://localhost/script.php?name=Sasha&age=23
V závislosti od nastavení tlmočníka existuje niekoľko spôsobov, ako získať prístup k údajom z formulárov HTML. Tu je niekoľko príkladov:
// Dostupné od PHP 4.1.0
echo $_GET["používateľské meno"];
echo $_POST["používateľské meno"];
echo $_REQUEST["používateľské meno"];
Možno ste si všimli, že na väčšine stránok môžete vidieť nasledujúce adresy:
http://website/index.php?blog=2
Tu, aj bez znalosti php, môžete hádať, že pristupujeme k súboru index.phpČo však nasleduje za otáznikom, vie len málokto. Všetko je celkom jednoduché: ?blog=2 toto je deklarácia globálnej premennej "$_GET["blog"]" s hodnotou "2". Skriptu teda odovzdám premennú, ktorá je zodpovedná za zobrazovanie informácií z databázy. Poďme si napísať malý skript, v ktorom všetko jasne uvidíte:
if(isset($_GET["blog"])) (
echo $_GET["blog"];
}
?>
Operátor podmienky if() používame ako podmienku, existuje tento riadok:
Isset($_GET["blog"])
isset() vám umožňuje zistiť, či existuje premenná, ktorá je uvedená v zátvorkách, teda stav, ktorý som opísal v kóde, znie takto: Ak existuje premenná $_GET["blog"], potom zobrazte obsah tejto premennej na obrazovke. Tu je to, čo sa stalo:
Myslím, že je to jasné Vytvorí sa globálna premenná $_GET s identifikátorom, ktorý sme deklarovali v paneli s adresou ( v tomto prípade s ID "blog")
Teraz chcem objasniť jeden bod. Predpokladajme, že potrebujeme deklarovať dve premenné, ako to urobiť? Prvá premenná je deklarovaná za otáznikom "?" Druhá premenná je deklarovaná za takýmto znakom "&" ( Úprimne povedané, neviem, čo je to za znak.), tu je príklad deklarovania troch premenných:
http://website/index.php?a=1&b=2&c=3
Tu je výstupný kód:
if(isset($_GET["a"]) AND isset($_GET["b"]) AND isset($_GET["c"])) (
echo $_GET["a"]."
";
echo $_GET["b"]."
";
echo $_GET["c"]."
";
}
?>
Podmienka znie takto:
Ak existuje globálna premenná $_GET["a"] a globálna premenná $_GET["b"] a globálna premenná $_GET["c"], zobrazte ich na obrazovke, tu je výsledok:
Formuláre
Predtým, než prejdeme na príspevok otázky, musíte pochopiť, čo sú formuláre? Prečo je to potrebné? Pretože globálna premenná $_POST[""] sa vytvára prostredníctvom formulárov. čo je formulár? Toto sú polia, do ktorých používateľ zadáva vlákno informácií. Polia sú v jednom riadku, veľké polia, sú tam aj prepínače, zaškrtávacie políčka. Vezmime si to pekne pekne po poriadku...
Formulár je značka:
Formulár má atribúty, uvediem tie najbežnejšie:
Vytvoríme formulár:
Ako súbor handler som vložil súbor test.php pretože práve v ňom pre vás píšem príklady. Spôsob odosielania som nastavil na príspevok, pretože tieto spôsoby sa používajú v 99,9% prípadov. Nášmu formuláru som dal aj názov – forma
Teraz sa ponorme do sveta tvarových prvkov. Prvá vec, ktorú musíte pochopiť, je, že takmer všetky prvky sú značky. rozdiel je len v atribúte typu tieto značky. Dovoľte mi uviesť zoznam použitých prvkov formulára:
Som si istý, že ste na takéto polia narazili viac ako raz, takže tu, ako sa hovorí: „bez komentárov“
Teraz si urobme malý tréningový dotazník, s ktorým budeme ďalej pracovať. Našou úlohou je zostaviť malý dotazník, ktorý nám prezradí meno výplňníka, pohlavie, z akej krajiny je, jeho obľúbenú farbu a textové pole, kam môže používateľ pridať niečo o sebe. To som urobil:
- akcia - zadajte súbor, do ktorého sa premenné prenesú.
- metóda - metóda na odovzdávanie premenných. V našom prípade ide o metódu POST.
- meno - názov formulára. Zároveň sa premenná s týmto názvom prenesie do súboru.
Textové polia:
- meno - názvy premenných. V našom prípade ide o meno a priezvisko (premenné meno a priezvisko).
- typ – typ poľa. V našom prípade ide o textové pole.
- názov – názov tlačidla a premennej, ktorá sa bude odovzdávať spolu s ostatnými premennými.
- typ - typ tlačidla. V našom prípade ide o tlačidlo na odoslanie údajov.
- hodnota - text na tlačidle.
Kód druhého súboru, ktorý bude slúžiť ako prijímač premenných. Nazvime to post-2.php
$meno = $_POST; $priezvisko = $_POST; echo "Hodnoty premenných odovzdaných metódou POST - $meno a $priezvisko";
Rovnako ako pri metóde GET, premenným najskôr priradíme hodnoty zodpovedajúcich prvkov globálne polePOST. Ďalej, kvôli prehľadnosti, zobrazujeme tieto premenné na obrazovke pomocou .
Teraz, keď sa načíta prvý súbor, načíta sa formulár. Po zadaní údajov kliknite na tlačidlo "Odoslať", v dôsledku čoho sa na novej karte otvorí stránka s druhým súborom, na ktorej sa zobrazia hodnoty zapísané vo formulári na predchádzajúcej stránke. To znamená, že hodnoty premenných z prvého súboru sa prenesú do druhého súboru.
Týmto sa končí tento článok o odovzdávaní premenných v PHP. Ak nechcete zmeškať výskyt ďalších článkov na blogu, odporúčam prihlásiť sa na odber noviniek akýmkoľvek pohodlným spôsobom v sekcii „Odber“ alebo pomocou formulára nižšie.
To je všetko. Veľa šťastia a úspechov pri zvládnutí základov PHP.
Mám štruktúru adresy URL s reťazcom dopytu a parametrom s názvom position ,
http://computerhelpwanted.com/jobs/?occupation=administrator&position=network+administrator
Mám tiež rozbaľovaciu ponuku na výber formulára s pozíciou výberu názvu formulára.
Keď používateľ vykoná výber, odošle hodnoty možností do atribútu action s parametrom select name="position" na použitie v reťazci dotazu.
Moja otázka znie, ako získam prístup k hodnotám výberu formulára oddelene od hodnôt reťazca dotazu?
Používam metódu _GET na volanie hodnoty z parametra reťazca dotazu.
$pozícia = isset($_GET["pozícia"]) ? ($_GET["pozícia"]) : "";
Je zrejmé, že to získava hodnotu zo štruktúry adresy URL, nie z prvku formulára. Alebo možno je, nie som si istý. Zdá sa však, že testovaním som dospel k záveru, že to získava podľa adresy URL, nie podľa formulára.
Ako sa dostanem k hodnote výberu formulára pri porovnávaní v mojom PHP?
Obnoviť
Mám problém s kanonickou adresou URL uvedenou v hlavičke.
Tak to má byť
jediný rozdiel je - a + v reťazci dopytu.
Nie všetky moje dopytové reťazce majú +. Niektorí majú -. Ale zobrazujem obsah na oboch adresách URL, či už majú - alebo +. Tak či onak, obe adresy URL získajú rovnaký obsah stránky.
Keďže sa však kanonický generuje dynamicky z URI a nie z hodnoty prvku formulára, na oboch stránkach s obsahom sú 2 rôzne kanonické znaky.
Použitie _Get('value') získa hodnotu z reťazca dotazu namiesto prvku formulára. Viem to, pretože hodnota prvku formulára má medzi správcom siete medzeru, ktorá sa zakóduje, keď sa formulár odošle ako sieť+správca. Takže ak môžem porovnať s hodnotou prvku formulára, môžem nastaviť správnu kanonickú hodnotu.
Rozhodol som sa urobiť si cheat sheet o hlavných metódach odosielania a prijímania údajov z webového servera pomocou php a js. A tak sa zrodila táto poznámka. V ňom som zhodnotil najčastejšie používané spôsoby výmeny dát medzi webovým klientom a webovým serverom, ktoré používajú php vývojári.
Najobľúbenejšie na odosielanie údajov sú php get request a php post request, po ktorých nasleduje technológia AJAX. Aké sú teda rozdiely medzi žiadosťami o získanie a odoslanie.
- požiadavka get sa odovzdá do panela s adresou (v hlavičke http) a je viditeľná pre používateľa
- žiadosť o odoslanie sa odovzdá v tele dokumentu
- veľkosť žiadosti o získanie je obmedzená (maximálne 276 znakov)
- metóda get neprenáša súbory
- post metóda nahráva súbory
php získať požiadavku
Aby sme mohli požiadať o získanie php, musíme najprv vytvoriť html formulár s poľom na zadávanie údajov. V značke formulára uvádzame, ku ktorému súboru na serveri máme pristupovať a akým spôsobom sa má odoslať
súbor get.php
array("login" => "Správca", "heslo" => "h734yuiw8"), 1 => array("login" => "Ján", "heslo" => "78dfud776s")); //získanie vlajky $flag=$_GET["vlajka"]; //ak je príznak 1, potom odošlite pole ako getom //magic vo funkcii serializácie if($flag==1)( header("Location: index.php?data=".serialize($users)." "); exit; ) else( header("Umiestnenie: index.php"); exit; ) ?>
php žiadosť o príspevok
Požiadavka na príspevok php prechádza aj cez formulár, iba atribút v značke formulára bude method="post" . A my dostaneme údaje v zadanom súbore z poľa post $_POST["search"] a okamžite uvedieme príklad.
Úloha: odošlite údaje z index.php metódou POST na server v súbore get.php a získajte ich späť, ak je pole na odosielanie údajov prázdne, zobrazí sa správa o prázdnom poli. Začnime riešenie s index.php
súbor get.php
AJAX Array Passing
Urobme rovnakú úlohu s ajaxom. Ajax je vo všeobecnosti technológia súvisiaca s javascriptom, ale v rámci poznámky o prenose údajov na server sa dotkneme aj tejto technológie. Samozrejme ajax je téma na samostatný článok. Počas požiadavky zobrazíme aj indikátor načítania gif. Máme tiež dva súbory index.php a get.php. súbor index.php. Nezabudnite zahrnúť jquery. Dávajte pozor, ak chcete skryť gif pri prvom načítaní stránky, priraďte k bloku boxu štýl zobrazenia: žiadny
Tipy a triky v aplikácii Adobe illustrator: Triky v aplikácii illustrator
Po nainštalovaní aktualizácií sa systém Windows nespustí
Po nainštalovaní aktualizácií sa systém Windows nespustí
AVG Internet Security – bezplatná licencia
AVG Internet Security – bezplatná licencia