12. php – 3.dio

27
M. Zekić-Sušac 1 12. PHP – 3.dio Funkcije date(), include(), rad s datotekama, mail

Upload: marsden-salazar

Post on 02-Jan-2016

55 views

Category:

Documents


1 download

DESCRIPTION

12. PHP – 3.dio. Funkcije date(), include(), rad s datotekama, mail. Date() funkcija u PHP-u. Koristi se ako želimo ispisati ili obraditi podatke o sistemskom datumu i vremenu Sintaksa: date(format, timestamp) Format – specificira format u kojem će biti ispisan datum (obavezno navesti) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 12. PHP – 3.dio

M. Zekić-Sušac 1

12. PHP – 3.dio

Funkcije date(), include(), rad s datotekama, mail

Page 2: 12. PHP – 3.dio

M. Zekić-Sušac 2

Date() funkcija u PHP-u

Koristi se ako želimo ispisati ili obraditi podatke o sistemskom datumu i vremenu

Sintaksa: date(format, timestamp)

Format – specificira format u kojem će biti ispisan datum (obavezno navesti)

Timestamp – specificira vremensku oznaku. Standardna oznaka je trenutni datum i vrijeme. Timestamp je broj sekundi od 1. siječnja 1970. u 00:00:00 GMT. (nije obavezno navesti)

Page 3: 12. PHP – 3.dio

M. Zekić-Sušac 3

Format datuma

U funkciji date() obavezno je navesti format vremena i datuma. U tu svrhu koriste se predefinirana slova, npr: d – dan u mjesecu, brojčano (01-31) m – tekući mjesec, brojčtano (01-12) Y – tekuća godina, četveroznamenkasto

U format se mogu upisati i znakovi “/”, “.” i dr, npr:<?php echo date("Y/m/d"); echo "<br />"; echo date("Y.m.d"); echo "<br />"; echo date("Y-m-d"); ?>

Rezultat ove skripte je prikaz:

2006/07/11

2006.07.11

2006-07-11

Page 4: 12. PHP – 3.dio

M. Zekić-Sušac 4

Vremenska oznaka (timestamp)

Za vraćanje sistemskog vremena i datuma koristi se funkcija mktime()

Sintaksa:mktime(hour,minute,second,month,day,year,is_dst)

Npr. ako želimo ispisati sutrašnji datum:<?php $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));echo "Sutra je “ . date("d/m/Y", $tomorrow); ?>

Rezultat skripte:Sutra je 14/05/2008

Page 5: 12. PHP – 3.dio

M. Zekić-Sušac 5

Funkcija include()

Ova funkcija omogućava umetanje sadržaja druge .php datoteke u trenutno aktivnu .php datoteku

Preporuča se koristiti ako postoje dijelovi web mjesta koji će se ponavljati na više web stranica, kao npr. zaglavlja, izbornici, i dr.

Takvi dijelovi se smještaju u posebne php datoteke i pozivaju iz osnovne datoteke, što omogućuje lakše ažuriranje, npr. ako želimo napraviti promjenu u izborniku, to treba učiniti samo u jednoj php datoteci u kojoj je izbornik.

Sintaksa:include(“naziv_datoteke”)

Page 6: 12. PHP – 3.dio

M. Zekić-Sušac 6

Primjer upotrebe include()

Primjer 11 - uključuje zaglavlje iz posebne datoteke:<html> <body><?php include("header.php"); ?><h1>Dobrošli na moju stranicu!</h1><p>Neki tekst</p></body> </html>

Sadržaj datoteke “header.php” može biti npr.:<h2><center>Odjel za matematiku</h2><img src="logo_web.gif">

Za provjeru ovog primjera kliknite na: PHP_primjer11.php

Page 7: 12. PHP – 3.dio

M. Zekić-Sušac 7

Primjer upotrebe include() - nastavak

Ako pogledamo u pregledniku IE izvorni kod datoteke PHP_primjer11.php, dobivamo ovo:

<html> <body>

<h2><center>Odjel za matematiku</h2><img src="odjel_matem.jpg"><h1>Dobrošli na moju stranicu!</h1><p>Neki tekst</p></body> </html>

Ovdje je automatski umetnut sadržaj druge datoteke: header.php

Page 8: 12. PHP – 3.dio

M. Zekić-Sušac 8

Rukovanje datotekama

Za otvaranje datoteke koristi se funkcija fopen(). Sintaksa:

fopen(“naziv_datoteke”, “mod_otvaranja”) The first parameter of this function contains the name

of the file to be opened and the second parameter specifies in which mode the file should be opened:<html> <body><?php

$file=fopen("welcome.txt","r"); ?></body> </html>

Page 9: 12. PHP – 3.dio

M. Zekić-Sušac 9

Načini otvaranja datotekaMod Opis

r Čitanje, od početka datoteke.

r+ Čitanje i pisanje, počinje od početka datoteke.

w Samo pisanje, prepisuje sadržaj datoteke ako postoji.

w+ Čitanje i pisanje, Read/Writeprepisuje sadržaj datoteke ako postoji.

a Dodavanje, otvara i piše na kraj datoteke, ili kreira novu ako ne postoji.

a+ Čitanje i dodavanje, dodaje novi sadržaj na kraj datoteke.

x Samo pisanje. Kreira novu datoteku. Vraća False i grešku ako već postoji.

x+ Čitanje i pisanje. Kreira novu datoteku. Vraća False i grešku ako već postoji.

Page 10: 12. PHP – 3.dio

M. Zekić-Sušac 10

Primjer otvaranja datoteke – fopen()

Primjer nastoji otvoriti datoteku, u slučaju da ne postoji, prikazuje poruku:

<html> <body><?php

$file=fopen("welcome.txt","r") or exit(“Ne mogu otvoriti datoteku!");

?></body> </html>

Za provjeru ovog primjera kliknite na: PHP_primjer12.php

Page 11: 12. PHP – 3.dio

M. Zekić-Sušac 11

Provjera da li je kraj datoteke – feof()

Za provjeru da li je dostignut kraj datoteke (eng. end of file - EOF) koristi se funkcija feof()

Korisna je ako treba učitavati podatke za koje ne znamo koliko ih ima, pa ih treba učitavati sve dok se ne dostigne kraj datoteke.

Napomena: Nije moguće čitati datoteke otvorene u modu: w i x!

Primjer: if (feof($file)) echo "Kraj datoteke";

Page 12: 12. PHP – 3.dio

M. Zekić-Sušac 12

Čitanje datoteke liniju po liniju – fgets()

Za čitanje iz datoteke liniju po liniju koristi se funkcija fgets() Nakon poziva ove funkcije, pokazivač se automatski premješta na početak nove

linije u datoteci. Primjer - čita liniju po liniju sve do kraja datoteke:<?php

$file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //Prikaz linije sve do kraja datoteke while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file);

?>Ako je npr. u datoteku welcome.txt upisano:

Ovo je prva poruka.Ovo je druga poruka.Ovo je treća poruka.

Za provjeru što će ispisati ovaj primjer kliknite na: PHP_primjer13.php

Otvaranje datoteke za čitanje

Ispis linije ako nije kraj datoteke

Page 13: 12. PHP – 3.dio

M. Zekić-Sušac 13

Čitanje datoteke znak po znak

Za čitanje podataka iz datoteke znak po znak, koristi se funkcija fgetc() Nakon poziva ove funkcije, pokazivač se automatski premješta na

početak nove linije u datoteci. Primjer - čita znak po znak sve do kraja datoteke:

<?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //Prikaz znakova sve do kraja datoteke while(!feof($file)) { echo fgets($file); } fclose($file);

?>

Page 14: 12. PHP – 3.dio

M. Zekić-Sušac 14

Pisanje u datoteku

Za pisanje u neku datoteku koristi se funkcija fwrite().

Funkcija vraća broj byte-ova podataka koji je upisan.

Sintaksa:fwrite(file,string,length)

File – naziv datotekeString – naziv varijable čija se vrijednost upisuje u datotekuLength – maksimalni broj byte-ova podataka koji će se upisati

(nije obavezno navesti)Napomena: da bi se moglo pisati u datoteku, ona mora biti prethodno

otvorena u odgovarajućem modu.S pomoću ove funkcije mogu se upisivati podaci u bilo kojem formatu

(ascii, binarni i dr).

Page 15: 12. PHP – 3.dio

M. Zekić-Sušac 15

Primjer pisanja u datoteku

Primjer 14 – Pisanje teksta u datoteku “test.txt”

<?php $file = fopen("test.txt","w"); echo fwrite($file,"Hello World. Testing!"); fclose($file); ?> Rezultat skripte će biti:21

Page 16: 12. PHP – 3.dio

M. Zekić-Sušac 16

Rukovanje mailom – mail()

Funkcija mail() koristi se za slanje el.pošte iz php skripte Sintaksa:

mail(to,subject,message,headers,parameters) To – specificira kome (na čiju e-mail adresu) se šalje poruka,

obavezno navesti Subject – specificira naslov poruke, obavezno navesti i to u jednoj

liniji koda Message – definira tekst poruke, obavezno navesti, svaka linija se

odvaja znakovima za line feed (\n). Linije ne smiju biti dulje od 70 znakova.

Headers – specificira dodatna zaglavlja, kao npr. From, Cc, and Bcc. Nije obavezno navesti. Ako se navode, treba ih odvojiti međusobno znakovima (\r\n)

Parameters – specificira dodatne parametre za slanje, nije obavezno navesti

Napomena: da bi se mogla koristiti ova funkcija, mora biti podešeno korištenje programa za mail u php.ini datoteci na poslužitelju

Page 17: 12. PHP – 3.dio

M. Zekić-Sušac 17

Slanje teksta mailom

Za primjer slanja običnog teksta mailom, najprije su deklarirane varijable ($to, $subject, $message, $from, $headers), zatim su one korištene u funkciji mail() za slanje putem e-maila:

<?php$to = "[email protected]"; $subject = "Test mail"; $message = "Hello! This is a simple email

message."; $from = "[email protected]"; $headers = "From: $from";mail($to,$subject,$message,$headers); echo "Mail Sent.";

?>

Page 18: 12. PHP – 3.dio

M. Zekić-Sušac 18

Primjer slanja teksta mailom

Primjer 15:<html><body><?php

$to = “[email protected]"; $subject = "Test mail"; $message = “Zdravo. Ovo je probna poruka."; $from = “[email protected]"; $headers = "From: $from";mail($to,$subject,$message,$headers); echo “Poruka je poslana.";

?></body></html>

Za provjeru ovog primjera kliknite na: PHP_primjer15.php

Page 19: 12. PHP – 3.dio

M. Zekić-Sušac 19

Slanje maila s pomoću obrasca (forme)

Ovaj primjer najprije prikazuje formu za unos podataka, zatim se na klik miša pozove druga php datoteka koja šalje podatke

Sadržaj datoteke PHP_primjer16.php

<html> <body><?php{

echo "<form method='post' action=‘salji.php'> Email: <input name='email' type='text' /><br /> Subject: <input name='subject' type='text' /><br /> Message:<br /> <textarea name='message' rows='15' cols='40'> </textarea><br /> <input type='submit' value='Pošalji'/> </form>";

} ?></body> </html>

Page 20: 12. PHP – 3.dio

M. Zekić-Sušac 20

Slanje maila s pomoću obrasca (forme) - nastavak

Sadržaj datoteke salji.php:<html><body><?php if (isset($_REQUEST['email'])) //ako je ispunjeno polje "email“ poruka se šalje {

$email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail(“[email protected]", "Subject: $subject", $message, "From: $email" ); echo “Hvala na Vašoj poruci!"; }

?></body></html>

Page 21: 12. PHP – 3.dio

M. Zekić-Sušac 21

Slanje sigurnog maila

Mail poslan u prethodnom primjeru nije siguran, već spam programi mogu u polja obrasca upisati npr. CC:, BCC: adrese više osoba i slati ih

Da bismo to spriječili, provjerava se polje upisano za email adresu, na način opisan na stranici:

http://www.w3schools.com/php/php_secure_mail.asp

Page 22: 12. PHP – 3.dio

M. Zekić-Sušac 22

Rukovanje greškama u PHP-u

Rukovanje greškama ili eng. error handling važno je kako bi se korisnika obavijestilo o vrsti greške koja se pojavila, ali i za kontrolu daljnjeg nastavka rada programa

Program bez rukovanja grešaka izgleda neprofesionalno, a također je izložen i sigurnosnim rizicima

Najčešći načini rukovanja greškama u PHP-u su: Jednostavne naredbe "die()" Samostalno kreirane greške (eng. custom errors) i okidači

grešaka (eng. error triggers) Izvještavanje o greškama

Page 23: 12. PHP – 3.dio

M. Zekić-Sušac 23

Primjer upotrebe die() funkcije

Ako želimo otvoriti datoteku, upisali bismo naredbu npr.:<?php $file=fopen("welcome.txt","r"); ?>

Ukoliko datoteka ne postoji, pojavit će se pokruka o grešci, npr. ovako:

Warning: fopen(welcome.txt) [function.fopen]: failed to open stream: No such file or directory in C:\webfolder\test.php on line 2

Kako bi se izbjegle ovakve greške, može se u kodu provjeriti da li datoteka postoji i korisniku prikazati drugačija poruka:

Page 24: 12. PHP – 3.dio

M. Zekić-Sušac 24

Primjer upotrebe die() funkcije - nastavak

<?php if(!file_exists("welcome.txt")) {

die(“Datoteka ne postoji"); } else {

$file=fopen("welcome.txt","r"); }

?> Ovakva provjera da li datoteka postoji ne ostavlja

korisnika s grubom porukom i ne prekida izvođenje aplikacije. Prikazat će se poruka “Datoteka ne postoji”.

Page 25: 12. PHP – 3.dio

M. Zekić-Sušac 25

Rukovanje izuzecima

Rukovanje izuzecima (eng. exception handling) koristi se za provjeru unosa podataka od strane korisnika, te omogućava poruku o grešci korisniku i nastavak rada.

Rukovanje izuzecima mijenja normalan tijek programa ako se dogodio neki izuzetak (neka specifična greška ili događaj koji onemogućava daljnji nastavak programa), npr. ako korisnik unese tekst umjesto broja, i dr.

Za rukovanje izuzecima koriste se ključne riječi:Sintaksa:

try {Ovdje naredbe kod kojih će se automatski provjeravati da li se dogodio

izuzetak}catch{Ovdje naredbe koje rukuju izuzetkom: ispisivanje poruke ili dr.}

Page 26: 12. PHP – 3.dio

M. Zekić-Sušac 26

Primjer rukovanja izuzecima<?php //funkcija koja provjerava da li je vrijednost manja od 1 function checkNum($number){

if($number>1) { throw new Exception("Value must be 1 or below"); }

return true; } try {

checkNum(2); /} catch(Exception $e) {

echo 'Message: ' .$e->getMessage(); } ?>

Page 27: 12. PHP – 3.dio

M. Zekić-Sušac 27

Literatura:

W3C, PHP Tutorial, http://www.w3schools.com/php/, 28.04.12.