WebDeveloper
 g³ówna | forum manual | skrypty |  artyku³y |  projekty | porady |  zasoby |  linki 
dzia³y
  •  manual PHP
  •  skrypty PHP
  •  artyku³y
  •  projekty
  •  porady
  •  zasoby
  •  linki
  •  
    forum
  •  php
  •  apache
  •  mysql
  •  postgresql
  •  faq php
  •  pomocnik php
  •  
    news
  • Porcjowanie wyników zapytania
  • Kartki Internetowe
  • PHP + MySQL + Windows 98
  • Bezpieczne uploadowanie plików
  • Przegl±danie obrazków z bazy PostgreSql.
  • Co to jest WebDeveloper?
  • Instalujemy serwer baz danych !
  • Sesje w PHP4 !
  • Dodaj poradê !!!
  • Zastosowano... PHP !
  • redakcja

    Je¶li masz ciekawe informacje odno¶nie PHP, skrypty, porady, linki itp. lub chcia³by¶ wspó³tworzyæ serwis PHP.zone.pl daj nam znaæ na email !



    dodaj poradê !


    Powered by:
    PHP
    Apache
    MySql
    Linux

    users online: 8

    Artyku³y

    Kurs PHP (4)
    autor: Grzegorz Plebañski

    Krótki kurs jêzyak PHP.

    HTTP Cookies

    Czasem przydatna jest mo¿liwo¶æ zapisania jakiej¶ informacji na komputerze klienta. Do tego w³a¶nie stworzony zosta³ mechanizm Cookies - skrypt mo¿e zapisaæ na komputerze u¿ytkownika krótk± informacje, a nastêpnie po ponownym odwiedzeniu strony pobraæ j±. W ten sposób skrypt mo¿e zidentyfikowaæ u¿ytkownika, który ju¿ wchodzi³ na stronê. W tym rozdziale poka¿ê przyk³ad zastosowania cookie do stworzenia licznika odwiedzin zliczaj±cego ka¿d± osobê tylko raz, niezale¿nie od tego, ile razy wy¶wietli stronê.

    Do zapisywania cookie na komputerze klienta s³u¿y funkcja setcookie:
    setcookie(name, value, expire, path, domain, secure)

    Wszystkie parametry oprócz name s± opcjonalne. W tym kursie omówiê tylko parametry name, value oraz expire:
    name - nazwa. Je¿eli jest jedynym parametrem, cookie o podanej nzwie zostanie usuniête z komputera u¿ytkownika.
    value - warto¶æ która otrzyma cookie.
    expire - data do której cookie bêdzie przechowywane na komputerze u¿ytkownika, wyra¿ona w sekundach od 1 stycznia 1970 roku.
    Kiedy u¿ytkownik z zapisanym cookie otworzy stronê zawiweraj±c± skrypt, zostanie utworzona zmienna o nazwie takiej jak podana w parametrze name, zawieraj±ca warto¶æ cookie.
    Przyk³ad, tym razem zacytujê ca³± tre¶æ strony:
    <?
    $iloscWejsc++;
    setcookie("iloscWejsc", $iloscWejsc);
    ?>
    <HTML>
    <BODY>
    Odwiedzasz t± stronê ju¿ po raz
    <?
    echo($iloscWejsc);
    ?>
    </BODY>
    </HTML>

    Ten skrypt bêdzie zlicza³ kolejne wej¶cia danego u¿ytkownika na stronê. Poniewa¿ informacja jest przechowywana na komputerze u¿ytkownika, ka¿dy odwiedzaj±cy stronê bêdzie mia³ oddzielny licznik. Bardzo wa¿ne jest umieszczenie komendy setcookie przed tagiem <HTML>, poniewa¿ cookies s± wysy³ane do przegl±darki u¿ytkownika wraz z nag³ówkiem strony. Po tagu <HTML> nag³ówek jest ju¿ wys³any, wiêc jest za pó¼no na wys³anie cookie.


    Licznik tekstowy odporny na od¶wie¿anie

    Teraz poka¿ê, jak zmodyfikowaæ licznik z poprzedniego rozdzia³u, aby nie nalicza³ kolejnych wej¶æ tego samego u¿ytkownika:
    <?
    setcookie("visited", "1", time()+3600*3); /* wysy³a cookie na komputer u¿ytkownika */
    ?>

    <HTML>
    <BODY>
    <?
    if(file_exists("counter.n")) /* sprawdza, czy plik istnieje */
    {
    $file=fopen("counter.n", "r"); /* otwiera plik */
    flock($file, 1); /* blokuje plik */

    $ile=fgets($file, 100); /* odczytuje warto¶æ */

    flock($file, 3); /* odblokowuje plik */
    fclose($file); /* zamyka plik */

    if($visited!="1") /* sprawdza, czy
    u¿ytkownik ju¿ odwiedza³ stronê */
    {
    $ile++; /* zwiêksza warto¶æ
    o 1 tylko po pierwszym wej¶ciu */
    }
    }
    else
    {
    $ile=1; /* je¶li plik nie istnieje, wy¶wietli siê 1 */
    }

    $file=fopen("counter.n", "w"); /* otwiera plik do zapisu */
    flock($file, 2); /* blokuje do zapisu */

    fwrite($file, $ile); /* zapisuje warto¶æ */

    flock($file, 3); /* odblokowuje plik */
    fclose($file); /* zamyka plik */

    echo($ile); /* wy¶wietla warto¶æ */
    ?>
    </BODY>
    </HTML>

    Skrypt wysy³a do u¿ytkownika cookie. Nastêpnie zwiêksza licznik tylko je¿eli warto¶æ cookie nie jest równa "1".
    Funkcja time() u¿yta w 3 parametrze funkcji setcookie zwraca aktualny czas, liczony w sekundach od 1 stycznie 1970 roku.


    Obrazki w formacie GIF

    PHP zawiera funkcje s³u¿±ce do obs³ugi obrazków w formacie GIF. Do za³adowania obrazka u¿ywa siê funkcji ImageCreateFromGif("nazwa.pliku.gif"). Aby zapisaæ obrazek nale¿y u¿yæ funkcji ImageGif(obrazek, "nazwa.pliku.gif"). Parametr okre¶laj±cy nazwê pliku mo¿e zostaæ pominiêty - wtedy zawarto¶æ pliku zostanie bezpo¶rednio wys³ana do przegl±darki. Dzieki temu mozna utworzyc skrypt 'udaj±cy' obrazek:
    <?
    header("Content-type: image/gif");
    $image=ImageCreateFromGif("obrazek.gif");
    ImageGif($image);
    ?>

    U¿yta tutaj funkcja header s³u¿y do wys³ania do przegl±darki pola nag³ówka. W tym wypadku okre¶la, ¿e zostanie wys³any obrazek w formacie GIF. W pliku nie powinny znajdowaæ siê ¿adne komendy HTMLa.
    Kolejn± funkcj± zwi±zan± z obs³ug± obrazków jest ImageCreate(width, height) - tworzy ona obrazek o podanej szeroko¶ci i wysoko¶ci.

    Do kopiowania fragmentów obrazków u¿ywa siê funkcji magecopyresized(dst_im, src_im, dstX, dstY, srcX, srcY, dstW, dstH, srcW, srcH). Jej parametry oznaczaj±:
    dst_im - obrazek docelowy
    src_im - obrazek ¼ród³owy
    dstX, dstY - wspó³rzêdne lewego górnego rogu obszarudo którego zostanie skopiowany obrazek. Punkt (0, 0) to lewy górny róg obrazka (o¶ pionowa jest numerowana z góry do do³u).
    dstW, dstH - szeroko¶æ i wysoko¶æ obszaru docelowego
    srcX, srcY, srcW, srcH - tak samo jak dstX, dstY, dstW i dstH dla obszaru ¼ród³owego.


    Licznik graficzny

    Dziêki tym funkcjom mo¿liwe staje siê stworzenie licznika graficznego. Poni¿szy fragment kodu wymaga pliku cyfry.gif
    <?
    if(file_exists("c"))
    {
    $file=fopen("c", "r");
    $ile=fgets($file, 1000);
    $ile++;
    fclose($file);
    }
    else
    {
    $ile=1;
    }
    /* usun±³em blokowanie plikówi sprawdzanie prze³adowañ,
    ¿eby upro¶ciæ kod */

    $file=fopen("c", "w");
    fwrite($file, $ile);
    fclose($file);

    header("Content-type: image/gif"); /* informuje przegl±darkê,
    ¿e zostanie wys³any obrazek w formacie GIF */

    $image=ImageCreate(20*strlen($ile), 20); /* tworzy pusty obrazek */
    $cyfry=ImageCreateFromGif("cyfry.gif"); /* ³aduje obrazek z cyframi */

    for($i=0;$i

    W skrypcie u¿y³em jeszcze dwóch nowych funkcji:
    strlen($napis) - zwraca d³ugo¶æ napisu
    substr($napis, $poczatek, $n) - wycina $n znaków z napisu, zaczynaj±c od pozycji $poczatek
    Skrypt najpierw zlicza odwiedziny tak jak liczniki tekstowe z poprzednich rozdzia³ów. Nastêpnie tworzy obrazek, na którym bêd± rysowane kolejne cyfry. Pó¼niej ze zmiennej zawieraj±cej ilo¶æ odwiedzin wycina poszczególne cyfry, i kopiuje do nowego obrazka odpowiednie fragmenty obrazka cyfry.gif. Tak otrzymany obrazek wysy³a do przegl±darki. Odwo³anie do skryptu mo¿na wstawiæ na stronie komend± <IMG SRC=licznik.php3>.


    (C)opyright 1999-2000 by Grzegorz Plebañski
    ygreg@and.pl
    http://ygreg.and.pl






    komentarze | artyku³y






    kontakt

    autor:

    Hubert Mierzwiak

    wspó³praca:

    Piotr Karolak

    Chcesz prowadziæ swój dzia³ tematyczny typu XML, SQL, admin, JavaScript, itp?
    Napisz do nas !
     
    skrypty
  • designer.zip
  • vipAuth.tgz
  • phpCenzura.tgz
  • vip_php.tgz
  • pomocnik_light
  • ankieta
    Co s±dzisz o stworzeniu FAQ PHP?
    super!
    po co?

    poprzednie

    newsletter

    wpisz swój email i wci¶nij Enter

    linuxnews.pl
  • KRRiTV stra¿nikiem!?
  • Dzisiejsze zebranie...
  • Felieton w warunkach ekstremalnych
  • Nexidion Designer
  • Solaris OpenSource
  • KDE 2.0.1
  • Jest ju¿ nowy Debian...
  • Tydzieñ min±³...




  • Manual | Skrypty | Artyku³y | Projekty
    Porady | Zasoby | Linki
    G³ówna | Forum

    Copyright 2000 Hubert Mierzwiak