64
Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk Technologie internetowe Serwis WWW – język php http://www.ftj.agh.edu.pl/~antek Antoni Dydejczyk

Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Technologie internetowe Serwis WWW – język php

http://www.ftj.agh.edu.pl/~antek

Antoni Dydejczyk

Page 2: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

• Statyczne: zawartość określona w momencie ich napisania przez autora

• Dynamiczne: brak predefiniowanej postaci; generowany na nowo w odpowiedzi na każde wezwanie

• Aktywne: dokumenty zawierające w sobie kopię programu uruchamialnego lokalnie w środowisku przeglądarki

Rodzaje dokumentów WWW

Wyświetlany dokument jest napisany w HTML, XHTML czy XML.

Wyświetlany dokument tworzony jest np. w PHP.

Wyświetlany dokument wykorzystuje elementy języka JavaScript.

Page 3: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Dokument statyczny – serwis WWW

Serwer WWW

newton.ftj.agh.edu.pl

http://newton.ftj.agh.edu.pl/~antek/test.html

Plik: test.html

test.html

1

2

2

Page 4: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Formularze w serwisie WWW

Serwer WWW

newton.ftj.agh.edu.pl

Plik: login.html

http://newton.ftj.agh.edu.pl/~antek/login.html

login.html

<form action= "login.php" method="post"> Podaj login: <input type="text" name="login" />

Podaj hasło: <input type="passsword" name="pass" />

<input type="submit" />

</form>

login.html

1

2

2

Page 5: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Przetwarzanie formularza w serwisie WWW

Serwer WWW

newton.ftj.agh.edu.pl

Plik: login.php

http://newton.ftj.agh.edu.pl/~antek/login.php

<?php

echo "Twoje login: $_POST["login"] !";

?>

login.php

PHP login.php

4

3 4

login=login&password=pass

Page 6: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Dokument dynamiczny – formularz html

<html>

<head>

<title>TEST</title>

<head>

<body>

<form action= "odpowiedz.php" method="post"> Podaj imie: <input type="text" name="username"><br> <input type="submit">

</form>

</body>

</html>

pytanie.html

Page 7: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Dokument dynamiczny – skrypt php

<html>

<head>

<title>TEST</title>

<head>

<body>

<?php

echo "Twoje imie : $_POST["username"] !!! <br>";

?>

</body>

</html>

odpowiedz.php

Page 8: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Atrybut method ="metoda" określa metodę wysłania danych z formularza.

Metoda get – po zatwierdzeniu formularza pobrane są z niego pary nazwa-wartość, kodowane i dołączone do adresu podanego w atrybucie ACTION (ze znakiem "?" jako separator) i wysłane do pośrednika procesu (domyślnie).

Metoda post - po zatwierdzeniu formularza, dane zostaną włączone do ciała formularza i wysłane do pośrednika procesu.

np. http://www.test.com/test_1/prog1.php?dana1=11

Uwaga : tą metodą można wysłać żądanie odnośnikiem np. <a href=„”czytaj.php?zakres=wszystkie”>Pokaż wszystkie rekordy.</a>

Formularze HTML – element <form>

Page 9: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Definiowanie formularza:

<form> ..... Tutaj umieszczamy pola formularza .... </form>

Atrybuty elementu <form>

action="adres” Określa sposób obsługi formularza - gdzie go wysłać name ="nazwa"

Nazwa formularza

Formularze HTML – element <form>

Page 10: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Znaczniki stosowane w polu formularza: <input> <input type=”text” name=”pole1” value=”przykład 1” > <input type=”password” name=”pole_hasla” value=”przykład”> <input type=”checkbox” value=”yes” name=”test” checked> <input type=”radio” value=”a” name=”przycisk_opcji”> wartosc 1<br> <input type=”radio” value=”b” name=”przycisk_opcji”> wartosc 2<br> <input type=”file” name=”polepliku”> <input type=”hidden” name=”user” value=”test”> <input type=”submit”> <input type=”reset”>

Formularze HTML – znaczniki

Page 11: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Znaczniki stosowane w polu formularza: <select> <select name=”lista wyboru” size=”1”> <option value=”1”> Malopolskie <option value=”2”> Zachodnopomorskie </select> <select name=”lista wyboru” size=”3”> <select name=”lista wyboru” size=”3” multiple> <textarea> <textarea name=”poletekstu” rows=”5” cols=”60” wrap=”virtual”> </textarea>

Formularze HTML – znaczniki

Page 12: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

<html> <body> <form method=post> <p> Pole tekstowe </p> <input type="text" name="pole1" value="przykład 1" > </input><br> <p> pole hasla: </p> <input type="password" name="pole_hasla" value="przykład"><br> </input><br> <p> Pole wyboru: </p> <input type="checkbox" value="yes" name="test" checked><br> </input><br> <p> Przycisk opcji: </p><p> <input type="radio" value="a" name="przycisk_opcji"> wartosc 1<br> </input><br> <input type="radio" value="b" name="przycisk_opcji"> wartosc 2<br> </input><br> <p> Pole zalaczonego pliku </p> <input type="file" name="polepliku"><br> </input><br> </form> </body> </html>

Formularz HTML – przykład

Page 13: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Formularz HTML – przykład

Page 14: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

<html> <body> <form method=post> <select name="lista wyboru" size="1"> <option value="1"> Malopolskie <option value="2"> Zachodnopomorskie </select> <br><br><br> <select name="lista wyboru" size="3"> <option value="1"> Malopolskie <option value="2"> Zachodnopomorskie </select> <br><br><br> <select name="lista wyboru" size="3" multiple> <option value="1"> Malopolskie <option value="2"> Zachodnopomorskie </select> <br><br><br> <textarea name="poletekstu" rows="5" cols="60" wrap="virtual"> </textarea> </form> </body> </html>

Formularz HTML – przykład

Page 15: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Formularz HTML – przykład

Page 16: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda GET protokołu HTTP

GET zwraca się do serwera o określony zasób

stosowany przy specyfikowaniu

wymaganego zasobu, parametry dołączane do URL (po

znaku zapytania), ograniczona długość przekazywanych

parametrów.

GET /usr/bin/image1?... HTTP/1.1

Accept: image/gif, image/jpeg

Host: localhost

Request (Get Method)

Response

HTTP/1.1 200 OK

Date: Mon, 08-Jan-01 13:15:14 GMT

Server: Challenger

MIME-version: 1.0

Content-length: 2048

(Body of document)

Page 17: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda GET – przykład

<html> <head> <title>TEST</title> </head> <body> <h1>TEST</h1> <form method="get" action="test_get.php" > <input type="text" name="pole1" value="przyk1" /><br /> <input type="text" name="pole2" value="przyk2" /><br /> <input type="submit" /><br /> </form> </body> </html>

Serwer WWW

pascal.ftj.agh.edu.pl

http://pascal.ftj.agh.edu.pl/~antek/spn/przyklad_get.html

1

2 przykład_get.html

przykład_get.html

2

Page 18: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda GET - przykład

GET /~antek/http/test_get.php?pole1=przyk1&pole2=przyk2 HTTP/1.1 Host: newton.ftj.agh.edu.pl User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1 Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://newton.ftj.agh.edu.pl/~antek/http/index.html

Wysłanie danych z formularza na serwer – metoda GET – do pliku test_get.php.

pascal.ftj.agh.edu.pl

http://pascal.ftj.agh.edu.pl/~antek/spn/test_get.php?pole1=przyk1&pole2=przyk2

3

test_get.php

Page 19: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda GET - przykład

<html> <head> <title>TEST</title> </head> <body> <h1>TEST - GET</h1> <?php $pole1 = $_GET['pole1'] ; $pole2 = $_GET['pole2'] ; echo "Pole 1 -".$pole1."<br />" ; echo "Pole 2 -".$pole2."<br />" ?> </body> </html>

pascal.ftj.agh.edu.pl

Odpowiedź serwera na wysłany formularz – realizacja zawartości pliku test_get.php.

test_get.php

4

4

Page 20: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda POST protokołu HTTP

POST zwraca się do serwera o określony zasób

parametry wysyłane w ciele

komunikatu; dodatkowo zawiera nagłówki Content-

Type oraz Content-Length; wołana lokalizacja (URI) wskazuje

zwykle na program obsługujący, nie zaś na pobierany zasób;

odpowiedź jest zwykle dokumentem generowanym, nie zaś statycznym.

Request (Post Method)

POST /cgi-bin/doc.pl HTTP/1.1

Accept: *.*

Accept: image/gif

Content-type: text/html

Content-length: 50

(Input information)

Response

HTTP/1.1 200 OK

Date: Mon, 08-Jan-01 13:15:14 GMT

Server: Challenger

MIME-version: 1.0

Content-length: 2000

(Body of the document)

Page 21: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Metoda POST - przykład

<html> <head> <title>TEST</title> </head> <body> <h1>TEST</h1> <form method= "post" action="test_post.php" > <input type="text" name="pole1" value="przyk1" /><br /> <input type="text" name="pole2" value="przyk2" /><br /> <input type="submit" /><br /> </form> </body> </html>

Wysłanie zapytania na serwer WWW Odpowiedź serwera WWW na wysłane zapytanie - formularz

przykład_post.html 2

http://pascal.ftj.agh.edu.pl/~antek/spn/przyklad_post.html 1

Page 22: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Wysłanie danych z formularza na serwer (3) i odpowiedź serwera do przeglądarki (4)

3

4

Metoda POST - przykład

Page 23: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Język PHP

Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C)

Wersja 1.0: Personal Home Page Tools początek 1995

Wersja 2.0: PHP/FI 1995-1997 (Form Interpreter)

Wersja 3.0: PHP 1997-2000 (Zeev Suraski i Andi Gutman))

Wersja 4.0: PHP połowa 2000

Wersja 4.1: 10 grudzień 2001

Wersja 4.2: 22 kwiecień 2002

Wersja 5.0: luty 2003

Wersja 5.1: 24 listopada 2005 Wersja 5.2: 2 listopad 2006

Wersja 5.3: 30 czerwiec 2009 Wersja 5.4: 14 marzec 2013

Rok 2016 – wersja 5.4.x, 5.5.x i 5.6 oraz 7.0.x

Development Team (515+ osób z dostępem poprzez CVS).

Na początku 2001 > 5,100,000 web-sites używa PHP.

Page 24: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Język PHP

Netcraft 2013

Page 25: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Możliwości języka PHP

Przetwarzanie plików i katalogów

Współpraca z interfejsem ODBC, PDO

Przetwarzanie poczty

Wczytywanie danych z innych stron WWW

Generowanie dynamiczne grafiki

Przetwarzanie dokumentów XML

Generowanie dokumentów PDF

Śledzenie i utrzymywanie połączenia

Page 26: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Styl programowania - PHP

<HTML>

<HEAD>

<TITLE>Search results for "<?php print $query;?>" </TITLE>

</HEAD>

<BODY>

Tradycyjny styl programowania - perl

#!/usr/bin/perl

print "<HTML><HEAD>\n";

print "<TITLE>Search results for \"$query\"</TITLE>\n";

print "</HEAD>\n";

print "<BODY>\n";

Skrypty PHP

Page 27: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

XML Style

<?php

print “this is XML style”;

?>

Skrócona wersja

<?

print “this is ASP style”;

?>

W celu użycia skróconej wersji należy ustawić odpowiedni parametr w pliku konfiguracyjnym.

Skrypty PHP

Page 28: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

unix> vi test.php

#!/usr/bin/php

<?php

print " Hello World - PHP \n"

?>

unix> chmod 755 test.php

unix> ./test.php

Hello World – PHP

unix>

Skrypty PHP z linii poleceń

Page 29: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

<?php

if( strstr($HTTP_USER_AGENT,"MSIE") ) {

?>

<b>You are using Internet Explorer</b>

<?php

} else {

?> <b>You are not using Internet Explorer</b>

<?php

}

?>

Skrypt PHP i język HTML

Page 30: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Opis kodu komentarzem jest

dobrą praktyką programisty

<?php // - komentarz jak w języku C # - komentarz jak w języku perl /** * - wieloliniowy komentarz jak w języku C++ * (komentarz dla programu phpDocumentator) */ ?>

Komentarze w kodzie skryptu

Page 31: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Podstawowe typy danych

– numbers (integers i real)

– strings ( "abc“ i 'abc' )

– booleans (true,false )

Dynamiczne tworzenie

– Nie jest wymagana deklaracja zmiennych

– Konwersja typów jest wykonywana automatycznie

Zmienne w języku PHP

Page 32: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

+ Dodawanie - Odejmowanie * Mnożenie / Dzielenie % Dzielenie modulo ++ Zwiększenie o jeden -- Zmniejszenie o jeden

Operatory arytmetyczne

Page 33: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

== Jest równe

> Jest większe od

< Jest mniejsze od

>= Jest większe lub równe

<= Jest mniejsze lub równe

!= Nie jest równe

&& and Logiczne "i" || or Logiczne "lub" ^ xor Logiczne "albo"

! Logiczne "nie"

Operatory logiczne i relacyjne

Page 34: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Zmiana zmiennych – funkcje

<?php

$bool = true;

print (int)$bool;

?>

Zmiana zmiennych – bez specjalnych funkcji

<?php $x = "100"; $x++; // zmienna $x jest teraz 101

?>

Konwersja zmiennych

Page 35: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Zmienne globalne deklarowane wewnątrz skryptów natomiast niewidoczne wewnątrz funkcji.

Zmienne widoczne wewnątrz funkcji jako ich lokalne zmienne.

Zmienne używane wewnątrz funkcji i deklarowane jako global mające odpowiedniki do zmiennych globalnych o tych samych nazwach.

Typy zmiennych w PHP

Page 36: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Dodawanie

$a = 1 + 1; // ustawia $a na 2

$a += 4; // dodaje 4 do $a

$a ++; // dodaje 1 do $a

Odejmowanie

$a = 10 - 5; // ustawia $a na 5

$a -= 6; // odejmuje 6 od $a

$a --; // odejmuje 1 od $a

Operacje na zmiennych

Page 37: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Mnożenie

$a = 2 * 3; // ustawia $a na 6

$a *= 10; // mnoży $a przez 10

Dzielenie

$a = 10 / 3; // ustawia $a na 3.3333

$a /= 2; // dzieli $a na pół

Moduł

$a = 10 % 3; // ustawia $a na 1

$a %= 2; // ustawia $a jako moduł 2

// z samej siebie

Operacje na zmiennych

Page 38: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Ciąg znaków jako sekwencja znaków

$stringTest = "to jest ciag znakow";

echo $stringTest[0]; // output: t

echo $stringTest; // output: to jest ciag znakow

Ciąg znaków w "pojedynczych apostrofach"

$age = 37;

$strTest = 'Tom ma $age lat'; // output: Tom ma $age lat

$strTest = "Tom ma $age lat"; // output: Tom ma 37 lat

Operacje na ciągach znaków

Page 39: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Konkatenacja ( łączenie ciągów znaków )

$conc = " to"." jest "." połączony "." ciąg znaków "; echo $conc; // output: to jest połączony ciąg znaków $newConc = 'tak więc $conc '.$conc; echo $newConc; // output: tak więc $conc to jest połączony ciąg znaków

Operacje na ciągach znaków

Page 40: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Funkcja explode() $sequence = "A,B,C,D,E,F,G"; $elements = explode ("",$sequence); // elementami tablicy są ciągi znaków pomiędzy "," echo $elemets[0]; // output: A; echo $elemets[1]; // output: B; echo $elemets[2]; // output: C; echo $elemets[3]; // output: D; echo $elemets[4]; // output: E; echo $elemets[5]; // output: F; echo $elemets[6]; // output: G;

Operacje na ciągach znaków

Page 41: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

chr - zwraca znak

ord - zwraca kod ASCII znaku

sprintf - zwraca sformatowany tekst

strlen - podaje długość tekstu

strpos - znajduje pozycję od której zaczyna się ciąg znaków

strrev - odwraca ciąg znaków

strtolower - zmienia znaki na małe

strtoupper - zmienia znaki na duże

str_replace - podmienia wyspecyfikowany tekst na nowy w ciągu znaków

Operacje na ciągach znaków

Page 42: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Grupa zmiennych, każdy element składowany w tablicy jest skojarzony z odpowiednim kluczem wskazującym na ten element. $books = array( 0=>"php manual", 1=>"perl manual", 2=>"C manual"); $books = array( 0=>"php manual", "perl manual","C manual"); $books = array ("php manual", "perl manual", "C manual"); echo $books[2]; //output: C manual

Tablica asocjacyjna w PHP ( tablica hashowana ) $books = array("php manual"=>1, "perl manual"=>1, "C manual"=>1); echo $books["perl manual"]; // output: 1 $books["lisp manual"] = 1; // dodanie nowego elementu

Deklaracje tablic

Page 43: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Deklaracja zmiennych w tablicy

$books = array("php manual", "perl manual", "C manual");

Wydruk zawartości tablicy

for ($i=0; $i < count($books); $i++)

print ($i+1). "-ta kiążka w zbiorze: $books[$i] ";

Dostęp do danych w tablicach

Page 44: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Deklaracja zmiennych w tablicy asocjacyjnej

• $books = array("hp manual"=>1, "perl manual"=>2, "C manual"=>3);

Funkcja each()

while ($item = each( $books )) // Retrieve items one by one

print $item["value"]. "-ta książka w bibliotece : ".$item["key"];

Funkcje each() i list()

while ( list($value,$key) = each( $books ))

print "$value-ta książka w bibliotece : $key";

Funkcje operujące na tablicach

Page 45: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Wielowymiarowa tablica

$books = array(

array(“title”=>“php manual”,”editor”=>”X”,”author”=>”A”),

array(“title”=>“perl manual”,”editor”=>”Y”,”author”=>”B”),

array(“title=>“C manual”,”editor”=>”Z”,author=>”C”));

Wspólna pętla

for ($i=0; $i < count($books); $i++ )

print "$i-st book, title: ".$books[$i]["title"]." author: "

.$books[$i]["author"]." editor: ".$books[$i]["editor"];

Wielowymiarowe tablice

Page 46: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Wykorzystanie funkcji list() i each()

for ($i=0; $i < count($books); $i++) { print "$i-st book is: "; while ( list($key,$value) = each( $books[$i] )) print "$key: $value "; print "<BR>"; // or “\n” }

Funkcje operujące na tablicach

Page 47: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Konstrukcja foreach

<?php //values $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Current value of \$v: $v.<br>"; } // values and keys $a = array (1, 2, 3, 17); foreach($a as $k => $v) { print "\$a[$k] is $v<br>"; }

?>

Funkcje operujące na tablicach

Page 48: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

if ($test=='AAA')

{

// odpowiedni kod

}

else if ($test=='bbb')

{

// odpowiedni kod

}

else

{

// jeżeli nie wybrano poprzednich warunków

}ca

Instrukcja warunkowa - IF

Page 49: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Sprawdzenie czy zmienna jest ustawiona.

Dwa rozwiązania …

if ($a)

{

print “\$a exists";

}

if (!empty($a))

{

print “\$a exists";

}

Instrukcja warunkowa - IF

Page 50: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

switch ($test)

{

case "AAA":

// odpowiedni kod

break ;

case "bbb":

// odpowiedni kod

break ;

default:

// jeżeli nie wybrano poprzednich warunków

}

Instrukcja warunkowa - SWITCH

Page 51: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

while ( wyrażenie logiczne ) { // odpowiedni kod } do

{ // odpowiedni kod } while ( wyrażenie logiczne ) ; for ( $i = 1; $i <= 5; $i++ )

{ // odpowiedni kod }

Rekurencja – WHILE, DO .. WHILE, FOR

Page 52: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Przetwarzanie plików składa się z trzech kroków:

1) Otwarcie pliku. Generowanie odpowiedniej akcji w przypadku dostępu lub braku dostępu do pliku.

2) Zapis i odczyt z pliku.

3) Zamknięcie pliku.

Funkcja otwierająca plik - fopen().

Operacje na plikach

Page 53: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

r czytanie

r+ czytanie lub zapis

w nadpisanie – jeżeli plik istnieje jest usuwany i zapisany od nowa

w+ nadpisanie lub czytanie – jeżeli plik istnieje jest usuwany i zapisany od nowa

a dopisanie

a+ dopisanie i zapis

b mod binarny – różnica pomiędzy plikiem binarnym i znakowym

$fp = fopen( "file_name" , "mode" );

Operacje na plikach – otwarcie pliku

Page 54: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

fgets() – funkcja czyta rekord z pliku

@fp = fopen("orders.txt", "a");

fwrite($fp, "adding something to the file");

while (!feof($fp))

{

$order = fgets($fp, 100);

print $order. "<br>";

}

Inne funkcje fgetss, fgetcsv, fread and fgetc.

Operacje na plikach – czytanie

Page 55: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Zapis do pliku

–fwrite() …zapis do pliku

–fputs() …zapis do pliku ciągu znaków

@fp = fopen("orders.txt", "a");

fwrite($fp, "adding something to the file");

Zamknięcie pliku

fclose($fp);

Operacje na plikach – zapis

Page 56: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

file_exists(path) - sprawdzenie czy istnieje plik

filesize(path) - sprawdzenie wielkości pliku

nlink(path) - usunięcie pliku

flock(path, option) - blokada pliku na odpowiednim poziomie:

– 1 : Reading lock

– 2 : Writing lock

– 3 : Release existing lock

Operacje na plikach

Page 57: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

form.php – plik wczytujący dane

<form action="receive.php" method="post"> Nazwisko: <input type="text" name="username"><br> <input type="submit"> </form>

receive.php – plik przetwarzający dane

<?php if($username) print "Twoje nazwisko: $username <br>";

else {

?> <a href="form.php">Proszę wypełnić najpierw formularz !</a>

<?php } ?>

Przetwarzanie danych z formularzy w PHP

Page 58: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

<?php if($_POST[username])

{ echo "Twoje nazwisko - $username !!! <br>"; }

else

{

?> <form action="<?php= $PHP_SELF ?>" method="post"> Nazwisko: <input type="text" name="username"><br> <input type="submit"> </form>

<?php

}

?>

receive.php – cd.

Przetwarzanie danych z formularzy w PHP

Page 59: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

Funkcje wykorzystywane przy obsłudze formularzy:

1. trim() usuwa białe znaki z początku i z końca ciągu

znaków

2. ltrim() i chop() podobne działanie – ale albo z lewej

albo z prawej strony usuwane są białe znaki

3. Zmiana wielkości liter strtoupper() - przekształcenie liter na duże

strtolower() - przekształcenie liter na małe

ucfirst() - pierwsza litera w pierwszym wyrazie duża

ucwords() - w każdym wyrazie pierwsza litera duża

Funkcje kontroli danych w formularzach

Page 60: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

4. Wstawianie znaków ucieczki

AddSlashes() - wstawienie znaków ucieczki ( np.. \" )

StripSlashes() - usunięcie znaków ucieczki

5. Usuwanie elementów HTML z wprowadzanych ciągów

znaków

strip_tags()

$address=strip_tags(trim($_POST["address"])) ;

Funkcje kontroli danych w formularzach

Page 61: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

<form action="kontrola.php" method="post"> <table> <tr> <td>Nazwisko</td><td> <input type="text" name="nazwisko" /></td> </tr> <tr> <td>Imie</td><td> <input type="text" name="imie" /> </td> </tr> <tr> <td>Pytanie 1</td> <td> <span style="">Pytanie 1</span><br> <input type="radio" name="pyt1" value="1"/> Odpowiedz 1<br> <input type="radio" name="pyt1" value="2"/> Odpowiedz 2<br> <input type="radio" name="pyt1" value="3"/> Odpowiedz 3 </td> </tr> <tr> <td> <input type="reset" /> </td> <td> <input type="submit" name="wyslij" value="Wyslij" /> </td> </tr> </table> </form>

Formularz z pytaniami testu.

Page 62: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

$nazwa = "wyniki.txt" ; if (file_exists($nazwa)) { echo "Plik $nazwa istnieje"; $uchwyt = fopen($nazwa,"a"); } else { echo "Plik $nazwa nie istnieje"; $uchwyt = fopen($nazwa,"w"); } $nazwisko = $_POST['nazwisko'] ; $imie = $_POST['imie']; $pyt1 = $_POST['pyt1']; $pyt2 = $_POST['pyt2']; $pyt3 = $_POST['pyt3']; $pyt4 = $_POST['pyt4']; $pyt5 = $_POST['pyt5']; /* * Zapis danych do pliku * $tekst - zmienna zawiera dane dotyczace jednej odpowiedzi testu * - funkcja fwrite() zapisuje dane do pliku */ $tekst = $nazwisko.":".$imie.":".$pyt1.":".$pyt2.":".$pyt3.":".$pyt4.":".$pyt5.":"."\n" ; fwrite($uchwyt,$tekst) ;

Przetwarzanie danych z formularza testu.

Page 63: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk

$nazwa = "wyniki.txt" ; $uchwyt = fopen($nazwa,"r") ; print "<table border='1'>" ; print "<tr><th>Nazwisko</th><th>Imie</th><th>Pyt_1</th><th>Pyt_2</th>"; print "<th>Pyt_3</th><th>Pyt_4</th><th>Pyt_5</th></tr>" ; while ( false !== ($linia = fgets($uchwyt)) ) { $dane = explode(":",$linia) ; $tekst = "<tr>" ; $tekst .= "<td>".$dane[0]."</td>" ; $tekst .= "<td>".$dane[1]."</td>" ; $tekst .= "<td>".$dane[2]."</td>" ; $tekst .= "<td>".$dane[3]."</td>" ; $tekst .= "<td>".$dane[4]."</td>" ; $tekst .= "<td>".$dane[5]."</td>" ; $tekst .= "<td>".$dane[6]."</td>" ; $tekst .= "</tr>" ; print $tekst ; } print "</table>"

Odczyt wyników testu z pliku.

Page 64: Serwis WWW język phpnewton.ftj.agh.edu.pl/~antek/docs/SPN/SPN_TI_w02.pdf · Język PHP Wersja 0.0: Jesień 1994 ( Rasmus Lerdorf – skrypty w perl’u, potem w C) Wersja 1.0: Personal

Informatyka w szkole, Technologie Internetowe, wykład 2, 13.12.2019 Antoni Dydejczyk