Transcript PHP

Įvadas į dinaminių interneto
puslapių kūrimą
(naudojant PHP, MYSQL,
APACHE)
Paruošė Gitana Čechamirienė
Vilnius 2004
TURINYS
• Dinaminio tinklapio samprata;
• PHP – dinaminių tinklapių kūrimo įrankis;
– Kodėl PHP;
– Ko reikia, norint dirbti su PHP;
– PHP programos pavyzdys;
– PHP galimybės;
• MySQL – reliacinės duomenų bazės;
– MySQL sudėtis;
– Duomenų bazių kūrimas;
– Lentelių ir įrašų jose kūrimas;
• PHP ir MySQL naudojimo pavyzdys;
Statiniai ir dinaminiai tinklapiai
– Statiniais tinklapiais vadiname tinklapius, kurių
turinys nesikeičia tol, kol jo neatnaujina autorius.
Statiniuose tinklapiuose nebendraujama su
lankytojais ir nevykdomos programuojamos
užduotys (nors dinaminių elementų jose gali būti,
pvz. JavaScript pagalba sukurtas datos
nustatymo skriptas);
– Dinaminiai tinklapiai “bendrauja” su lankytojais.
Dinaminiai tinklapiai leidžia atlikti individualias
užduotis (pvz. užsiregistruoti kokiame nors
serveryje, užsisakyti prekes iš internetinės
parduotuvės).
Dinaminių tinklapių kūrimo
priemonės
•
•
•
•
PHP (Hypertext Processor);
ASP (Active Server Pages);
JSP (Java Server Pages );
Perl;
• Dalinai JavaScript arba VBScript;
PHP (Hypertext Processor)
– Tai skriptų kalba, kurios pagalba kuriami
dinaminiai Interneto puslapiai.
– PHP sintaksės pagrindai paimti iš C++,
Perl, Java programavimo kalbų.
– PHP programa vykdoma serverio pusėje ir
vartotojui generuojamas, bei siunčiamas
atitinkamas HTML puslapis (skirtingai nei
JavaScript, kuris yra vykdomas kliento
kompiuteryje).
HTML dokumento užklausa
IDC
Kliento programa siuncia HTML dokumento
uzklausa
Serveris siuncia HTML dokumenta
Kliento kompiuteris
Serveris
Kliento narsykle pateikia
HTML dokumenta
Monitorius
PHP dokumento užklausa
Kliento programa
siuncia HTML
dokumento uzklausa
Serveris vykdo PHP
scenariju
IDC
PHP interpretavimo
programa
Serveris siuncia HTML
dokumenta
Kliento kompiuteris
PHP pateikia HTML
dokumenta
Serveris
Kliento narsykle pateikia
HTML dokumenta
Monitorius
PHP atsiradimo istorija
• 1994m. Rasmus Lerdorf nusprendęs patobulinti
savo HomePage, sukūrė paprasčiausią varikliuką,
kurį pavadino “Personal Home Page” Tools;
• 1995m. atsirado antroji vieša versija PHP/FI (FI –
Form Interpretator);
• 1997m. Zeev Suraski ir Andi Gutmans perdarė
PHP varikliuką, pataisė daugelį klaidų. Ši versija buvo
pavadinta PHP3;
• 1999m. išėjo PHP4 versija, patobulinta daugybe
plėtinių;
• Jau sukurta ir penktoji PHP versija.
Kodėl PHP?
– Nemokamas;
– Nepriklausomas nuo platformos (jį galima
naudoti Unix, Linux, Windows ir kt. OS);
– Veikia daugelyje serverių (Apache, IIS,
PWS, OmniHTTP, BadBlue ir kt.);
– Yra atviro kodo, ją naudoja dauguma
vartotojų, todėl klaidos greitai taisomos;
– Nesudėtinga programavimo kalba;
– Greitai dirba su DB serverio pusėje.
Ko reikia norint dirbti su PHP
– WEB serverio
(šiuo metu, populiariausias darbui su PHP
serveris – Apache, kuris veikia tiek Windows,
tiek Linux (Unix) sistemose. Oficiali svetainė
http://httpd.apache.org );
– Įdiegti PHP
(oficiali svetainė http://www.php.net);
Galimi PHP dokumentų tipai: PHP, PHP3, PHP4,
PHTML.
Šiek tiek PHP sintaksės
– Kiekvienas skriptas rašomas tarp ženklų
<? ?>;
– Kiekvienas sakinys baigiamas “;”
– Komentarai :
“//” – vienos eilutės komentaras;
“/*
*/” – kelių eilučių;
– Informacija išvedama funkcijų “echo” arba
“print” pagalba;
– Kintamieji pradedami ženklu “$”;
Pirmoji PHP programa
<HTML>
<HEAD>
<TITLE>Mano pirmoji PHP
programa</TITLE>
</HEAD>
<BODY>
<?
//atspausdinamas tekstas:
echo “Sveiki!”;
//sukuriamas kintamasis:
$mano = “Gitana”;
/*atspausdinamas tekstas
ir kintamojo reikšmė */
echo “Mano vardas ”.$mano;
?>
</BODY>
</HTML>
PHP galimybės
• Dinaminių puslapių (priklausomai nuo
tam tikrų sąlygų) kūrimas;
• Formų apdorojimas;
• Seansų valdymo galimybės;
• Daugelio protokolų, pvz. POP3,
palaikymas;
• Duomenų bazių valdymas;
Duomenų bazės
Duomenų bazė – tai tam tikru būdu organizuota
duomenų sistema.
Duomenų bazės plačiai naudojamos ir Internete
pateikiamų duomenų saugojimui.
Keletas duomenų bazių sistemų:
• PostgreSQL;
• MySQL;
• mSQL ir kt.
Šiose duomenų bazių sistemose naudojama SQL
užklausų kalba.
MySQL
– Viena iš reliacinių (sąryšio) duomenų bazių apdorojimo
sistemų (reliacinė – nes leidžia įtraukti, keisti, ištrinti
informaciją iš kelių lentelių vienu metu);
– MySQL sistemoje duomenys talpinami lentelėse, sudarytose
iš laukų ir įrašų. Laukai – pastovioji lentelės dalis, stulpelių
pavadinimai; Įrašas – tai viena konkrečios informacijos eilutė
lentelėje;
Laukai
įrašas
Nr
Vardas
Slaptazodis
1
2
Jonas
Rasa
j23tr
rasele
MySQL duomenų bazių
sistemos sudėtis
• SQL serveris, palaikantis MySQL ir suteikiantis
priėjimą prie duomenų bazės ir joje saugomos
informacijos;
• Adminstravimo programos, naudojamos
susisiekimui su serveriu (pvz.: mysql – SQL
užklausų siuntimas serveriui, mysqladmin –
duomenų bazės administravimas);
• Klientinės programos, skirtos MySQL duomenų
bazių valdymui (pvz.: MySQL Client, PHP
MyAdmin ir daugelis kitų);
Ko reikia norint dirbti su MySQL
• Įdiegti MySQL
oficiali svetainė
http://www.mysql.com
• Įdiegti MySQL klientinę programą, pvz.
MySQLgui (My SQL Client)
Kodėl MySQL?
• Greita duomenų bazių sistema;
• Lengvai įdiegiama ir administruojama;
• Orientuota į Interneto svetainių kūrėjų
poreikius ir pasižymi nors ir
siauresnėmis, bet labiau sutelktomis
galimybėmis.
Duomenų bazės kūrimas
komandinės eilutės režime
• Duomenų bazių tvarkymui naudojama
administravimo programa mysql.exe, kuri saugoma
katalogo, kuriame įdiegtas MySQL pakatalogyje BIN:
Duomenų bazės kūrimas
komandinės eilutės režime
Prisijungus prie MySQL duomenų bazių sistemos, galima
vykdyti SQL užklausas:
CREATE DATABASE manodb;
Sukuriama duomenų bazė vardu manodb;
SHOW DATABASES;
Pateikiamos visos duomenų bazės, esančios MySQL
sistemoje;
USE manodb;
Pradedamas darbas su duomenų baze manodb;
Duomenų bazės kūrimas
komandinės eilutės režime
Duomenų bazės kūrimas klientinėje
programoje MySQL Client
• Klientinė programa MySQL Client (arba mysqlgui)
vykdoma vykdant bylą mysqlgui.exe:
Nurodžius jungimosi prie
MYSQL duomenų bazės
slaptažodį galima dirbti
su duomenų bazėmis.
Duomenų bazės kūrimas klientinėje
programoje MySQL Client
Vykdyti užklausą
Naudojamos duomenų bazės vardas
SQL užklausų
rašymo langas
Commands/Adminstration/DataBase/Create
Duomenų bazės kūrimas
Lentelių kūrimas
CREATE TABLE vartotojai(
ID int auto_increment not null primary key,
vardas char(30) not null,
slaptazodis char(30) not null,
email char(30) not null,
aprasymas char(100) not null
);
Sukūrėme lentelę, sudarytą iš 5 laukų (SHOW FIELDS FROM vartotojai;):
Įrašų kūrimas
INSERT INTO vartotojai VALUES
(null,'Gitana','gtn123','[email protected]',Inf. technologiju
destytoja');
INSERT INTO vartotojai(vardas,slaptazodis,email,aprasymas)
VALUES('Sergėjus', ‘serz', '[email protected]', ‘Kompiuteriniu
sistemu inzinierius');
Lentelę vartotojai papildėme įrašais (SELECT * FROM vartotojai;):
PHP ir MySQL
• PHP sudėtyje yra didelis rinkinys funkcijų, skirtų darbui
su duomenų bazėmis, pvz.:
mysql_connect(‘hostname’,’username’,’password’);
//prisijungiama prie MySQL;
mysql_select_db(‘manodb’);
//prisijungiama prie duomenų bazės;
mysql_query(‘select * from manodb’);
//vykdoma SQL užklausa;
PHP svetainės, naudojant MySQL,
kūrimo scenarijus
• Sukurti MySQL duomenų bazę, pvz: manodb;
• Duomenų bazėje sukurti reikiamas lenteles, bei užpildyti
jas reikiamais duomenimis, pvz. naudosime lentelę
vartotojai, kurioje yra įrašai:
• Sukurti reikiamus PHP puslapius, kuriuose PHP
skriptuose bus atliekamas jungimasis prie DB, bei įvairios
manipuliacijos su jos duomenimis;
Tinklapio pavyzdys
• Pradiniame puslapyje prašome užsiregistruoti (tikrinama, ar
duomenų bazės lentelėje vartotojai yra nurodytas vartotojas)
Tinklapio pavyzdys
• Registracijai pavykus pateikiamas
pranešimas:
Tinklapio pavyzdys
• Nauji vartotojai registruojami duomenų bazėje,
prieš tai patikrinus ar tokio paties vartotojo
duomenų bazėje nėra:
Tinklapio pavyzdys
• Registruotiems vartotojams pateikiamas
puslapis:
Tinklapio pavyzdys
• Puslapyje Apie lankytojus pateikiama
informacija iš duomenų bazės:
Tinklapio pavyzdys
• Puslapyje Chat galite paplepėti:
Nuorodos
• http://www.php.net – oficiali PHP svetainė {EN};
• http://www.php.lt - straipsniai PHP tematika (!PHP
diegimas) {LT};
• http://apm.izkom.ru - Apache, PHP, MySQL
pradenatiesiems {RU};
• http://kurepin.ru/php/ - PHP programavimo vadovėlis {RU};
• http://www.php4all.ru/ - PHP skirptai, dokumentacija;
• http://www.script.vanta.ru/ - PHP skriptų katalogas {RU};
• http://httpd.apache.org – oficiali Apache svetainė {EN};
• http://www.mysql.com – oficiali MySQL svetainė {EN};
PHP skripto pavyzdys
<?
$dabar = date(‘H’);
//datos funkcijos pagalba nuskaitomas laikas
echo “Dabar Lietuvoje “ . $dabar .”valandu<p>”;
if (($dabar >= 6) and ($dabar < 12)) {echo “Labas rytas”;}
if (($dabar >= 12) and ($dabar < 18)) {echo “Laba diena”;}
if (($dabar >= 18) and ($dabar < 24)) {echo “Labas vakaras”;}
if (($dabar >= 0) and ($dabar < 6)) {echo “Laba naktis”;}
?>
Skirtumas, lyginant su analogišku JavaScript’u tai, kad ši programa bus
vykdoma serveryje ir spausdint atitinkamą pranešimą pirklausomai nuo
serverio rodomo laiko.