Professional Documents
Culture Documents
4 Cgi, PHP
4 Cgi, PHP
programiranje
Prof. dr Milena Stanovi
Doc. dr Ivan Petkovi
Arhitektura Web aplikacija
HTTP
Vieslojne Web aplikacije
Model i logika
domena
request stdin
Env. vars
HTTP
Client CGI App
Server stdout
response
stderr
Web server alje CGI programu/skripti :
Podatke sa klijenta (dobijenih GET ili POST metodom)
postavlja standardni ulaz
Kontekst (IP adresu klijenta, zaglavlje zahteva, ...)
postavlja promenljive okruenja
CGI program alje web serveru rezultat (HTTP
zaglavlja i HTML stranu) preko standardnog
izlaza
Hello World CGI u C-u
#include <stdio.h>
int main(void) {
printf("Content-Type: text/plain;charset=us-
ascii\n\n");
printf("Hello world\n\n");
return 0;
}
Procesiranje formi
PHP
Instaliran kao Apache modul (server API, bre) ili
CGI modul (sigurnije)
Sintaksa slina C, Javascript ili Perlu
Jezik dinaminih tipova
PHP - zastupljenost
Superglobalne
promenljive
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
$GLOBALS
Asocijativni niz globalnih promenljivih
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
$_SERVER
Sadri informacije o zaglavljima, putanjama,
skriptama.
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
$_REQUEST
Sadri podatke poslate sa klijeta preko GET ili POST
metode
<html>
<body>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
$_POST, $_GET
$_POST sadri informacije poslate sa klijenta
preko POST metode
$_GET sadri informacije poslate sa klijenta preko
GET metode. Takoe moe da prikupi informacije
sadrane u adresi (querystring)
Slanje podataka serveru
<FORM> element; GET, POST metod => asocijativni niz
podataka
GET:
podaci su vidljivi u adresi (querystring), tj. adresa sadri
poslate podatke
Primer lokacije u Google mapama
https://www.google.com/search?sourceid=chrome&ie=UTF-
8&q=web+programming
POST:
Slanje vee koliine podataka
Slanje osetljivih podataka (ifre)
Slanje binarnih fajlova (slike, itd)
Podaci se ne vide u adresi
Slanje podataka serveru
<form action=data1.php>
<input type=text name=ime
value=Ana />
GET ili POST
<input type=text ime : Ana
Serve
name=prezime prezime : Jovanovic
value=Jovanovic /> podatak1: neka r
<input type=hidden vrednost
name=podatak1 value=neka
vrednost />
</form>
Klase i objekti u PHP-u
class Animal
{
public $blood;
public $name;
public function __construct($blood1, $name1=NULL)
{
$this->blood = $blood1;
if($name) { $this->name = $name1; }
}
}
Object-Relational
Mapping
Preslikava objekte u
relacionu bazu:
klasa => tabla
objekat => red u tabeli
Veina PHP okruenja
podrava ORM