Internetowe bazy danych

Podobne dokumenty
Internetowe bazy danych

Aplikacje internetowe - laboratorium

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Aplikacje WWW - laboratorium

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Baza danych do przechowywania użytkowników

Aplikacje internetowe

Systemy internetowe Wykład 3 PHP

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Wprowadzenie do Internetu Zajęcia 5

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Laboratorium 1 Wprowadzenie do PHP

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Aplikacje WWW - laboratorium

Rejestracja i Logowania - PHP/MySQL

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Szablon główny (plik guestbook.php) będzie miał postać:

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Dokumentacja smsapi wersja 1.4

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Zajęcia 4 - Wprowadzenie do Javascript

Zajęcia 11 wykorzystanie MySQL w PHP

Projekt strony internetowej firmy organizującej przyjęcia

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Udostępnianie klientom zasobów serwera

Michał Bielecki, KNI 'BIOS'

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Bazy Danych i Usługi Sieciowe

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Aplikacje WWW - laboratorium

Wykład 5: PHP: praca z bazą danych MySQL

INSTALACJA I KONFIGURACJA SERWERA PHP.

Współpraca PHP z MySql

Udostępnianie klientom zasobów serwera

Publikowanie strony WWW

Współpraca z platformą Emp@tia. dokumentacja techniczna

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Zajęcia 10 obsługa formularzy w PHP

Przekazywanie danych. Dane zewnętrzne mogą pochodzić z róŝnych źródeł:

XML extensible Markup Language. część 5

14. POZOSTAŁE CIEKAWE FUNKCJE

Obiektowe bazy danych

Instrukcja pozyskania identyfikatora - UID

Współpraca PHP z MySql cz.2

Należy ściągnąć oprogramowanie Apache na platformę

Zaawansowane aplikacje internetowe

SSK - Techniki Internetowe

Formularze. 1. Formularz HTML

Internetowe bazy danych

Autor: Joanna Karwowska

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Bezpieczeństwo systemów komputerowych

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Wykład 03 JavaScript. Michał Drabik

SIECI KOMPUTEROWE I BAZY DANYCH

Aplikacje WWW - laboratorium

Sprawozdanie nr 4. Ewa Wojtanowska

Projektowani Systemów Inf.

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

Podstawy technologii WWW

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki za pomocą otrzymanych danych.

Bazy danych i strony WWW

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Zmienne i stałe w PHP

Zdarzenia Zdarzenia onload i onunload

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Przykładowa integracja systemu Transferuj.pl

Internetowy serwis Era mail Aplikacja sieci Web

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 2. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Bazy danych w PHP dla początkujących

Formularze w PHP dla początkujących

Aplikacje WWW - laboratorium

INSTRUKCJA instalacji aplikacji elisty.pl

Integracja frameworku Wicket z serwisem Platnosci.pl.

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Opis instalacji oparto na przykładzie serwera SUPERHOST z obsługą PHP i MySQL.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Kurs rozszerzony języka Python

Personal Home Page PHP: Hypertext Preprocessor

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

MVC w praktyce tworzymy system artykułów. cz. 2

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

SMS Kod Automatyczny

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT CEIDG MONITOR

Podstawy JavaScript ćwiczenia

Instrukcja logowania do systemu Rejestru Unii dla nowych użytkowników

Transkrypt:

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 7 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl

Sesje i stan aplikacji w kategorii czasu okres jaki użytkownik spędza w witrynie rodzaj wielkiego obiektu zawierający zmienne i wartości sesja ma łańcuch identyfikujący ID łańcuch identyfikujący przesyłany do użytkownika w pakiecie cookie z nazwą PHPSESSID jak sesja inicjowana po stronie serwera powstaje odpowiadający sesji tymczasowy plik o tej samej nazwie co łańcuch identyfikujący tymczasowy plik przechowuje zarejestrowane zmienne sesji i ich wartości przeglądarka wysyła ID do serwera razem z każdym żądaniem przesłania strony serwer wykorzystuje ID do odczytania i odtworzenia wszystkich potrzebnych danych aplikacji po zakończeniu aplikacji dane są usuwane z serwera

Rozpoczynanie sesji i użycie zmiennych sesji

Zawartość pliku tymczasowego count s:7: 76 ; valid s:7: yes count i valid to nazwy zarejestrowanych zmiennych mechanizm wydobycia zmiennej sesji parser PHP pobiera wartość $PHPSESSID z cookie znajduje odpowiedni plik tymczasowy sesji wewnątrz pliku parser wyszukuje zmienną i jej wartość zmienna o określonej nazwie i wartości jest dostępna

Rozpoczęcie pracy z sesjami w PHP rozpoczęcie sesji za pomocą session_start() zarejestrowanie nazw zmiennych sesji za pomocą session_register() użycie zmiennych sesji można zmienić sposób przesyłania identyfikatora sesji można zmienić miejsce przechowywania zmiennych sesji na serwerze można zmieniać częstotliwość usuwania przerwanych sesji

Uruchamianie sesji i inicjowanie zmiennych session_start(); session_register( "auser", "aaccount" ); $auser = "Cidnie"; $aaccount = "1016"; <html> <head> <title>podstawy sesji: Strona 1</title> </head> <body> print( "Użytkownik: $auser<br>" ); print( "Konto: $aaccount<br>" ); <a href="listing2.phtml">przejście do strony 2</a> </body> </html>

Użycie zmiennych sesji (1) session_start(); <html> <head> <title>podstawy sesji: Strona 2</title> </head> <body> print( "Użytkownik: $auser<br>" ); print( "Konto: $aaccount<br>" ); </body> </html> uruchomienie sesji poprzez wywołanie funkcji session_start() PHP używa cookie do przechowywania identyfikatora sesji funkcje muszą być wywoływane przed wysłaniem do przeglądarki jakichkolwiek informacji

Użycie zmiennych sesji (2) po rozpoczęciu sesji, zostają zarejestrowane dwie zmienne, auser oraz aaccount po kliknięciu łącza prowadzącego do strony 2, przeglądarka samoczynnie wyśle identyfikator sesji do serwera sesji w trakcie wywołania funkcji session_start(), PHP korzysta z identyfikatora sesji do odczytania wszystkich zmiennych sesji

Przesyłanie identyfikatora sesji bez użycia cookie (1) ręczne - w postaci zmiennej GET lub POST session_start(); session_register( "auser", "aaccount" ); $auser = "Cidnie"; $aaccount = "1016"; <html> <head> <title>ręczne przesyłanie identyfikatora sesji Strona 1</title> </head> <body> print( "Użytkownik: $auser<br>" ); print( "Konto: $aaccount<br>" ); <a href="listing2.phtml?<?=sid">przejście do strony 2</a> </html>

Przesyłanie identyfikatora sesji bez użycia cookie (2) do adresu URL została doklejona stała PHP SID stała ta jest zdefiniowana jako: SessionName=SessionID poniższy kod jest semantycznie identyczny z linią z wydruku: <a href="listing2.phtml? echo session_name()."=".session_id()"> Przejście do strony 2</a> SID to stała a nie zmienna, druk $SID zamiast SID, nie daje takiego samego wyniku skrót <?=SID jest równoważny z echo SID; każde łącze i każdy formularz w aplikacji musi zawierać identyfikator sesji brak identyfikatora w jednym łączu - SID utracony, a aplikacja będzie źle działać

Przesyłanie identyfikatora sesji bez użycia cookie (3) opcja PHP automatycznego przekształcania łączy - przesyłanie identyfikatora sesji przy użyciu metod GET i POST uaktywnienie kompilacja PHP z opcją --enable-trans-sid session_start(); session_register( "auser", "aaccount" ); $auser = "Cidnie"; $aaccount = "1016"; <html> <head> <title>automatyczne przesyłanie identyfikatora sesji: Page 1</title> </head> <body> print( "Użytkownik: $auser<br>" ); print( "Konto: $aaccount<br>" ); <a href="listing2.phtml">przejście do strony 2</a> </html>

Przesyłanie identyfikatora sesji bez użycia cookie (4) nie ma odwołania do stałej SID w łączu Identyczny jak 1, ale gdy się kliknie łącze, URL będzie zawierał ciąg PHPSESSID=xxx, tak samo jak w przypadku skryptu 3 PHP szuka na stronie względnych adresów URL i dodaje do nich potrzebną wartość identyfikatora sesji następny skrypt zawiera kilka względnych łączy i kilka bezwzględnych zobaczymy w jaki sposób PHP przetworzył łącza

session_start(); session_register( "auser", "aaccount" ); $auser = "Cidnie"; $aaccount = "1016"; <html> <head> <title>uzupełnianie adresów URL</title> </head> <body> print( "Użytkownik: $auser<br>" ); print( "Konto: $aaccount<br>" ); <a href="listing2.phtml">łącze 1</a> <a href="listing2.phtml?myvar=1234">łącze 2</a> <a href="http://www.php.net/">łącze 3</a> <a href="http://localhost/listing2.phtml">łącze 4</a> <form action="listing2.phtml"> <input type="submit" name="submit" value="przycisk przesłania danych formularza"> </form> </html>>

do przeglądarki został wysłany następujący kod HTML <html><head> <title>uzupełnianie adresów URL</title> </head><body> Użytkownik: Cidnie<br>Konto: 1016<br> <a href="listing2.phtml?phpsessid=9771f86dc94e367cf1c62e0339d02c4b > Łącze 1</a> <a href="listing2.phtml?myvar=1234& PHPSESSID=9771f86dc94e367cf1c62e0339d02c4b"> Łącze 2</a> <a href="http://www.php.net/">łącze 3</a> <a href="http://localhost/listing2.phtml">łącze 4</a> <form action="listing2.phtml"><input TYPE="HIDDEN" NAME="PHPSESSID" VALUE="9771f86dc94e367cf1c62e0339d02c4b"> <input type="submit" name="submit" value="przycisk przesłania danych formularza"> </form></html>

Usuwanie zmiennej sesji, całej sesji session_unregister( zmienna_sesji ); session_destroy(); pierwsze dwa łącza są względne - zostały do nich dołączone dane na temat sesji łącze 3 nie jest oczywiście łączem względnym, więc identyfikator sesji nie został dołączony łącze 4 - bezwzględny adres URL, chociaż strona ta znajduje się na tym samym serwerze. PHP uzupełnia jedynie adresy URL zapisane w postaci łączy względnych PHP potrafi również uzupełniać formularz tak, aby zawierał on wartość identyfikatora sesji - wada - działa jedynie dla metody POST.

Konfiguracja kontroli sesji plik php.ini opcja domyślnie wynik session.auto_start 0 automatyczny start sesji session.cache_expire 180 czas pamiętania sesji w minutach session.cookie_domain brak domena w cookie sesji session.cookie_path / ścieżka w cookie sesji session.name PHPSESSID nazwa sesji - cookie session.save_handler files przechowywanie danych sesji session.save_path /tmp miejsce przechowywania danych session.use_cookie 1 włączenie cookie

Uwierzytelnianie w kontroli sesji (1) echo <form method=post action=\ uwierz_gl.php\ > ; echo <table> ; echo <tr><td>identyfikator użytkownika:</td> ; echo <td><input type=text name=iduzytkownia></td></tr> ; echo <tr><td>hasło:</td> ; echo <td><input type=password name=haslo></td></tr> ; echo <tr><td colspan=2 align=center> ; echo <input type=submit value=\ Logowanie\ ></td></tr> ; echo </table></form> ; if($iduzytkownika && $haslo) { $bd_lacz=mysql_connect( localhost, login, pass ); mysql_select_db( uwierz,$bd_lacz); $pyt= select * from uwierz where uzytkownik like $iduzytkownika and haslo like $haslo ; $wynik=mysql_query($pyt, $bd_lacz);

Uwierzytelnianie w kontroli sesji (2) if(mysql_num_rows($wynik)>0) { $user_ok=$iduzytkownika; session_register( user_ok ); } if(session_is_registered( user_ok )) { echo Użytkownik zalogowany jako: $user_ok <br> ; echo <a href=\ wylog.php\ >Wylogowanie</a><br> ; } if(isset($idużytkownika)) { echo Zalogowanie niemożliwe ; }

Uwierzytelnianie w kontroli sesji (3) session_start(); echo <h1>część tajna</h1> ; if(session_is_registered( user_ok )) { echo <p>użytkownik zalogowany jako $user_ok.</p> ; echo <p>oto zawartość tajna</p> } else { echo <p>użytkownik niezalogowany</p> ; } echo <a href=\ uwierz_gl.php\ >Powrót do strony głównej</a> ;

Uwierzytelnianie w kontroli sesji (4) session_start(); $old_user=$user_ok; $wynik=session_unregister( user_ok ); session_destroy(); <html> <body> <h1>wylogowanie</h1> if(!empty($old_user)) { if($wynik) echo Wylogowano.<br> ; else echo Wylogowanie niemożliwe.<br> ; } else {echo Brak logowania, brak wylogowania.<br> ;}

Ponowne zastosowanie kodu (1) require załadowanie pliku do skryptu PHP // kod w pliku again.php echo Wyrażenie PHP.<BR> ; // kod w pliku main.php echo Plik główny.<br> ; require( again.php ); echo Koniec skryptu ; - ładowany plik może zawierać wszystko, co można umieścić w skrypcie: wyrażenia PHP, tekst, znaczniki HTML, funkcje PHP - PHP nie zwraca uwagi na rozszerzenie żądanego pliku - nazwy mogą być dowolne pod warunkiem, że nie będzie on wywoływany samodzielnie - wyrażenia PHP wykonają się prawidłowo nawet wówczas gdy plik otrzyma rozszerzenie, które nie jest związane z PHP - uwaga na konspirację jeśli rozszerzenia będą złe obcy może podejrzeć zawartość wnętrza PHP-owego

Ponowne zastosowanie kodu (2) include załadowanie pliku do skryptu PHP if($zm == true) { require( pl1.inc ); } else { require( pl2.inc ); } if($zm == true) { include( pl1.inc ); } else { include( pl2.inc ); } jeśli serwer słabo obciążony wszystko jedno który mechanizm stosujemy pliki ładowane przez include mogą zwrócić wartość, przez require - nie zmienne można tworzyć zarówno w pliku głównym, jak i dołączanych - będą widoczne wszędzie tak z require, jak i z include przewaga require nad include działa szybciej!

przykład include zwracającego wartość // kod w pliku otplik.php $wp = @fopen($nazwa, $tryb); if (!wp) { echo <p><strong>otwarcie niemożliwe.</strong></p> return 0; } else { return 1; } // kod w pliku main.php $nazwa = plik.txt ; $tryb = r ; $wynik = include( otplik.php ); if($wynik == 1) { // operacje z plikiem, dostępny wskaźnik $wp }