Funkce a procedury

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Funkce a procedury. Funkce a procedury mají za úkol vykonávat určitou činnost, která se opakuje na několika místech skriptu. Obě se definují klíčovým slovem function . - PowerPoint PPT Presentation

Text of Funkce a procedury

  • Funkce a proceduryFunkce a procedury maj za kol vykonvat uritou innost, kter se opakuje na nkolika mstech skriptu. Ob se definuj klovm slovem function. Funkce vrac hodnotu, jsou tedy vrazem a lze jejich vsledek piadit nap. promnn. Kd funkce i procedury je uvozen do sloench zvorek.Nzev funkce i procedury nen citliv na velk a mal psmena.

  • Funkce a procedury
  • Funkce a proceduryfunction soucet () // Toto je funkce vracejc hodnotu{ $x = 1; $y = 2; return $x + $y;}------------------------------------------------------------------------------------------------function vypis() // Toto je procedura { echo "Hello world"; }

  • ArgumentyUmouj pedat funkci nebo procedue vstupn hodnoty.

    function dvojnasobek ($cislo) { return $cislo * 2;}

    echo dvojnasobek(6); // voln funkce vype 12

    Funkce pevezme hodnotu odpovdajc parametru, kterou pak pouije pro vpoet nvratov hodnoty.

  • Argumenty pedvan hodnotouPromnn parametru (nap. $cislo) uvnit funkce pracuje s kopi hodnoty, kter je j pedna (nap. $a). Zmna parametru ($cislo), nezmn pedanou hodnotu promnn ($a).

    function dvakrat ($cislo) // argument konstanta nebo promnn{$cislo = $cislo * 2; return $cislo;}$a = 6;echo "promnn \$a = ".$a; 6echo "vsledek provdn funkce dvakrat() = ".dvakrat($a);12echo promnn \$a = ".$a; 6

  • Argumenty pedvan hodnotouArgumenty pedvanmi hodnotou mohou bt: literty (sla, textov znaky, kombinace obojho) konstanty promnn vsledky provdn jin funkce kombinace ve zmnnchfunction jmeno_funkce (1)function jmeno_funkce (MAX)function jmeno_funkce ($x, $y)function jmeno_funkce (jina_funkce($a), souet)

  • Argumenty pedvan odkazemPromnn parametru (nap. $cislo) uvnit funkce pracuje pmo s promnnou, kter je j pedna (nap. $a). Zmna parametru ($cislo), zmn pedanou hodnotu promnn ($a).

    function dvakrat (&$cislo) // argument MUS bt promnn!!!{ $cislo = $cislo * 2; return $cislo;}$a = 6;echo "promnn \$a = ".$a; 6echo "vsledek provdn funkce dvakrat() = ".dvakrat($a);12echo promnn \$a = ".$a;12

  • Platnost promnnPromnn deklarovan uvnit funkce, nejsou platn vn funkce!!!!function zmena_A(){ $a = 10;}$a = 20;zmena_A();echo $a; // vype 20Promnn $a nejsou toton!!! Promnn $a uvnit funkce neovlivn hodnotu promnn pouit v hlavnm skriptu.

  • Pkazy require a includeLi se ve zpracovn chyb, ale hlavn v tom, e require se napklad v pkazech cyklu provede jen jednou, zatmco include se me provdt opakovan.Umouj natat do skriptu z externho souboru: sti jinch skript sti strnek funkce definovan uivatelemPrakticky: Vkldn uivatelskch funkc do vce strnek Vytvet a uzavrat spojen s databz na vce strnkch Vytvoit standardn hlaviku strnek atd

  • Pkaz require// ----- vypis.php --------------------------

    // ----- skript.php -------------------------

    Chybjc soubor ve voln require vyvol fatln chybu.

  • Pkaz include// ----- vypis.php --------------------------

    // ----- skript.php -------------------------

    Chybjc soubor ve voln include vyvol varovn, skript pokrauje dl.

  • Globln promnnGlobln promnn jejich hodnota je platn (viditeln) ve vech stech aktulnho skriptu (strnky), ve kterm je definovan.Superglobln promnn jejich hodnotu lze penet mezi strnkami webovho sdla.1. Globln promnn v rmci strnky $GLOBALS2. Zpracovn dat z formule metody odesln dat GET a POST3. Sdlen obsahu promnn mezi strnkami SESSION a COOKIE4. Promnn, kter vytv prosted PHP a webov server

  • Globln promnn $GLOBALSJedn se o globln promnnou, kter je viditeln ve vech stech skriptu (aktuln strnky), ve kterm je definovan.-------------------------------------------------------------------------------------------------$GLOBALS["cislo"] = 2;function zmen(){ $GLOBALS["cislo"] = $GLOBALS["cislo"] + 10;}zmen();echo $GLOBALS["cislo"]; // vype slo 12

  • Metoda GETData jsou pedna obsluhujcmu skriptu pomoc URL adresy. Lze vyut jak u zpracovn dat z formule, tak nap. pi navigaci v rmci strnky.-------------------------------------------------------------------------------------------------Zadejte Vae jmno:

    Jmno:

  • Metoda GETObsah skriptu vypis.php-------------------------------------------------------------------------------------------------

    --------------------------------------------------------------------------------http://www.vasestranky.cz/vypis.php?jmeno=Antonin&prijmeni=Skopec&tlacitko=Vypsat

  • Metoda GEThttp://www.vasestranky.cz/obsluha.php?prom1=hodn1&prom2=hodn2-------------------------------------------------------------------------------------------------? oddluje URL strnky od penench datpromnn = hodnota nzev promnn a jej hodnota& Oddlen jednotlivch promnnch+ nahrazuje mezeru-------------------------------------------------------------------------------------------------Vechny ostatn speciln znaky a psmena s hkem nebo rkou jsou pekdovny do hexadecimln podoby.

  • Metoda GETChcete-li penet v rmci URL adresy login a heslo, je dobr tyto hodnoty zakdovat pomoc funkc definovanch v PHP:Pro zakdovn dat v URL se pouv funkcebase64_encode zakduje data pomoc MIME base64base64_decode dekduje data kdovan pomoc MIME base64Pro penen hesel a jejich ukldn do databze se doporuuje pouvat nap. funkci sha1, nemajc zptn ekvivalent !!!Popis tchto funkc viz. manul k PHP

  • Metoda POSTData se neposlaj v URL strnky, ale jsou soust tla poadavku webovmu serveru. Slou k odesln vtho objemu dat, obrzk, atd.-------------------------------------------------------------------------------------------------Zadejte Vae jmno:

    Jmno:

  • Metoda POSTObsah skriptu vypis.php-------------------------------------------------------------------------------------------------

    --------------------------------------------------------------------------------

  • Metoda POSTOdeslaj-li se z formule metodou POST krom textu tak soubory (nap. obrzky), je poteba v definici formule nastavit atribut:enctype = multipart/form-data
  • kolVytvote jednoducho kalkulakuvyuijte funkce eval(): eval ("\$vysledek =5 + 5;")

  • een

    Zadej prvn slo, operaci a druh slo

    + - * /

    $a= $_POST["A"];$b= $_POST["B"];$operace= $_POST["operace"];

    eval("\$vysledek = $a $operace $b ;");echo "$a $operace $b = ";echo $vysledek;

  • een 2$a= $_POST["A"];$b= $_POST["B"];$operace= $_POST["operace"];

    if (empty($a) &&empty($b)&&empty($operace) ) {echo"Nic nebylo zadno";} else { eval("\$vysledek = $a $operace $b ;"); echo "$a $operace $b = "; echo $vysledek;}

    Zadej prvn slo, oparaci a druh slo

    + - * /

    Lpe s kontrolou zadn

  • kolVytvote pihlaovac obrazovku, po pihlen: Pokud se pihlste jako Alena (heslo Alena), spust se pklad kalkulakaPokud se pihlste jako Pepa (heslo Pepa), spust se pklad formule

    $name = $_POST ['name'];// $HTTP_POST_VARS$password = $_POST [' password'];

    if($name=="pepa"&&$password="pepa"){ header("Location: knihyv1.php");}Header: pesmrovn strnky Funkci header pout dve, ne vypeme jakkoli vstup!!

  • eenMus bt ve dvou souborech!

    Lep een pout fci md5() nebo sha1()

  • COOKIESJedn se o jednoduch textov etzce ve formtu jmno=hodnota uloen na potai klienta.Cookies umouj sdlet hodnoty mezi jednotlivmi strnkami webovho sdla. Pozor!!! Pokud m internetov prohle vypnutou podporu cookies, nelze s nimi pracovat, nebo je prohle v ppad poadavku neodesl webovmu serveru. Myln je nzor, e cookies mohou pokodit pota nebo odeslat citliv data z potae klienta!!!Cookie promnn je pouiteln do doby, dokud nevypr jej platnost nebo dokud nen smazna z disku potae klienta.

  • Ukldn COOKIESV PHP je pro ukldn cookies funkce: setcookie(nazev, hodnota, expire, path, secure);setcookie(nazev_cookie, hodnota);jeliko cookies se poslaj v hlavice odpovdi webovmu serveru, je poteba funkci setcookie() volat ped jakmkoliv vstupem z vaeho skriptu vetn znaek a !setcookie(nazev_cookie, hodnota, time()+3600);Tet parametr je nepovinn a definuje dobu platnosti cookie, zde je nastavena doba platnost na 1 hodinu time()+3600

  • ten COOKIESPro ten cookie se v PHP pouv superglobln promnn:$_COOKIE [nazev_cookie]------------------------------------------------------------------------------------------------- Pozn.: Cookies bez udan doby platnosti jsou zapomenuty po ukonen prce s prohleem a vtina prohle je vbec na disk neukld.

  • vpis polePro vpis obsahu pole print_r($_COOKIE)------------------------------------------------------------------------------------------------- Array ( [a] => jablko [b] => ananas [c] => Array ( [0] => x [1] => y [2] => z ) )

  • Mazn COOKIESPi mazn cookie se mus zajistit, aby doba vypren platnosti cookie byla v minulosti, m se v prohlei zapne mechanismus odstrann cookie.setcookie (nazev_cookie", "", time() - 3600); Pokud je ptomn pouze argument nazev, u klienta se smae cookie tohoto jmna. -------------------------------------------------------------------------------------------------Kterkoliv argument mete tak nahradit przdnm etzcem (""), m tento argument peskote. Argumenty expire a secure jsou celoseln a nedaj se peskoit przdnm etzcem. Msto toho pouijte nulu (0).

  • COOKIESNevhody pouit cookies:Pouit cookies lze zakzat v prohleiUivatel me obsah cookie run zmnit nebo smazatInformace uloen v cookies jsou snadno iteln (textov etzec)

  • SESSION promnnUmouj penet hodnoty mezi jednotlivmi strnkami webovho sdla.Nelze je uivatelem zakzat v prohlei spolehliv sdlen hodnot !Pokud chceme na strnce vyuvat session promnn, zavolme funkci session_start(). Pot bude prohlei pidlen uniktn identifiktor, tzv. Session ID. Pomoc tohoto Session ID se pen session promnn mezi skripty.Vytvoen session pro