250 likes | 481 Views
Programiranje. Programski jezici 101. Programske jezike svrstavamo u više grupa : - Web jezici ( ASP.NET, PHP ) - Desktop jezici ( C, C++, C# ) - SQL ( jezik za rad s bazama podataka) - Masovne primjene ( JAVA ) - Šaljivi jezici ( LOLCODE, Brainfuck). Web jezici . PHP
E N D
Programski jezici101 • Programske jezike svrstavamo u više grupa : • - Web jezici ( ASP.NET, PHP ) • - Desktop jezici ( C, C++, C# ) • - SQL ( jezik za rad s bazama podataka) • - Masovne primjene ( JAVA ) • - Šaljivi jezici ( LOLCODE, Brainfuck)
Web jezici • PHP • Hypertext Preprocessor • Serverskiprogramskijezik široke namjene • Ima sintaksu sličnu C-u • Može bit umetnut u HTML kod • HTML • Hypertext Markup Language • Jednostavan, “ human readable “ jezik • HTML element su osnova svake web stranice
Web jezici • JavaScript • Klijentski programski jezik ( izvršava se u pretraživaću korisnika ) • Koristi se za povećanje interaktivnosti s korisnikom • ASP(.NET) • Active Server Pages • Proizvedena od strane Microsofta • ASP.NET je sljedeća generacija ASP-a
Desktop jezici • C • Najzastupljeniji desktop programski jezik široke namjene • Prvi put se pojavio 1972. godine • Ima mnogo implementacija i služi kao osnova za mnoge buduće programske jezike • C++, C# • Sljedeće generacije C-a okrenute objektno orjentiranom programiranju • C++ je jezik iz kojeg su sastavljeni Windowsi • C# je Microsoftov programski jezik
( Zastarjeli ) Desktop jezici • Assembly • Low Level programski jezik ( nije portabilan) • Koristi se za programiranje rada računala, mikroprocesora, mikrokontrolera, i ostalih programabilnih uređaja • Fortran • Prvi put se pojavljuje 1957. godine te je masovno prihvaćen od strane IBM-a, Intel-a, Oracle-a, Fujitsua • U prvom redu napisan za znanstveno računanje
SQL jezici • Structured Query Language • Prvi put se pojavljuju 1974. godine • Služe za rad (komunikaciju) sa bazama podataka • Odlikuju se statičnošću i jačinom • Podržava umetanje , mjenjanje , brisanje podataka, upravljanje strukturom baze, i kontrolu pristupa podacima • Proceduralni (neobjektni) pristup rada
Masovna primjena ( JAVA ) • Objektno orijentirani programski jezik sastavljen od strane Sun Microsystems-a • Najzastupljeniji programski jezik, nalazimo ga svugdje: televizije, mobiteli, radio uređaji, kućanski aparati, u automobilima, pojačalima i mnogim drugim. Njegova sintaksa je inspirirana od strane C++, Delphi-a, Pascala, a njime su inspirirani C#, JavaScript, PHP, Pyton, i drugi
Šaljivi jezici • LOLCODE • Ezoterični programski jezik sastavljen 2007. godine • Napisan kao šala, ali ipak je našao svoju grupu korisnika • Ima vrlo ograničenu upotrebu • Filename ekstenzija .lol • Hello World primjer: • HAI • ( početak programa ) • CAN HAS STDIO? • ( upotreba standardne input / output biblioteke, ekvivalent #include <stdio.h> ) • VISIBLE “HAI WORLD!“ • ( prikazuje poruku “HAI WORLD” na ekranu ) • KTHXBYE • ( završava program, literalno: ok, thanks, bye)
LOLCODE nastavak • HAI • CAN HAS STDIO? • PLZ OPEN FILE “LOLCATS.TXT”? • AWSUM THX • VISIBLE FILE • O NOES • INVISIBLE “ERROR!” • KTHXBYE • LOLCODE primjer sa jednostavnim if/else (ako/inače) zahtjevom kojim se pokuša otvoriti file ( PLZ OPEN FILE – pokušaj otvoriti ovaj file ), AWSUM THX ako je uspješno, ili O NOES ako nije uspješno
Web jezici • HTML • Osnova svake web stranice, opisuje strukturu i značajke (properties) stranice, kao npr. : ključne rječi, opis, standard po kojem je stranica pisana, i drugo. • Kako izgleda kod tablice u HTML-u: • <table width=“100px” height=“50px” align=“center”> • <tr> • <td>tekst</td> • </tr> • </table> • Ovaj kod crta tablicu širine 100 piksela, visine 50 piksela, i nalazi se na sredini stranice, i ima jedan redak (row) unutar kojeg je tekst ”tekst”
Web jezici • CSS • Cascading Style Sheets • Služi kao jezik kojim se manipulira izgled web stranice (izgled i formatiranje) • Može biti korišten van HTML-a (XML, SVG, i drugi.) • Primjer formatiranja linkova u CSS-u: • a:hover { • Color: red; • } • A:active { • Color: blue; • } • Ovaj će kod linkovima promjeniti boju u crveno kada pređemo mišem preko njih, te zaplaviti kada kliknemo na njih (focus)
Web jezici • JavaScript • Klijentski programski jezik (izvršava se u pretraživaću) izumljen 1995. godine • Ne postoji jamstvo da će se JavaScript kod izvršiti u pretraživaću (jer korisnik može isključiti u pretraživaću izvršavanje JS koda) • Često se koristi u web stranicama i izvan njih • Kada je korišten u web stranicama on se najčešće koristi za iskakanje novih prozora, provjeru (validiranje) inputa, efekte i mnogo više • Kada je korišten izvan web stranice onda se najčešće koristi kao ekstenzija postojećim aplikacijama
Web jezici • “Hello World” JavaScript primjer: • <script type=“text/javascript”> • Document.write(‘hello world’); • </script> • <noscript> • Ovo se izvršava ako pretraživać ne podržava JavaScript • </noscript> • Važno je napomenuti i AJAX (Asynchronous JavaScript and XML), grupu usko povezanih metoda za izvršavanje asinkronih (procesiranje koje dozvoljava drugim procesima da se nastavljaju izvršavati prije nego što se prijenos završi) zadaća.
Osnove Programiranja • Svaki programski jezik se sastoji od varijabli, funkcija, petlji, konstanti, uvijeta, i drugo. Moderniji programski jezici podržavaju objektno orijentirano programiranje (OOP). Slijede primjeri u PHP-u, čija je sintaksa slična mnogim drugim programskim jezicima ( najviše C-u, iz kojeg je napravljena). • Primjer varijeble: • $imevarijable = “sadržaj varija”ble”; • Primjer stvaranja nove funkcije: • Function primjer($unos) { • Echo “Unos: $unos”; • } • Primjer konstante, najčešće se pišu velikim slovima: • NASA_KONSTANTA = ‘sadrzaj’; • Primjer OOP – a, tj. klase: • Class primjer { • $varijabla; • Function primjer() { • // nista se ne izršava • } • }
Osnove Programiranja - nastavak • Uvjeti – if / elseif / else • Define(‘KONSTANTA’, 1); • If (KONSTANTA == 2) { • // ovo se ne će izvršavati jer KONSTANTA nije 2 • } elseif (KONSTANTA == 1) { • // ovo će se izvršavati • } else { • // ovo se ne će izvršavati, a izvršavalo bi se kada nijedan prijašnji uvjet nije zadovoljen • } • Petlje (loops) • Kao najjednostavniji primjer koristiti ćemo while petlju. Ona se izvršava sve dok je uvjet u zagradi istinit. • $i = 0; • While ($i < 10) { • // ovo će se izvršavati dok god je $i manji od 10 • $i++; • // $i se svaki put poveća za 1 • } • Važno je petlju učiniti non-infinite, tj. spriječiti da se ona beskonačno ponavlja.
Web jezici :: PHP • Otvorenog koda, široke primjene i specijaliziran za razvoj web aplikacija i može biti ugrađen u HTML. • Sintaksu preuzeo iz C-a, u kojem je i napisan. • Prvi put se pojavljuje 1995. godine • Inicijalno izdan od strane Rasmusa Lerdorfa, sada PHP grupe • Radi na više platforma (Windows, Linux, Mac OSX, Solaris) • Uobičajne ekstenzije: .php, .phtml, .phps
Web jezici :: PHP • Hello World primjeri <? // ovo je komentar. Prvi primjer: Echo “Hello World!”; /* drugi primjer: */ $varijabla = “Hello “; Echo $varijabla . “World”; # treći primjer: Print “Hello World”; ?> • Echo() funkcija se koristi za ispis podataka na ekranu. U drugom primjeru uveli smo varijable, no rezultat je jednak, samo što je string (skup znakova, slova i brojki) “Hello” sadržan u varijabli $varijabla. • Funkcija print() ekvivalentna je funkciji echo().
Web jezici :: PHP • U sljedećem primjeru demonstriramo jednostavan PHP program pomoću kojeg vidimo koliko je puta stranica pogledana. Rezultati se spremaju u file log.txt. • <? • // ime filea • $ime = “log.txt”; • // dohvaćamo trenutnu vrijednost • $vrijednost = file_get_contents($ime); • // povećamo je za jedan • $vrijednost++; • // umećemo novu vrijednost u log.txt • File_put_contents($ime, $vrijednost); • // prikazujemo novu vrijednost • Echo “Broj Posjeta: “ . $vrijednost; • // alternativni način prikazivanja vrijednosti • Printf(‘Broj Posjeta: %d’, $vrijednost); • ?>
Web jezici :: PHP i Baze Podataka • U sljedećem primjeru prikazujem upotrebu PHP-a i SQL jezika za komunikaciju s MySQL bazom podataka (data base). Koristiti ćemo moderno objektno orijentirano programiranje, te već interno implementirani mysqli objekt. Dostupno od četvrte verzije PHP-a. <? • // iniciramo novi MySQL objekt • $db = new mysqli(‘_lokacija baze_’, ‘_korisničko ime_’, ‘_lozinka_’, ‘_ime baze_’); • // provjeravamo da li je veza uspješna • If ($db->connect_error) { • // ako nije, prekini izvršavanje programa • Die (‘Neuspješno spajanje’); • } • /* naredba koju ćemo predati MySQL poslužitelju. Ako zamislimo da je baza ispunjena korisnicima, želimo prikazati koliko je osoba kojima je ime Ivan */ $sql = “SELECT * FROM _ime baze_ WHERE ime = ‘Ivan’”; • // izvršavamo naredbu • $q = $db->query($sql);
... nastavak • /* provjeravamo postoji li osoba sa imenom Ivan u bazi podataka */ • $provjera = $db->num_rows($q); • If($provjera == 0) { • Die (‘Korisnik ne postoji’); • } else { • /* korisnik postoji, izbacujemo broj ljudi sa imenom Ivan u bazi podataka */ • Echo $provjera; • } • // oslabađamo memoriju • $db->free($q); • // zatvaramo vezu sa MySQL poslužiteljom • $db->close(); • ?>
Web programiranje :: Jednostavna HTML i PHP forma • <html> • <body> • <form action=“Rezultat.php” method=“post”> • <input type=“text”name=“ime”> • <input type=“submit”name=“pokrenuto”> • </form> • <!– ovo je primjer komentara u htmlu --> • </body> • </html> • Forma.html • <? • If ($_POST[‘pokrenuto’]) { • $ime = $_POST[‘ime’]; • Echo “Vaše ime je $ime.”; • ?> • Ova jednostavna PHP aplikacija ispisuje na ekran uneseno ime, ako je forma pokrenuta. • Rezultat.php
Web programiranje - Sigurnost • Sigurnost je vrlo bitan dio programiranja. Vrlo je bitno provjeravati unose korisnika, jer bi u suprotnome korisnik vrlo lako mogao srušiti web stranicu, neovlašteno manipulirati bazom podataka te čak srušiti web server. • Primjer zaštite od neovlaštenih unosa korištenjem PHP funkcije addslashes(). Ta će funkcija dodati znak \ ispred svakog apostrofa (‘) kako bi se spriječilo injektiranje malicioznog koda. • $unos = addslashes($_POST[‘neki-korisnikov-unos’]); • Sljedeći primjer zaštite koristi funkciju htmlentities() kako bi se potencijalno zloćudni specijalni znakovi pretvorili u njihov bezopasni ekvivalent. Varijabla $unos je već definirana. • $unos = htmlentities($unos); • Mysqli objekt već ima unaprijed definiranu funkciju za zaštitu od malicioznog injektiranja. • $unos = mysqli::real_escape_string($unos);
Programiranje - KTHXBYE • Programiranje, iako se čini drukčije, vrlo je abstraktna vještina.