CGI (Web) Aplikace ve Euphoria


Original: http://www.rapideuphoria.com/cgi.htm

Uvod

Pokud máte webové stránky, můžete být schopni nastavit programy na vašem serveru , aby návštěvníci na vaše stránky může běžet . Většina Zdarma web hosting služby neposkytují tuto možnost , ale téměř všechny placené služby dělat. Pokud inzerovat funkce, jako je ” cgi-bin ” , ” Perl ” , “C” atd., pak můžete s největší pravděpodobností běžet Euphoria programy stejně. Hosting společnost nemusí instalovat Euphoria . Můžete si to udělat sám docela snadno. Co se týče hostitel týče, jste právě běží program napsaný v C, a toEuphoria tlumočníka .

Velmi jednoduchý protokol nazývá CGI ( Common Gateway Interface) je podporován téměř všemi placených webových serverů , a můžete použít téměř jakýkoliv programovací jazyk vyvíjet aplikace CGI . Perl je v současné době velmi populární pro CGI , ale Euphoria je dokonce vhodnější než Perlu v mnoha ohledech . Ve srovnání s Perl programů Euphoria programy nastartovat rychlejší, rychlejší a mají lepší diagnostiku chyb . Ve srovnání s C, Euphoria programy berou méně úsilí k rozvoji a jsou snadněji měnit a ladit. Euphoria má také mnohem jednodušší retezci , který je často důležité v programování CGI .

CGI (Common Gateway Interface )

CGI je fantazie zkratka pro velmi jednoduchý protokol . Standard CGI určuje, jakwebový prohlížeč předává informace do programu běží na webovém serveru a jak tento program předá informace zpět do webového prohlížeče .

Web Hosts

Pokud máte potřebný software webového serveru , a schválení vašeho poskytovatele internetového připojení , budete pravděpodobně spouštět euforie CGI programů přímo na vašem vlastním (domácí ) stroje.

Nicméně, většina lidí používat web hostingové služby, která podporuje CGI . Můžete si najít hostingové služby, které stát kdekoli od $ 3 US za měsíc až $ 50 nebo více .

RapidEuphoria.com je na poměrně spolehlivé hostitele ( addr.com ), který stojí pouhých $ 10 US za měsíc. Za tuto cenu dostaneme 3000 MB prostoru na disku v počítači, FreeBSD a 60 GB na šířku pásma za měsíc. Až do nedávné doby , za stejnou cenu , jsme dostali pouze 150 MB prostoru a 15 GB na šířku pásma . Omezení šířky pásma určuje počet bajtů , které mohou být staženy návštěvníků každý měsíc .

EUforum ( na naší doméně OpenEuphoria.org ) je umístěn na ještě levnější stránkách Linux ( hostitel -web- site.com ) za $ 4/month . To má 200 MB prostoru a 5 GB na šířku pásma . Až do nedávné doby , to stálo $ 18/month , takže hosting ceny se zdají být veden dolů.

Instalace Euphoria CGI

Instalace Euphoria na hostiteli je velmi jednoduchá. Musíte jen nahrát euforie adresář pro operační systém , který je hostitel spuštěn. Můžete dát euforie adresář v nejvyšší úrovni svého osobního prostoru . Není třeba nic měnit na systém jako celek. Používání aplikace Telnet (nebo ssh ), můžete experimentovat a ujistěte se, že můžete provést některé z euforie \ demo programů na hostitele. Měli byste nastavit EUDIR a proměnné prostředí PATH , aby ukazoval na své euforie adresáře. To by mohlo zahrnovat úpravy . Profilu soubor, který se spustí pokaždé, když se přihlásíte

Euforie CGI programy , které chcete , aby lidé spustit , musí být obvykle umístěny vspeciálním podadresáři vašeho účtu , s názvem ” cgi-bin ” . cgi-bin je často umístěn v adresáři s názvem ” public_html ” , která obsahuje všechny veřejně viditelné HTML souborů . cgi-bin má zvláštní oprávnění, která návštěvníky na vaše stránky spustit programy , které obsahuje.

Na platformách Linux a FreeBSD , a také na Windows ( v případě, že systém používá webový server Apache ), můžete použít ” shebang ” čáru jako první řádku hlavního Euphoria souboru. Ukáže systém , kde se nachází Euphoria interpret ( EXU nebo exw.exe ) . např.

# ! /. exu

by se říci, že tlumočník je v aktuálním adresáři ( cgi-bin ) . Pokud nahrajete soubor do Linux / FreeBSD , dejte pozor, abyřádek končí jen s \ n , ne \ r \ n .

Poznámka : V systému Windows , měli byste použít exwc.exe , ne exw.exe . exwc zpracovává standardní výstup lepší, a to je důležité pro CGI. Měli byste také říci ” bez varování ” v horní části hlavního souboru. Varovné zprávy by mohlo způsobit problémy s řádným ukončení programu.

Na Linux / FreeBSD je nutné nastavit oprávnění spouštět na libovolném CGI programu. Když se uživatel pokusí spustit svůj program , zvláštní proces na serveru běží o svůj program a je třeba najít a mít přístup k vašim souborům Euphoria . Pravděpodobně byste měli nastavit své soubory, takže každý může číst a spouštět je , ale jen můžete psát je. např. rwx r- x r- x nebo chmod 755 myfile.exu . Nezapomeňte také, aby se EXU spustitelný sebe a ostatní .

V systému Linux , pokud váš / tmp adresář není zapisovatelný , nebo z jiných důvodů , možná budete muset spustit nekomprimovaný verzi EXU . Můžete získat ze stránky download RDS , nebo dekompresi EXU pomocí UPX .

Chcete-li , aby váš život jednoduchý, možná budete chtít zkopírovat všechny soubory do cgi-bin , že váš program bude potřebovat. To zahrnuje standardní euforie soubory z euforie \ include , euforie tlumočníka , a všechny databázové soubory, které se chystáte otevřít. Tímto způsobem se můžete vyhnout lepkavý problém procesu serveru nemají stejné proměnné prostředí ( PATH , EUDIR ), jako vy, a není schopen najít své euforie soubory .

HTML formuláře

Můžete si udělat jednoduchý webový odkaz na vaše CGI program a spusťte jej kliknutím na odkaz , ale normálně je nutno nastavit webovou stránku obsahující formulář HTML . To poskytuje uživatelům s grafickým uživatelským rozhraním, kde mohou poskytnout informace k programu CGI .

Existuje několik míst na RapidEuphoria.com webovou stránku, kde jsou HTML formuláře používané pro komunikaci s CGI programy napsané v euforii. Snad nejjednodušší je mikroekonomie formulář na adrese: http://www.rapideuphoria.com/ecoform.htm
Můžete použít Internet Explorer View / zdroj vidět HTML kód této stránky .

Pokud stránka dolů několikrát , uvidíte začátek formuláře:

Tím se vytvoří formulář prouživatele k vyplnění . Když uživatel klikne na tlačítko Odeslat na formuláři , bude program CGI , economy.exu , uložené v cgi-bin , být provedeny na serveru.

Existují dva možné ” metody” , které můžete použít . Tato forma používá ” POST ” metodu . Druhá metoda se nazývá ” GET ” metoda .

S metodou POST , uživatel je vstupní data dodávána do Euphoria programu jako jeho standardní vstup a je možné číst gets ( ) a getc ( ) .

Pomocí metody GET , data jsou dodávána do Euphoria programu jako proměnnou prostředí s názvem ” QUERY_STRING ” .

Který způsob je nejlepší? Ve většině případů nezáleží na tom, kterou metodu použít , protože vstupní data budou stejné . Pouze způsob získání těchto dat se bude lišit .

Ve skutečnosti, pokud se podíváte na Euphoria program, který zpracovává tento formulář mikroekonomie : http://www.rapideuphoria.com/economy.txt

Uvidíte, že postup read_input ( ) kontroluje, které byla použita metoda , a chytne vstupní data z příslušného zdroje. Užívejte read_input () ve svých CGI programy.

Formulář sbírá data od uživatele různými způsoby . Jedním z nejjednodušších způsobů, jak se s tagy pro zadávání textu , jako jsou:

<input type=”text” name=”name” size=”35″>

<input type=”text” name=”city” size=”35″>

který nechal typ uživatele v jeho jménu a město do dvou oddělených polí. Hodnoty, které on typy jsou předány Euphoria programu a jsou označeny jako ” jméno” a ” město ” .

Co tedy vstupní data vypadat ?

metodou GETQUERY_STRING proměnná prostředí ( v prvních dvou polí ) bude vypadat takto :

” name = John & city = Miami ”

a budete mít možnost vidět ji na adresního řádku svého webového prohlížeče , po ‘?’ charakter .

Pokud je použita metoda POST , bude stejný řetězec k dispozici prostřednictvím standardního vstupu.

Budete muset analyzovat tento vstup vypuknout dvě pole . Mikroekonomie program používá parse_input () , jak to udělat . Možná budete chtít začlenit parse_input () do svých programů.

Kromě jednoduchých textových polí , existuje mnoho typů uživatelského vstupu k dispozici ve formátu HTML . Můžete mít pouze jeden řádek a více krabic linkový vstup , hesla boxy ( tečky ) , rozbalovací menu , přepínače , zaškrtávací políčka , atd. Každý přikládá název kusu údajů poskytnutých uživatelem , a váš program CGI má prolomit tuto informaci pomocí parse_input () nebo nějaký ekvivalentní předpis . Můžete si dokonce nechat uživatel nahrát velké soubory .

Výstup z CGI program

Po přezkoumání řetězec dotazu , musí váš program vygeneruje odpověď pro uživatele. Tato odpověď , musí být ve formě kompletního HTML stránky na standardní výstup ( euforie soubor 1 ) . Úplně první řádek , že váš program zapisuje na standardní výstup musí být:

Content-Type: text / html

Ta linka se pak musí následovat spoustu linek, které tvoří kompletní HTML stránku . Například ,mikroekonomie Program začíná voláním procedury print_HTMLheader () , která se :

puts ( 1 ” Content-type : text / html \ n \ n”)

puts ( 1 , “Thank You < / head> \ n”)

výstupy ( 1 , “\ n ” )

Mnohem později , když je to všechno hotové , zapíše se na poslední řádek výstupu, který obsahuje dokončit stránku. Pokud se programu nepodaří dokončit HTML stránku , uživatel může prohlížeč nezobrazí stránka zobrazila správně , pokud vůbec .

Ladění programů CGI

Když poprvé spustíte nový program CGI , šance jsou docela vysoké, že se nepodaří nějakým způsobem. Jste pravděpodobně zobrazí chybová zobrazenou stránku, která řeknou jen velmi málo o tom, co se stalo.

První věc, kterou byste měli udělat, je zkontrolovat soubor Euphoria ex.err v cgi-bin . Pokud existuje jedna tam , bude to říct, proč váš program zemřel . Pokud není ex.err , je možné, že váš program ani spustit , protože je to chybí správná oprávnění , nebo je linka shebang je špatné , nebo to může běžet , ale nevytvořila správné HTML stránky . Ujistěte se, že máte Content-Type řádek na začátku a máte správnou strukturu , počínaje a konče .

Pokud si nejste dostat ex.err , můžete vygenerovat soubor ex.pro tím, že říká ” s profilem ” na začátku programu. To vám dá představu o tom, co váš program příkazy provedeny před tím, než skončí.

Můžete také zkusit ” se stopou ” a trace ( 3) vytvořit soubor obsahující posledních 500 příkazy, které byly provedeny před tím, než skončí.

Jakmile je váš program se zdá být funkční , možná budete chtít přidat crash běžné, že pošle ex.err k vám prostřednictvím e-mailu. Můžete zjistit, že uživatelé se snaží dělat divné věci , které jste nikdy dělat , a se kterými se setkávají pády .

Urychlení CGI programů

Většina CGI programy vyžadují jen málo času procesoru , a většinu z toho času by mohlo být v počáteční , tedy načítání interpret jazyka a analýze program. Typický program CGI může číst několik parametrů, které uživatel zadá do formuláře, pak přístup jeden záznam v databázi , nebo poslat jednu e -mailovou zprávu , před zobrazením jednoduchou HTML stránku pro potvrzení uživatele.

Pro CGI aplikace, které vyžadují spoustu času , měli byste přeložit Euphoria program C a zkompilovat . Výsledný spustitelný soubor může být použit jako CGI program. To začne rychleji (bez analýzy ) , a běžet rychleji. Jediný problém je, že nebudete mít plnou ex.err soubor , když je tupád , ale můžete použít crash_routine () a posílat e -mail obsahující některé z klíčových proměnných , jako řetězec dotazu , který vedl k crash .