background image

 

Wyższa Szkoła Gospodarki w Bydgoszczy 
Instytut Informatyki Stosowanej 
Technologie internetowe (2006/2007)

 

Ćwiczenie 2. 
 
Wprowadzenie do PHP – dynamiczne generowanie stron WWW.

 

 
 
1.  Cel ćwiczenia 
 
Celem ćwiczenia jest poznanie języka PHP. Przedstawiono proste przykłady i zastosowania języka 
oraz jego możliwości w zakresie dynamicznego generowania stron WWW, operacji na plikach oraz 
katalogach itp. Ćwiczenie wymaga znajomości podstaw języka HTML oraz C (instrukcje 
warunkowe, formatujące itp.). 
 
 
2.  Wstęp do PHP 
 
PHP jest językiem skryptowym działającym po stronie serwera. Kod PHP osadzany jest w 
dokumencie HTML i wykonywany w trakcie wywołania strony. Składnią język ten zbliżony jest do 
języka C. 
Przetwarzanie PHP jest wyzwalane przez specjalny typ, definiowany w pliku konfiguracyjnym 
serwera informujący, że pliki z danym rozszerzeniem mają być traktowane jako skrypty (*.php). 
Pliki z powyższym rozszerzeniem nie są od razu wysyłane tylko analizowane pod kątem 
wystąpienia znaczników PHP. 

 

 

 

Zalety PHP: 

 

ƒ

  wysoka wydajność, 

ƒ

  interfejsy do wielu różnych systemów baz danych (MySQL,  Oracle,  mSQL,  Postgres

InformixInterBaseSybaseODBC itd.), 

ƒ

  wbudowane biblioteki służące do rozwiązywania wielu popularnych zadań WWW, 

ƒ

  dostęp do popularnych usług sieciowych (HTTPIMAPPOP3SMTPFTPDNS, itp.) oraz 

możliwość tworzenia i otwierania gniazd sieciowych, 

ƒ

  niski koszt implementacji, 

ƒ

  przenośność, 

ƒ

  dostępność kodu źródłowego (Open Source). 

 

background image

 

Wyższa Szkoła Gospodarki w Bydgoszczy 
Instytut Informatyki Stosowanej 
Technologie internetowe (2006/2007)

 

Popularne zastosowania PHP: 

 

ƒ

  przetwarzanie danych z formularzy, 

ƒ

  uwierzytelnianie użytkownika i kontrola dostępu (sesje), 

ƒ

  współpraca z bazami danych (tworzenie, usuwanie, modyfikowanie zawartości, pobieranie 

informacji) i tworzenie interfejsu WWW dla tych operacji, 

ƒ

  funkcje plikowe (tworzenie katalogów, tworzenie, odczytywanie, zapisywanie plików, 

modyfikowanie praw dostępu, wywoływanie funkcji systemowych), 

ƒ

  dynamiczne generowanie obrazów (GIFJPEGPNG) i dokumentów (PDFRTF), 

 
 
3.  Osadzanie kodu PHP w dokumencie HTML - zmienne 
 

Poniższe ćwiczenia wymagają zainstalowanego i poprawnie skonfigurowanego serwera WWW 
(Apache) oraz współpracującego z nim interpretera kodu PHP (przynajmniej w wersji 4). 
Omówiona zostanie instalacja serwera Apache z obsługą PHP dla Windows (PHPTriad). 
Podczas zajęć laboratoryjnych wykorzystany zostanie serwer w sieci lokalnej oparty na 
systemie Linux Slackware 9.0
 
Początkowy skrypt każdego ćwiczenia powinien nosić nazwę index.php i zostać umieszczony w 
katalogu domowym użytkownika. Studenci logują się do lokalnego serwera o adresie:  
prowadz1.info.ab-byd.edu.pl  (192.168.5.26) z wykorzystaniem oprogramowania - klienta FTP 
(Total Commander) - nazwa użytkownika:  student1...student15 (hasło takie samo jak nazwa 
użytkownika). 
 
Skrypt stworzony przez użytkownika studentX znajduje się pod adresem: 
http://prowadz1.info.ab-byd.edu.pl/studentX/ 
 

Poniższy skrypt umieść w pliku index.php i sprawdź jego działanie: 
 

<HTML> 

  <HEAD> 

    <TITLE>przykład</TITLE> 

  </HEAD> 

  <BODY> 

   

<?php echo ”<H1>Przykład</H1>” ?> 

   

<? echo ”osadzanie kodu” ?> 

  </BODY> 

</HTML> 

 

 

Poniższy skrypt pozwala dodać zawartość dynamiczną (w tym wypadku bieżący czas i data): 

 

<HTML> 

  <HEAD> 

    <TITLE>przykład</TITLE> 

  </HEAD> 

  <BODY> 

   

<? 

     

// to jest komentarz: użycie funkcji date() 

     echo ”Dziś jest ”; 

     echo date(”jS F H:i”);  

   ?> 

  </BODY> 

</HTML>

 

background image

 

Wyższa Szkoła Gospodarki w Bydgoszczy 
Instytut Informatyki Stosowanej 
Technologie internetowe (2006/2007)

 

Korzystając z podręcznika PHP (www.php.net) zapoznaj się ze sposobem formatowania daty. 

 
W przeciwieństwie do języka C, deklaracja zmiennej następuje automatycznie w trakcie 
przypisania. Typ zmiennej zostaje określony na podstawie wartości stojącej po prawej stronie znaku 
= (w pierwszym podstawieniu jest to zmienna typu integer, w drugim typu string  (łańcuch 
tekstowy). Polecenie echo pozwala wyświetlić zmienną lub dowolny tekst (tekst może zawierać 
znaczniki HTML).  

 

<?

    

     

$a

 

=

 25; 

//deklaracja i przypisanie

 

     echo

 

$a

     

echo

 

"<BR>"

     

$a

 

=

 

"ta sama zmienna"

     

echo

 

$a

;  

 

?>

 

 
 
3.  Zmienne formularza i przesyłanie zmiennych 
 
Znaczniki  <FORM> (plik index.php) zawierają komponenty standardowego formularza WWW – 
pola tekstowe oraz przycisk. Akcja formularza ustawiona jest na skrypt send.php - w momencie 
naciśnięcia na przycisk (submit) zostanie załadowana strona send.php, a nazwy pól formularza 
(imie,  nazwisko) staną się zmiennymi tekstowymi w skrypcie send.php  ($imie,  $nazwisko). 
Wartości tych zmiennych to informacje, które użytkownik wpisał w pola tekstowe. W metodzie 
post wysyłane dane są niewidoczne dla użytkownika (przesyłane jako osobny pakiet). 
 

<FORM 

METHOD

=

"post"

 

ACTION

=

"send.php"

  <INPUT 

TYPE

=

"text"

 

NAME

=

"imie"

><BR> 

  <INPUT 

TYPE

=

"text"

 

NAME

=

"nazwisko"

><BR>   

  <INPUT 

TYPE

=

"submit"

 

VALUE

=

"wyślij"

</FORM> 

 

<? 

   

// to jest zawartość sekcji <BODY> pliku send.php 

   

echo

 

"Podałeś: "

.

$imie

.

" "

.

$nazwisko

?> 

 
Zmienne można także przesłać w adresie URL (w odnośniku do danej strony zawierającej skrypt 
PHP). Plik index.php można zapisać na dwa sposoby: 
 

<A 

HREF

=

"send.php?a=2"

>dalej</A>

 

 
lub umieszczając kod odnośnika w kodzie PHP (wartość przesyłanej zmiennej może być 
wyznaczona w trakcie działania skryptu): 
 

<?

  

   

$a

 

=

 2; 

   

echo

 

"<A HREF=\"

send

.

php

?

a

=

".$a."

\

">dalej</A>"

;  

?> 

 
Skrypt send.php wyświetla przesłaną zmienną: 
 

<?

   

   

echo

 

"Zmienna <B>a</B> wynosi "

.

$a

;  

?> 

background image

 

Wyższa Szkoła Gospodarki w Bydgoszczy 
Instytut Informatyki Stosowanej 
Technologie internetowe (2006/2007)

 

4.  Odczyt danych z pliku 
 
Dostęp do plików (odczyt, zapis) odbywa się podobnie jak w języku C. Otwarty do odczytu lub 
zapisu plik zostaje skojarzony z uchwytem pliku – liczbą typu integer. Funkcja fgets() zwraca 
kolejne wiersze pliku i przypisuje je zmiennej $linia. Drugi parametr tej funkcji określa liczbę 
znaków w linii. 
 

<?

    

   

$f

 

=

 

fopen(

"produkty.txt"

,

"r"

)

     

while

 

(!feof(

$f

))

 

{

       

       

$linia

 

=

 

fgets(

$f

,100

)

 

 

echo

 

$linia

.

"<BR>"

     

}

    

   

fclose(

$f

)

;  

?> 

 
 
 
5.  Edycja danych i zapis do pliku 
 
Odczytu z pliku możemy także dokonać przypisując zmiennej tekstowej całą zawartość pliku. 
Funkcja filesize() zwraca rozmiar pliku, a fread() – zawartość całego pliku. Zmienna ta podstawiana 
jest w polu <TEXTAREA> (pole tekstowe domyślnie wypełnione jest zawartością pliku): 
 

<?

    

    

$f

 

=

 

fopen(

"produkty.txt"

,

"r"

)

      

$size

 

=

 

filesize(

"produkty.txt"

)

      

$plik

 

=

 

fread(

$f

,

$size

)

    

fclose(

$f

)

    
    

echo

 

"<FORM METHOD=\"

post\

" ACTION=\"

zapisz

.

php\

">"

    

echo

 

"<TEXTAREA NAME=\"

plik\

">"

.

$plik

.

"</TEXTAREA>"

    

echo

 

"<BR><INPUT TYPE=\"

submit\

" VALUE=\"

zapisz\

">"

    

echo

 

"</FORM>"

?> 

 
W skrypcie zapisz.php ten sam plik zostaje otwarty do zapisu. Zmodyfikowany tekst (z pola 
<TEXTAREA> formularza) przekazywany jest do funkcji fwrite(), która nadpisuje istniejący plik 
wartością zmiennej $plik
 

<? 

   

$f

 

=

 

fopen(

"produkty.txt"

,

"w"

)

   

echo

 

"Zapisywanie..."

   

fwrite(

$f

,

$plik

)

   

fclose(

$f

)

?> 

 
 
 
6.  Serwis WWW w jednym pliku 
 
Na podstawie powyższych wiadomości oraz zasad projektowania serwisu WWW (ćwiczenie 3) 
można stworzyć zarządzalną witrynę na bazie jednego skryptu PHP oraz opcjonalnych plików 
tekstowych z treścią serwisu: 
 
 

background image

 

Wyższa Szkoła Gospodarki w Bydgoszczy 
Instytut Informatyki Stosowanej 
Technologie internetowe (2006/2007)

 

<? 

   

echo

 

"<A HREF=\"

index

.

php

?

m

=

firma\

">firma</A> | "

   

echo

 

"<A HREF=\"

index

.

php

?

m

=

produkty\

">produkty</A> | "

   

echo

 

"<A HREF=\"

index

.

php

?

m

=

kontakt\

">kontakt</A><BR><BR>"

    

   

if

 

(

$m

 

==

 

"firma"

)

 

       

//wyświetl informacje o firmie albo plik firma.txt

  

   

}

   

   

if

 

(

$m

 

==

 

"produkty"

)

 

{

   

      

//wyświetl informacje o produktach albo plik produkty.txt

   

   

}

    

   

if

 

(

$m

 

==

 

"kontakt"

)

 

{

  

      

//wyświetl dane teleadresowe albo plik kontakt.txt

   

   

}

    

?>

 

 

Zastosuj powyższe rozwiązanie w wykonanym w ćwiczeniu 3 projekcie serwisu WWW. 

 
 
7.  Wnioski i spostrzeżenia 
 
 
8.  Literatura 
 
  [1]  Welling L., Thomson L., PHP i MySQL. Tworzenie stron WWW, HELION, Gliwice 2002, 
 [2] Lerdorf 

R., 

PHP4. Leksykon kieszonkowy, HELION, Gliwice 2003, 

 [3] Ford 

A., 

Apache. Leksykon kieszonkowy, HELION, Gliwice 2000, 

 [4] www.php.net