Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK 1. Cookie licznik wyświetleń Ćwiczenie 6 PHP Przekazywanie danych W pliku kuk1.php zapisz następujący skrypt: if(isset($_cookie['licznik'])) $licznik=$_cookie['licznik']; else $licznik=0 $licznik++; SetCookie("licznik", $licznik); <html> <head> <meta content="text/html; charset=utf-8" http-equiv="content-type"> <meta content="pl" http-equiv="content-language"> <link href="style.css" rel="stylesheet" type="text/css"> <title>ks - proby</title> </head> <body> <div id="glowna"> <h1>strona z ustawionym cookie</h1> Strona zawiera następujący kod:<br><br><b> if(isset($_cookie['licznik'])) $licznik=$_cookie['licznik']; else $licznik=0<br> $licznik++;<br> SetCookie("licznik", $licznik);<br><br></b> Kod ten powoduje ustawienie cookie licznik o wartości zwiększającej się przy kaŝdym wyświetleniu strony<br><br> Wartość zmiennej=<b> echo $_COOKIE['licznik']; </b><br><br> Spróbuj kilkakrotnie wyświetlić stronę. Spróbuj takŝe zamknąć przeglądarkę i ponownie wyświetlić stronę. <br><br> </div> </body> Przetestuj działanie strony przy kilkakrotnym wyświetleniu. Sprawdź jak działa strona przy wyświetlaniu w innej przeglądarce. 2. Cookie semafor dostępu Opracuj i zapisz w pliku index.php stronę zawierająca następujące menu odsyłaczy: Menu główne Logowanie Wiadomości tajne Powrót do poprzedniej strony Odsyłacze menu powinny zawierać odwołania do stron: logowanie.php i tajne.php. W odsyłaczu do poprzedniej strony wykorzystaj zmienną $HTTP_REFERER. 1
Dla odsyłacza Wiadomości tajne opracuj skrypt tajne.php o zapisie sekcji <BODY>: <body> <div id="glowna"> <h1>wiadomości tajne</h1> if (empty($_cookie['log'])) echo "<b>niestety strona jest niedostępna dla uŝytkowników"."niezalogowanych! </b><br><br>"; else echo "Wszystko OK!<br><br>DuŜa tajemnica! Dostęp do tej strony ma"."tylko uŝytkownik <b>fasola</b>. Hasło= <b>groszek</b><br><br>"; <HR> <br> echo '<a href="'.$http_referer.'">powrót do poprzedniej strony</a>'; <br><br><br> </div> </body> Dla odsyłacza Logowanie opracuj skrypt logowanie.php wyświetlający formularz z dwoma polami edycyjnymi o nazwach login i haslo przeznaczonymi do wprowadzania nazwy i hasła uŝytkownika uprawnionego do danych tajnych. Znacznik formularza: <FORM ACTION="logowanie.php" METHOD="GET"> Odsyłacz powrotu jak w skrypcie poprzednim. Przetestuj działanie strony z menu, strony z formularzem oraz strony wyświetlającej dane tajne. Zmodyfikuj działanie strony logowanie.php. Dodaj na początku strony zapis: $komunikat=""; SetCookie("log"); if ( isset($_get['login']) ) { $komunikat="zły login lub hasło! Spróbuj jeszcze raz"; if ($_GET['login']=="") $komunikat="błędne logowanie! Nie podano Nazwy uŝytkownika"; elseif ($_GET['haslo']=="") $komunikat="błędne logowanie! Nie podano Hasła uŝytkownika"; elseif ($_GET['login']=="fasola" && $_GET['haslo']=="groszek") { SetCookie("log", "jest"); header("location: index.php"); exit(); //die('<meta http-equiv="refresh" content="0; URL=index.php">'); 2
Bezpośrednio przez formularzem dodaj zapis: if ($komunikat!="") echo "<b>$komunikat</b>"; Ponownie przetestuj działanie poszczególnych stron 3. Sesje - ankieta personalna Opracuj i zapisz w pliku index.php stronę zawierająca następujące menu odsyłaczy: Ankieta personalna Dane identyfikacyjne Wykształcenie Zatrudnienie Wyświetlenie danych Powrót do poprzedniej strony Odsyłacze menu powinny zawierać odwołania do stron: form1.php, form2.php, form3.php i dane.php. W odsyłaczu do poprzedniej strony wykorzystaj zmienną $HTTP_REFERER. Dla odsyłacza Dane identyfikacyjne opracuj skrypt form1.php wyświetlający formularz: Znacznik formularza: <FORM ACTION="index.php" METHOD="GET"> Odsyłacz powrotu jak w skrypcie poprzednim. Przetestuj działanie strony z menu i z formularzem. 3
Opracuj i zapisz w pliku dane.php skrypt dla odsyłacza: Wyświetlenie danych. Na początku skryptu (przed znacznikiem <HTML>) umieść: W treści pliku umieść zapis wyświetlający zawartość tablicy $_SESSION: foreach($_session as $indeks=>$element) echo "$indeks : $element<br>"; Skrypt index.php uzupełnij początkowym zapisem: foreach($_get as $indeks=>$element) $_SESSION[ $indeks ] = $element; Polecenia powyŝsze powodują przepisanie elementów tablicy $_GET do tablicy $_SESSION. Sprawdź poprawność wyświetlania danych wprowadzonych w formularzu. Opracuj skrypty z formularzami do wprowadzanie danych o wykształceniu i pracy zawodowej na wzór skryptu form1.php. Przetestuj działanie strony - sprawdź czy wyświetlane są wszystkie dane wprowadzane na poszczególnych formularzach. Opracuj samodzielnie skrypt zliczający liczbę wyświetleń strony (jak skrypt kuk1.php z punktu pierwszego). Skorzystaj ze zmiennych sesji nie korzystaj z cookie. 4. Zapis do pliku liczba odwiedzin Opracuj skrypt index.php wyświetlający jedynie odsyłacz do strony liczba.php. Początek skryptu powinien zawierać zapis: if (!isset($_session['licznik'])) { $plik=fopen("plik.txt", "r"); flock($plik, LOCK_EX); $licznik=fgets($plik); fclose($plik); $licznik++; $plik=fopen("plik.txt", "w"); flock($plik, LOCK_EX); fwrite($plik, $licznik); fflush($plik); flock($plik, LOCK_UN); fclose($plik); $_SESSION['licznik']=$licznik; 4
Opracuj skrypt liczba.php zawierający odsyłacz do poprzednio wyświetlanej strony. Skrypt powinien zawierać początkowy zapis: oraz instrukcje wyświetlające komunikat o ilości odwiedzin w serwisie: echo "Tę witrynę odwiedziło<b>".$_session['licznik']."</b>uŝytkowników"; Utwórz ponadto plik tekstowy o nazwie plik.txt zawierający liczbę 0. Przetestuj działanie strony. Sprawdź, Ŝe kaŝdorazowe uruchomienie przeglądarki i wejście do serwisu (wyświetlenie strony index.php) powoduje zwiększenie wartości zapisanej w pliku plik.txt. Przełączanie pomiędzy dwiema stronami witryny nie powoduje zwiększenia licznika odwiedzin. Zmodyfikuj skrypty w taki sposób by oprócz liczby odwiedzin wyświetlać takŝe datę poprzednich odwiedzin na witrynie. 5