Dynamika na straně serveru

Podobné dokumenty
Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

Vstupní požadavky, doporučení a metodické pokyny

1 Webový server, instalace PHP a MySQL 13

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

language="javascript">... </script>.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP tutoriál (základy PHP snadno a rychle)

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

1. Webový server, instalace PHP a MySQL 13

Základy PHP. Úvod do jazyka PHP a principů skriptování na straně serveru

Návrh a tvorba WWW stránek 1/8. Formuláře

Střední odborná škola a Střední odborné učiliště, Hořovice

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

K práci budeme využívat souborového manažeru Unreal Commander alespoň si ho procvičíme

Instalace a konfigurace web serveru. WA1 Martin Klíma

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Formuláře. Internetové publikování. Formuláře - příklad

PHP a Large Objecty v PostgreSQL

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Inovace bakalářského studijního oboru Aplikovaná chemie

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Server-side technologie pro webové aplikace

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Skriptovací jazyky. Obsah

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Webové Aplikace (6. přednáška)

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Algoritmizace a programování

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Úvod do programovacích jazyků (Java)

Základy HTML, URL, HTTP, druhy skriptování, formuláře

PROGRAMOVÁNÍ V SHELLU

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Střední odborná škola a Střední odborné učiliště, Hořovice

Ukázka knihy z internetového knihkupectví

VISUAL BASIC. Práce se soubory

Programování v jazyce JavaScript

Programovací jazyk Pascal

Testování webových aplikací Seznam.cz

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Platební systém XPAY [

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

MAXScript výukový kurz

Střední odborná škola a Střední odborné učiliště, Hořovice

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Střední odborná škola a Střední odborné učiliště, Hořovice

Sada 1 - PHP. 03. Proměnné, konstanty

Činnost operačních systémů. Beránek Pavel 1. KŠPA

Programování v jazyce JavaScript

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Střední odborná škola a Střední odborné učiliště, Hořovice

Obsah. Předmluva Kapitola 1 Úvod 1. Web v kostce 1 Kdo je webmaster? 4 Doporučená literatura 4. Kapitola 2 Přehled jazyka HTML 5

Serverové skriptovací technologie

NSWI142 Webové aplikace Zkouškový test

Úvod do informačních služeb Internetu

Základy webových aplikací ZWA Přednáška č. 3 tvorba formulářů na klientské straně. Martin Klíma

4. lekce Přístup k databázi z vyššího programovacího jazyka

Internet Information Services (IIS) 6.0

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

PHP a bezpečnost. nejen veřejná

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Střední odborná škola a Střední odborné učiliště, Hořovice

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Úvod do tvorby internetových aplikací

DUM 3 téma: Podmínky a Globální proměnné

Užitečné odkazy:

Popis logování v aplikačním serveru

DYNAMICKÉ WEBOVÉ STRÁNKY

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

5. POČÍTAČOVÉ CVIČENÍ

Transkript:

Dynamika na straně serveru doc. Ing. Miloslav Hub, Ph.D. Pardubice, listopad 2012 Tento studijní materiál byl vytvořen s podporou projektu FRVŠ 375/2012 s názvem "Inovace studijního předmětu Tvorba WWW stránek".

Jak to celé funguje? 1. Klient odešle požadavek 2. Server požadavek zpracuje 3. Server odešle klientovi odpověď 1. 3. 2.

A co konkurence? ASP Microsoft.NET Java servlety, JSP CGI

Proč PHP? Možnost, jak zajistit dynamiku na straně serveru. Některá data je potřeba před odesláním klientovi předzpracovat. PHP je jedena z nejrozšířenějších technologií pro zajištění dynamiky na straně serveru. PHP podléhá The PHP License za kterou se však nemusí platit. PHP lze použít s nejčastěji používanou kombinací Linux+Apache+MySQL. PHP lze použít všude a to i v případě IIS fy. Microsoft. PHP nemusí být použito jenom pro programování na straně serveru, ale i pro programování CLI a GUI desktop aplikací. Pozn. PHP znamená Personal Hypertext Preprocessor

Co potřebujeme k PHP? Pro tvorbu PHP stránek: - postačí Poznámkový blok, existují však i kvalitnější editory (PsPad, Dreamweaver, ) Pro provoz PHP stránek: - webový server, který podporuje PHP (obsahuje PHP interpreter) - pokud chceme pracovat s databází, pak i databázový server - instalační balíky EasyPHP, PHPHome A hlavně? - nebát se učit novým věcem a experimentovat

Jak pozná server, že se jedná o PHP? 1. Soubory s PHP kódem mají příponu *.php 2. Kód PHP je v souboru oddělen od HTML kódu pomocí: <?php PHP kód?> <? PHP kód?> <SCRIPT LANGUAGE="php"> PHP kód </SCRIPT> <% PHP kód %>

První PHP skript Soubor pozdrav.php http://server.cz/pozdrav.php

Základy syntaxe <?php echo "Toto je"; //opomenutí středníku způsobí chybu echo " velmi dlouhý text. ";?> <?php echo "Toto je"; echo " velmi dlouhý text."?> <?php echo "Toto je"?> <?php echo " velmi dlouhý text."?>

Citlivost PHP na velikosti písmen Názvy proměnných jsou citlivé na velikost písma. $promenna $PROMENNA $PrOmEnNa Názvy funkcí nejsou citlivé na velikost písma. Echo ECHO echo ECHo EchO Prikaz() prikaz() PRIKAZ() Konvence: Názvy proměnných velkým písmem, slova oddělovat podtržítkem (např. $MOJE_KONSTANTA). Názvy proměnných prvním malým. První písmeno každého dalšího slova velké (např. $mojepromenna). Názvy funkcí prvním malým. První písmeno každého dalšího slova velké (např. mojefunkce()).

Proměnné V PHP není třeba proměnné deklarovat předem. U názvu proměnných záleží na velikosti písmen. V okamžiku přiřazení do proměnné se automaticky určí její typ (integer, double, string, array, object, boolean). Názvu proměnné předchází znak $. Platný název proměnné začíná písmenem nebo podtržítkem, následovaným libovolným počtem písmen, číslic nebo podtržítkem. <?php?> $4site = "Pokus 1"; $_4site = "Pokus 1"; // neplatné, způsobí chybu // platné

Typy proměnných Booleanovské proměnné (boolean) Celočíselné proměnné (integer) Proměnné s plovoucí desetinnou čárkou (float) Řetězce (string) Pole (array) Objekty (object) Zdroje (source) Speciální datový typ NULL (NULL)

Předdefinované proměnné (1) Některé proměnné vytváří PHP samo (např. systémové, data z formulářů, ). Individuální vstupní a serverové proměnné se implicitně neumisťují do globálního kontextu, namísto toho jsou v následujících superglobálních polích. $GLOBALS $_SERVER $_GET odkaz na každou proměnnou, která je momentálně dostupná v globálním kontextu. Klíči tohoto asociativního pole jsou názvy globálních proměnných proměnné nastavené WWW serverem nebo jinak přímo spjaté s prováděcím prostředím aktuálního skriptu proměnné poskytované skriptu přes HTTP GET

Předdefinované proměnné (2) $_POST $_COOKES $_FILES $_ENV $_REQUEST $_SESSION proměnné poskytované skriptu přes HTTP POST proměnné poskytované skriptu přes HTTP cookies. proměnné poskytované skriptu přes HTTP POST uploady souborů. proměnné poskytované skriptu z prostředí proměnné poskytované skriptu přes libovolný vstupní mechanismus a kterým proto nelze důvěřovat. Lze zakázat pomocí konfigurační direktivy proměnné, které jsou momentálně registrovány v aktuální relaci skriptu

Předdefinované proměnné (3) $PATH_INFO Cesta ke skriptu, který má být zpracován. $REMOTE_ADDR IP adresa, ze které přišel požadavek. $REMOTE_HOST Doménová adresa počítače, ze kterého přišel požadavek $SCRIPT_NAME Jméno právě prováděného skriptu. <?php echo $_SERVER['REMOTE_ADDR']; // vytiskne IP adresu klienta?>

Proměnné a formuláře (1) formular.htm program.php Vyplníme formulář Zobrazí se vyplněné hodnoty

Proměnné a formuláře (2) Soubor formular.htm <HTML> <HEAD></HEAD> <BODY> <FORM ACTION="program.php" METHOD="get"> Jméno: <INPUT TYPE="text" NAME="jmeno"> <BR> Příjmení: <INPUT TYPE="text" NAME="prijmeni"> <BR> <INPUT TYPE="submit" VALUE="Odeslat"> </FORM> </BODY> </HTML>

Proměnné a formuláře (3) Soubor program.php <HTML> <HEAD></HEAD> <BODY> <B>Jméno uživatele je: </B> <?php echo $_GET["jmeno"]?><BR> <B>Příjmení uživatele je: </B> <?php echo $_GET["prijmeni"]?><BR> </BODY> </HTML>

Operátory Aritmetické operátory Operátory přiřazení Bitové operátory Operátory porovnání Operátory řízení chyb Prováděcí operátory Inkrementační/dekrementační operátory Logické operátory Řetězcové operátory

Kombinování PHP a HTML <?php if($a<$b): echo "a je menší než b"; elseif($a>$b): echo "a je větší než b"; else: echo "a je rovno b"; endif;?> <?php if($a<$b):?> a je menší než b <?php elseif($a>$b):?> a je větší než b <?php else:?> a je rovno b <?php endif;?>

Ladění skriptů a ošetření chyb V každém programu je nejméně jedna chyba Chyby v programu lze rozdělit na chyby: syntaktické chyby sémantické chyby logické chyby chyby na straně serveru chyby v programovacím jazyku

Syntaktické chyby Typické pro začínající programátory. Např. zkomolené názvy proměnných, nebo funkcí, opomenuté středníky mezi příkazy, textové řetězce neuzavřené v uvozovkách. PHP je interpretovaný jazyk, není tedy kompilátoru, který by syntaktické chyby odhalil při překladu. PHP odhalí syntaktické chyby až při samotném vykonávání skriptu. Pokud PHP narazí na syntaktickou chybu, vypíše chybové hlášení a ukončí běh skriptu. Pokud PHP ohlásí, že je na nějakém řádku chyba, chyba může být klidně na některém z předchozích řádků. Možnost jak syntaktickou chybu odhalit je umazat kus programu a otestovat, zda bude fungovat správně.

Sémantické chyby Narušení sémantiky programu Např. volání neexistující funkce, volání funkce se špatnými parametry Chyby nejsou odhaleny při parsování kódu, např. až v okamžiku volání funkce Warning: Wrong parameter count for explode() in D:\Pokus\source.php on line 3

Logické chyby Typické pro velmi dlouhé a složité programy. Případy, kdy skript nefunguje, jak je od něho očekáváno. PHP tuto chybu nedokáže samo odhalit. Častou chybou je použití if($a=1) místo správného if($a==1). Způsob, jak tento druh chyb odhalit je postupně pomocí příkazu echo vypisovat aktuální hodnoty proměnných.

Chyby na straně serveru Takové chyby, kdy server nefunguje, jak by měl. Např. nepodaří se otevřít soubor, připojit k databázi, Vždy je dobré eventuální výskyt této chyby předem ošetřit (např. pomocí if, výpisu vlastní chybové hlášky a automatického odeslání mailu správci). Pokud nechceme, aby nebylo nějakou funkcí generováno chybové hlášení, zapíšeme před její volání zavináč @. např. $soubor = @FOpen("soubor.txt", "r"); Pokud jeden příkaz volá více funkcí, vypisování chybových zpráv potlačíme uvedením zavináče @ na začátku příkazu např. @$text=fget($soubor1,512).fget($soubor2,512);

Příkazy k načítání externích skriptů (1) Příkazy require, include, require_once, include_once slouží k načítání externích skriptů. Načítaný skript se vloží v místě použití příkazu. Provedou se všechny jeho příkazy a poté se v provádění pokračuje dalšími příkazy. Příkaz require a require_once v případě neexistence skriptu vyvolávají Fatal Error. Příkaz include a include _once pouze Warning. Příkaz require a include můžeme volat několikrát (např. uvnitř cyklu), příkazy require_once a include_once načtou externí skript pouze jednou.

Bezstavovost HTTP a PHP (1) Protokol HTTP je sám o sobě bezstavový jednotlivé operace klientů jsou obslouženy jako zcela nezávislé autonomní operace. Při rozsáhlejších aplikací musíme tuto bezstavovost překonat např. v případě el. obchodu si aplikace musí pamatovat, co má zákazník ve virtuálním nákupním košíku (musí si pamatovat proměnné).

Bezstavovost HTTP a PHP (2) Jak to obejít? Uživatele rozpoznávat podle IP a hodnoty proměnných ukládat na server. Každému uživateli přiřadit ID a poté, co se autentizuje, hodnoty proměnných ukládat na server. Hodnoty proměnných předávat v URL adrese. Použít skryté pole ve formuláři. Použití cookies. Použití session proměnných.

Předávání proměnných v URL Vzor: http://www.server.cz/program.php?promenna1=hodnota1& promenna2=hodnota2 v hodnotách proměnných jsou mezery nahrazeny znakem + znaky., - a _ jsou nahrazeny znakem procenta % následovanými šestnáctkovými číslicemi vyjadřujícími kód znaku. Soubor prvni.htm <A HREF= "druhy.php?celejmeno=miloslav+hub"> Pokračujte zde</a> Soubor druhy.php <?php echo $_GET["celeJmeno"]; // Miloslav Hub?>

Předávání proměnných pomocí formuláře Soubor prvni.htm <?php $id = 124;?> <form action= "druhy.php" method="post"> <input type="hidden" name="mojeid" value="<?php echo $id?>"> <input type="submit" value="pokračuj"> </form> Soubor druhy.php <?php echo Moje ID je:".$_post["mojeid"];?>

Cookies (1) Malé soubory, které může WWW stránka uložit na lokální disk klienta Cookies jak klient, tak i server zasílají v hlavičce Pokud je stejná stránka volána později, odešlou se jí data uložená v příslušných cookies. Bezpečné: omezená velikost cookies, max. počet pro jeden server,. Použití: např. pro zjištění, pokolikáté klient server navštívil Klient může mít podporu cookies vypnutou

Cookies (2) Uložení cookies: SetCookie("jmeno", "Jan Novák"); SetCookie("jmeno", "Jan Novák", Time()+3600); Protože je cookies součástí hlavičky musí být tento příkaz použit dříve, než je generovaný vlastní kód HTML!!! Čtení cookies: echo $_COOKIES["jmeno"]; Všechny cookies, které na server dorazí, jsou uloženy v superglobálním poli $_COOKIES.

Session proměnné (1) Podporovány až od PHP 4.0 Podpora session proměnných musí být povolena v konfiguračním souboru php.ini Jedná se o mechanismus, který uživatelům přiděluje jednoznačné identifikátory. Vybrané proměnné jako označeny jako session proměnné. Session proměnné se přitom ukládají do sdílené paměti nebo do souborů na serveru. Skript, který bude pracovat s session proměnnými, musí mít na začátku příkaz session_start(); Chceme-li nějakou proměnnou definovat jako session proměnnou, použijeme příkaz session_register("nazev_promenne");

Session proměnné (2) Soubor prvni.php <?php Session_start(); Session_register("sessionPromenna"); $sessionpromenna = 20;?> <A HREF="druhy.php">Pokračujte zde</a> Soubor druhy.php <?php Session_start(); echo $_SESSION["sessionPromenna"]; //20?>

MySQL MySQL je nejpoužívanější databázový server (ve spolupráci s PHP). Velmi rychlý, multi-threadový, více uživatelský, jednoduchý a přitom robustní SQL server. Šířený pod GNU General Public Licence (použití zdarma)nebo možnost zakoupit si komerční licenci (podpora). Naprogramován v C a C++. Funguje pod mnoha platformami (nejpoužívanější Linux). Podporuje transakční i ne-transkační zpracování. Dodržuje (téměř) normu SQL-92. Často využívané webové rozhraní: phpmyadmin (opensource). Existují i rozhraní typu desktop aplikace.

Ukončení běhu skiptu <HTML><HEAD></HEAD><BODY> <?php if($jmeno): echo "Jméno je: $jmeno"; echo "</BODY></HTML>"; Exit(); endif;?> <FORM> Jméno: <INPUT TYP="text" NAME="jmeno"> <INPUT TYPE="submit"> </FORM> </BODY></HTML>

PHP a formuláře (1) <?php $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; if($jmeno && $prijmeni): ZpracujHodnotyZFormulare(); else:?> <FORM ACTION="" METHOD="POST"> Jméno: <INPUT TYPE="text" NAME="jmeno"> Příjmení: <INPUT TYPE="text" NAME="prijmeni"> <INPUT TYPE="submit"> </FORM> <?php endif;?>

PHP a formuláře (2) <INPUT TYPE="text" NAME="klidneJinyNazev" VALUE="<?php echo $promenna1?>"> <TEXTAREA><?php echo $promenna2?></textarea> <INPUT TYPE="radio" NAME="promenna2" <?php if($promenna2) echo "SELECTED"?>> <SELECT NAME="polozky"> <OPTION VALUE="polozka1" <?php if($polozky=="polozka1") echo "SELECTED"?>>položka 1</OPTION> </SELECT> <INPUT TYPE="checkbox" NAME="promenna3" <?php if($promenna3) echo "CHECKED"?>>

PHP a formuláře (3) <SELECT NAME="promenna"> <?php while($pomocna=$asociativnipole["polozka"]):?> <OPTION VALUE="<?php echo $pomocna?>"> <?php echo $pomocna?> </OPTION> <?php endwhile?> </SELECT>

PHP a aplikační protokoly HTTP FTP SMTP SNMP IMAP POP3 NNTP LDAP

E-mail Mail(«komu», «předmět», «zpráva», «hlavičky») <?php $komu = "jaroslav.vopicka@upce.cz"; $predmet = "Pokusny e-mail"; $zprava = "Dobry den,\nphp je fajn...:-)\n\nm.h. "; $hlavicky = "From: miloslav.hub@upce.cz"; $poslani = Mail($komu, $predmet, $zprava, $hlavicky); $poslani? echo "Posláno" : echo "Neposláno";?>

LDAP Připojení k serveru $server = LDAP_Connect("lide.server.cz"); Anonymní připojení k adresáři LDAP_Bind($server); Vyhledání všech jmen, které začínají novák $vysledek = LDAP_Search($server, "", "cn=novák*" ); Zjištění první položky $prvnipolozka = LDAP_First_Entry($server, $vysledek);.. Odpojení serveru LDAP_Close($server);

FTP Připojení k serveru $server = ftp_connect("server.cz"); Přihlášení k serveru $prihlaseni = ftp_login($server, "hub", "123456"); Nahrání souboru na server $upload = ftp_put($server, "cil.txt", "zdroj.txt", FTP_BINARY); Odpojení serveru ftp_quit($server);

POP3 Připojení k serveru $spojeni = IMAP_Open("{mbox.nekde.cz/pop3}INBOX", "hub", "123456"); Zjištění počtu příchozích zpráv $pocet_zprav = IMAP_Num_Msg();.. Odpojení serveru IMAP_Close($spojeni);