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



Podobne dokumenty
Systemy internetowe Wykład 3 PHP

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Bazy Danych i Usługi Sieciowe

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

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

Wprowadzenie do Internetu Zajęcia 5

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

Personal Home Page PHP: Hypertext Preprocessor

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

Laboratorium 1 Wprowadzenie do PHP

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

Michał Bielecki, KNI 'BIOS'

Zajęcia 4 - Wprowadzenie do Javascript

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

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

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Umieszczanie kodu. kod skryptu

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

Internetowe bazy danych

Oczywiście plik musi mieć rozszerzenie *.php

Bazy Danych i Usługi Sieciowe

Zmienne i stałe w PHP

SSK - Techniki Internetowe

PHP5. Praktyczny kurs

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

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Zajęcia 10 obsługa formularzy w 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

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

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

CZYM JEST JAVASCRIPT?

Podstawy JavaScript ćwiczenia

Internetowe bazy danych

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print

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

Zaawansowane aplikacje internetowe

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

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

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

FORMULARZE. G. Przęczek

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

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

Aplikacje WWW - laboratorium

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

PHP: bloki kodu, tablice, obiekty i formularze

Wykład 03 JavaScript. Michał Drabik

Obiektowe bazy danych

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

PHP w-3. Sterowanie w PHP

Zdarzenia Zdarzenia onload i onunload

Aplikacje WWW - laboratorium

Ćwiczenie laboratoryjne. Komunikacja z serwerem w języku PHP

SMS Kod Automatyczny

Aplikacje WWW - laboratorium

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Krótki kurs JavaScript

Język PHP. PHP (PHP: Hypertext Preprocessor) język programowania stron WWW; najważniejsze cechy PHP:

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

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

SIECI KOMPUTEROWE I BAZY DANYCH

Języki programowania wysokiego poziomu. PHP cz.2.

Zaawansowane bazy danych i hurtownie danych

Dokumentacja Skryptu Mapy ver.1.1

Programowanie internetowe

I.Wojnicki, Tech.Inter.

Sieci Komputerowe i Technologie Internetowe (SKiTI)

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

Dlaczego PHP? - zalety

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

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

Formularze w PHP dla początkujących

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Programowanie internetowe

Internetowe bazy danych

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Aplikacje internetowe

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie. 20 października 2013

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

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

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Języki programowania wysokiego poziomu. PHP cz.1.

XML extensible Markup Language. część 5

Języki programowania wysokiego poziomu. Forum, Blog, Sample DB - wskazówki

Zarządzanie systemami informatycznymi. Pojęcie systemu informatycznego Tworzenie interaktywnego oprogramowania internetowego w PHP

PHP - informacje ogólne

Tworzenie Stron Internetowych. odcinek 10

14. POZOSTAŁE CIEKAWE FUNKCJE

Ćwiczenie 7 - PHP (3)

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Transkrypt:

Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie grafiki, dokumentów PDF czy animacji Flash umożliwia tworzenie aplikacji obiektowych od wersji 5 rozwijany na zasadach Open Source. http://www.php.net Wymaga interpretera i serwera HTTP. 1

Interpreter PHP Sekcje PHP <?php echo "Komunikat";?> <script language="php"> echo "Komunikat"; </script> <? echo Wynik działania 2 x 3 wynosi:?> <? =2*3;?> jednostki. <% echo "asp_tags = on.\n"; %> <%= $zmienna %> 2

Witaj.php <!DOCTYPE html> <html> <head>.. </head> <body> <h1> Powitanie1 </h1> <?php echo "Witaj! w PHP";?> <h1> Powitanie2 </h1> <?php echo <span style= color: red; > Witaj w PHP! </span> ;?> </body> </html> Zmienne i typy danych Zmienne nie muszą być deklarowane przed pierwszym użyciem typ zmiennej określany jest automatycznie. Nazwa zmiennej zaczyna się od znaku $. Cztery typy podstawowe: logiczny (bool) o wartościach true lub false), liczbowy całkowity, liczbowy zmiennoprzecinkowy, tekstowy. Dwa typy złożone: tablicowy i obiektowy. Dwa typy specjalne: typ NULL i identyfikator zasobów. 3

Typ tekstowy Łańcuchy znaków mogą być ograniczone: apostrofami (brak parsowania zmiennych, nie obowiązują sekwencje specjalne), cudzysłowami (zmienne są parsowane, obowiązują sekwencje specjalne). $wiek = 30; echo "Mam $wiek lat.\n"; echo 'Mam $wiek lat.\n'; Mam 30 lat. Mam $wiek lat.\n Operator. konkatenacja łańcuchów znaków. echo "Napis ". "długi "; Napis długi Tablice w PHP Tablice to struktury danych przechowujące zbiór danych zwykle jednego typu, dostępnych przez indeks. Dostępne są tablice: zwykłe (indeksowane kolejnymi nieujemnymi liczbami całkowitymi), asocjacyjne - indeksowane kluczem. Tablice mogą być również używane jako listy, kolejki, czy stosy. 4

Tablice.php <?php $tab1[0] = "jeden"; $tab1[1] = "dwa"; $tab1[2] = "trzy"; $tab2 = array('pierwszy' => 1, 'drugi' => 2, 'trzeci' => 3); echo "Drugi element tablicy zwykłej: ".$tab1[1]; echo "<br/> oraz asocjacyjnej: ".$tab2["drugi"];?> Operatory arytmetyczne: +, -, *, /, %, ++, --, przypisania: =, +=, -=, *= itd., porównania: ==, ===, <>,!=,!==, <, >, <=, >=, logiczne: and lub &&, or lub,!, xor, bitowe, kontroli błędów, wykonania poleceń systemowych, tekstowe tablicowe 5

Instrukcje sterujące if (warunek) instrukcja; if (warunek1) instrukcja1; else if (warunek2) instrukcja2;... else instrukcjan; switch (wyrażenie) { case wartość1: instrukcja1; break; case wartość2: instrukcja2; break;... default: instrukcjan; } Instrukcje iteracyjne for (wyr_inicjujące; wyr_warunkowe; wyr iteracyjne) instrukcja; while (wyrażenie_warunkowe) instrukcja; do instrukcja; while (warunek); foreach (wyrażenie_tablicowe as wartość) instrukcja; foreach (wyrażenie_tablicowe as klucz => wartość) instrukcja; 6

Pętla foreach <body> <h1> Elementy tablicy asocjacyjnej: </h1> <?php $tab2 = array('pierwszy' => 1, 'drugi' => 2, 'trzeci' => 3); foreach($tab2 as $klucz => $wartosc) echo "tab2[".$klucz."]=".$wartosc."<br />?> PHP funkcje (1) function nazwa (arg1, arg2,... argn) { instrukcje; return wartość_zwracana; } nazwa argumenty wartość zwracana function funkcja1($argument) function funkcja1(&$argument) 7

PHP funkcje (2) function modul($liczba) { if ($liczba < 0) $liczba = -$liczba; return $liczba; } $wynik = modul(-15); echo $wynik; include 'nazwa_pliku ; (http://www.php.net/manual/pl) form1.html <html> <body> <h2>podaj 2 liczby:</h2> <form action='mnoz.php' method= POST'> <p>liczba 1: <input type='text' name="l1 ></p> <p>liczba 2: <input type='text' name ="l2 ></p> <input type ='submit' name="wynik" value='wynik'> </form> </body> </html> 8

1. Przycisk SUBMIT (1) Sprawdzenie, czy na stronie z formularzem został wciśnięty przycisk wysyłający dane. Sprawdzenie wartości w tablicy asocjacyjnej $_POST/$_GET. PHP każdemu działającemu skryptowi udostępnia zmienne zewnętrzne - przechowywane w tablicach superglobalnych ( $_ ). Superglobalne - automatycznie dostępne w każdym zasięgu. Zwykłe zmienne globalne w PHP nie są automatycznie widoczne w funkcjach ( global ). Tablice superglobalne $GLOBALS referencje do zmiennych globalnych skryptu $_SERVER zmienne tworzone przez serwer, $_GET zmienne dostarczone do skryptu metodą GET, $_POST zmienne dostarczone do skryptu metodą POST, $_COOKIE zmienne cookies dostarczone do skryptu, $_FILES zmienne dostarczone do skryptu przez upload, $_ENV zmienne ze środowiska systemu operacyjnego, $_REQUEST zmienne z tablic $_GET, $_POST i $_COOKIE, $_SESSION zmienne sesyjne. 9

1. Przycisk SUBMIT (2) Pola formularza są dostępne w tablicy $_POST/$_GET pod indeksami odpowiadającymi ich nazwom. Czy w tablicy $_POST znajduje się pole wynik? Funkcja isset() sprawdza, czy ustawiona jest określona wartość zmiennej. if (isset($_post["wynik"])) {...} Isset, a empty isset(): sprawdza, czy zmienna istnieje i jest ustawiona true: zmienna istnieje i ma przypisaną wartość (również pusty łańcuch) empty(): sprawdza, czy zmienna jest pusta true: pusty łańcuch, false, zero, null 10

2. Walidacja Sprawdzenie czy pola w tablicy $_POST odpowiadające wymaganym polom: nie są puste empty($pole) If (empty($_post["pole1"])) mają odpowiedni format - is_numeric($pole); is_float(); is_link(); is_integer(); is_string() If (!is_numeric($_post["pole1"])) spełniają podane wyrażenie regularne preg_match(wyrazenie_regularne,$pole) if (!preg_match('/^[0-9]{2,2}-[0-9]{3,3}$/', $kod)) <html><body><h2>podaj 2 liczby:</h2> form1.php <form action='mnoz.php' method= POST'> Liczba 1: <input type='text' name="l1"> <br/> Liczba 2: <input type='text' name ="l2"> <input type ='submit' name="wynik" value='wynik'> </form></body></html> <?php mnoz.php if (isset($_post["wynik"])) { if (empty($_post["l1"]) empty($_post["l2"])!is_numeric($_post["l1"])!is_numeric($_post["l2"])) { echo "Musisz wypełnić wszystkie pola liczbami! "; echo "<p><a href= form1.php > Formularz </a></p>";} else { echo Wynik mnożenia : echo $_POST[ l1'] * $_POST[ 2'] } } else header("location: form1.php");?> 11

Formularz - dodatki header() - wysłanie surowego nagłówka HTTP. Pozwala na ustawienie parametrów nagłówka HTTP. header( nazwa_pola: wartość, zastępowanie). header( Location: form1.php, true) Instrukcja exit Post Back - przekazywanie danych z formularza realizowanego przez skrypt do tego samego skryptu $_SERVER[ PHP_SELF ] Upload plików (1) Upload przesłanie pliku z lokalnego systemu plików użytkownika na serwer za pośrednictwem formularza HTML wyświetlonego w przeglądarce. Konieczna jest aplikacja gotowa odebrać po stronie serwera plik przesłany z formularza HTML metodą POST. Zapis plików w katalogu ustawionym w opcjach PHP Informacje o plikach zostają udostępnione skryptom w tablicy superglobalnej $_FILES, np.: $_FILES['plik']['tmp_name'] nazwa na serwerze $_FILES['plik']['name ] nazwa rzeczywista 12

Upload plików (2) is_uploaded_file() sprawdza, czy plik został poprawnie przesłany na serwer move_uploaded_file() pozwala na przeniesienie plików z miejsca tymczasowego do docelowego is_uploaded_file($_files['plik']['tmp_name']) move_uploaded_file($_files['plik']['tmp_name'], [katalog]/$_files['plik']['name']) <form enctype="multipart/form-data" method="post" action="upload.php" > upload.html Wyślij plik: <input type="file" name="plik"> <input type="submit" value="wyślij > </form> <?php if (is_uploaded_file($_files['plik']['tmp_name'])) { echo "Załadowano plik {$_FILES['plik']['name']} jako {$_FILES['plik']['tmp_name']}<BR>\n ; upload.php $target= images/$_files['plik']['name']; move_uploaded_file($_files['plik']['tmp_name'], $target); }?> 13

Mechanizm sesji (1) Rozpoczęcie nowej sesji - tworzony jest klucz SESSION ID, SID zapisywany jest na serwerze oraz przesyłany do przeglądarki klienta przesyłany przez klienta do serwera z każdym nowym żądaniem (cookie, URL), Zmienne sesyjne: są zapisywane na serwerze: 1 sesja 1 plik. dla skryptu są dostępne poprzez tablicę $_SESSION. rejestracja nowej zmiennej sesyjnej - dodanie nowego klucza do tablicy sesji. PHPSESSID = 4241b82cb66569c0338b8fec21c4c2df Mechanizm sesji (2) session_start() session_name() session_id() session_destroy() kontynuacja bądź rozpoczęcie nowej sesji zwraca nazwę zmiennej cookie przechowującej SID zwraca identyfikator sesji usunięcie sesji 14

<?php session_start(); if (!isset($_session['licznik'])) $_SESSION['licznik'] = 0; else $_SESSION['licznik']++;?> <html><body> <?php echo "Liczba wizyt na stronie: "; echo "<b>".$_session['licznik']."</b>";?> </body></html> <?php session_start(); if (isset($_session['klient'])) { $_SESSION=array(); if (isset($_cookie[session_name()])) { setcookie(session_name(),'',time()-3600); } session_destroy(); }?> setcookie( nazwa zmiennej, wartość, wygaśnięcie) 15

Dziękuję za uwagę 16