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

Podobne dokumenty
Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Internetowe bazy danych

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Podstawy programowania III WYKŁAD 2

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

PHP zaawansowane programowanie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Język SQL, zajęcia nr 1

Zarządzanie kontami użytkowników w i uprawnieniami

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Baza danych do przechowywania użytkowników

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wdrożenie modułu płatności eservice. dla systemu Magento

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

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Wykład 8. SQL praca z tabelami 5

Używając wspólnego interfejsu programowania

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Projektowanie systemów baz danych

Database Connectivity

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Programowanie w Ruby

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Wykład 05 Bazy danych

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

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

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Wykład 5. SQL praca z tabelami 2

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Paweł Cieśla. Dokumentacja projektu

Programowanie obiektów

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Instalacja MySQL.

Podstawowe informacje o bazach danych. Technologie Informacyjne

Stos TCP/IP. Warstwa aplikacji cz.2

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Bazy danych i strony WWW

Relacyjne bazy danych a XML

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

Tuning SQL Server dla serwerów WWW

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

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Wielojęzykowość w aplikacjach J2EE. Tomasz.Skutnik@e-point.pl

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Programowanie w Ruby

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

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Programowanie w Ruby

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Aplikacje WWW - laboratorium

Budowanie interfejsów do baz danych

Hurtownia Świętego Mikołaja projekt bazy danych

Typy tabel serwera MySQL

Nowe technologie baz danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Podyplomowe Studium Programowania i Baz Danych

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Dokumentacja SQL API 1

Bezpieczeństwo systemów komputerowych

Podstawowe wykorzystanie Hibernate

Win Admin Monitor Instrukcja Obsługi

Bazy danych w PHP dla początkujących

Aplikacje WWW - laboratorium

Koncepcja oprogramowania SELS

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

NARZĘDZIA WIZUALIZACJI

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Aplikacje www laboratorium

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

INSTRUKCJA OBSŁUGI KLIENTA POCZTY WWW

Aplikacje WWW - laboratorium

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Bazy danych. dr Radosław Matusik. radmat

Struktura drzewa w MySQL. Michał Tyszczenko

Pomoc dla r.

Zaawansowane bazy danych i hurtownie danych

Kurs WWW. Paweł Rajba.

Transkrypt:

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

Rozszerzenia PHP Plan wykładu: Bezpieczeństwo PEAR & PECL phpgroupware 2

Bezpieczeństwo (1) System operacyjny: System plików z uprawnieniami NTFS, ext2, ext3, Serwer WWW użytkownik nieuprzywilejowany: nobody, IUSR_(nazwa) prawa użytkownika uwierzytelnionego (NTLM) Szyfrowanie (HTTPS) certyfikaty autoryzacja serwera i przeglądarki 3

Bezpieczeństwo (2) Aplikacja: Bezpieczne uwierzytelnianie: w przeglądarce lub formularz-post sprawdzać czy: $HTTPS=on Kontrola parametrów formularza uruchamianie poleceń systemowych wykonanie poleceń SQL Ograniczyć dostęp do pewnych adresów IP 4

Bezpieczeństwo (3) Baza danych: Dostęp tylko przez: potoki, localhost (na jednym komputerze) ssl / tunelowanie (na różnych komputerach) Dostęp do bazy wymaga hasła Schemat bazy widoki sprawdzanie zakresów Transakcje 5

Bezpieczeństwo (4) Środowisko PHP: Ustawienie parametru safe_mode ograniczony dostęp do plików: tylko pliki właściciela skryptu zablokowane / ograniczone funkcje: uruchamianie procesów,... zablokowane ważne funkcje: set_time_limit() ignore_user_abort() 6

Bezpieczeństwo (5) Środowisko PHP (2): Ukrywanie błędów @instrukcja error_reporting(0) Ukrywanie plików inkludowany.inc.php ściąganie ukrytych plików poprzez PHP 7

PEAR (1) Biblioteka: PEAR z ang. gruszka: owoc soczysty, miękki, intensywnie pachnący 8

PEAR (2) PHP Extension and Application Repository: Strukturalna biblioteka OpenSource System rozpowszechniania i zarządzania kodem The PHP Extension Code Library (PECL) podbiblioteka napisana w języku C (od 2003 roku osobny projekt PHP Extension Community Library) Styl programowania 9

PEAR (3) Strukturalna biblioteka: Podział na pakiety Każdy pakiet: posiada wersję, informację o stabilności zespół, który go rozwija może być powiązany z innymi pakietami 10

PEAR (4) The PHP Foundation Classes (PFC): Podzbiór pakietów: stabilne ogólne współdziałające z dowolną wersją PHP, WWW, zachowujące kompatybilność wstecz 11

PEAR (5) Nazewnictwo pakietów: <kategoria komponent> _ <nazwa> Pakiet podstawowy: PEAR.php Włączanie pakietów: include_once require_once 12

PEAR (6) Wybrane kategorie: DB XML Auth Mail Networking Log HTML 13

PEAR DB (7) DSN: phptype(dbsyntax): //username:password @protocol+hostspec/database Przykład: mysql://test:testp@localhost/db pgsql://localhost/db1 14

PEAR DB (8) Wspierane bazy danych: mysql -> MySQL pgsql -> PostgreSQL ibase -> InterBase msql -> Mini SQL mssql -> Microsoft SQL Server oci8 -> Oracle 7/8/8i odbc -> ODBC sybase -> SyBase ifx -> Informix fbsql -> FrontBase 15

PEAR DB (9) Połączenie z bazą danych require_once 'DB.php'; // połączenie (persistent:true) $db = DB::connect( dsn, true); $db->disconnect(); 16

PEAR DB (10) Wykonanie zapytania $res = $db->query( sql ); $sth = $db->prepare( "INSERT INTO n VALUES(?,?)"); $db->execute($sth, array(7,2) ); 17

PEAR DB (11) Pobranie wyników zapytania $wiersz = $res->fetchrow(); Parametr dla fetchrow: DB_FETCHMODE_ORDERED (default) DB_FETCHMODE_ASSOC DB_FETCHMODE_OBJECT 18

PEAR DB (12) Generowanie klucza sekwencje $id = $db->nextid('mysequence'); $res = $db->query( "INSERT INTO t VALUES ($id,'f')"); 19

PEAR DB (13) Sekwencje od kuchni: PostgreSQL wbudowane: SELECT NEXTVAL('${sqn}_seq') MySQL emulowane: INSERT INTO ${sqn}_seq VALUES(NULL); mysql_insert_id(...) 20

PEAR DB/DataObject (14) DataObjects: Obiekty zamiast SQL (używa DB) Automatyczne tworzenie klas API do operacji na danych AutoForm (ładowanie, walidacja formularzy) 21

PEAR DB/DataObject (15) DataObjects (2): PHP: $person = new DataObjects_Person; $person->get(12); echo $person->name; SQL: SELECT * FROM person WHERE id=12; 22

PEAR DB/DataObject (16) DataObjects (3): PHP: $person->get(12); $person->name = 'Fred'; $person->update(); SQL: UPDATE person SET name= Fred WHERE id=12; 23

PEAR XML (17) XML: Uproszczony odczyt danych i struktury Transformacje Tworzenie nowych dokumentów XML 24

PEAR XML/Tree (18) Tworzenie XML: require_once "XML/Tree.php"; $tree = new XML_Tree; $root =& $tree->addroot( root ); $foo =& $root->addchild( foo, test ); header("content-type: text/xml"); $tree->dump(); 25

PEAR XML/Tree (19) Wynikowy XML: <?xml version="1.0"?> <root> <foo>test</foo> </root> 26

PEAR Auth/Auth (20) Uwierzytelnianie (Formularz 1): require_once "Auth/Auth.php"; function loginf() { /* Pokazanie formularza z polami: username, password */ } 27

PEAR Auth/Auth (21) Uwierzytelnianie (Formularz 2): $dsn = mysql://us:pwd@serwer/db ; $a = new Auth("DB", $dsn, "loginf"); $a->start(); if ($a->getauth()) { } 28

PEAR Auth/HTTP (22) Uwierzytelnianie (HTTP, wymaga Auth/Auth): require_once "Auth/Auth_HTTP.php"; $a = new Auth_HTTP("DB", "mysql://us:pwd@serwer/baza"); $a->start(); 29

PEAR Auth (23) Uwierzytelnianie (MySQL): CREATE TABLE auth ( username VARCHAR(50) default '' NOT NULL, password VARCHAR(32) default '' NOT NULL, PRIMARY KEY (username), KEY (password) ); 30

PEAR Auth (24) Wsparcie dla baz użytkowników: PEAR database layer MDB database layer MDB2 database layer Plaintext files LDAP servers POP3 servers IMAP servers vpopmail accounts RADIUS SAMBA password files SOAP 31

PEAR MAIL (25) Mail.php Wysyłanie przez dowolny program pocztowy sendmail, SMTP Mail/mime.php Tworzenie poczty wieloczęściowej: text html załączniki 32

PEAR Networking (26) Obsługa sieci: Sprawdzanie poprawności adresu (IPv4, IPv6) Finger, Ping, Portscan Whois NNTP (Newsserver) 33

PEAR Log (27) Logi: Przechowywanie informacji o zdarzeniach: file mcal aplikacje kalendarza sql do bazy danych (DB) syslog syslog (*nix), EventLog (Win) 34

PEAR Log (28) Logi SQL (MySQL): CREATE TABLE log_table ( unix_time int NOT NULL, ident char(16) NOT NULL, priority int, message varchar(200), PRIMARY KEY (unix_time, ident) ); 35

PEAR HTML/Template... (29) Wzorce HTML: Rozdzielenie prezentacji od danych możliwość tworzenia skór niezależna praca grafika i programisty Konieczność zarządzania wzorcami 36

phpgroupware (1) Środowisko dla aplikacji PHP: OpenSource Modularna budowa Struktura stron API Zintegrowane aplikacje 37

phpgroupware (2) Modularna budowa: Katalog osobna aplikacja Zintegrowane zarządzanie: użytkownikami i grupami aplikacjami + uprawnienia do aplikacji Zintegrowane uwierzytelnianie 38

phpgroupware (3) Struktura stron: Strona konkretnej aplikacji jest otoczona stronami systemu (zagnieżdżenie) Automatyczne inkludowanie {appname}/inc/functions.inc.php {appname}/inc/header.inc.php {appname}/inc/footer.inc.php 39

phpgroupware (4) API: (LGPL, GPL) Zarządzanie sesją Abstrakcyjna baza danych (Postgres, Mysql) Uwierzytelnianie: SQL, LDAP, PAM, SMB Zaawansowana wielojęzyczność (I18N = Internationalization) Wzorce stron Pliki użytkownika (dostęp przez konto FTP) 40

phpgroupware (5) API (2): OO (Object Oriented) Dostęp do danych innych aplikacji Funkcje użytkowe: wykrywanie przeglądarki parser XML... 41

phpgroupware (6) Zintegrowane aplikacje: Administracja Email Kalendarz Książka adresowa Zarządzanie plikami Tłumaczenie Notatki To Do List NNTP Manual Ustawienia (pełna personalizacja) 42

phpgroupware (7) 43

Podsumowanie Linki: www.php.net strona projektu PHP conf.php.net konferencje o PHP pecl.php.net PECL pear.php.net PEAR www.phpgroupware.org phpgroupware 44