Nakon osnovnog upoznavanja sa PHP jezikom i njegovom sintaksom, konaฤno prelazimo na neke ozbiljnije stvari. U ovom i nekoliko narednih priloga obradiฤemo temu „slanje e-mail poruka uz pomoฤ PHP-a“, koja uopลกte nije „teลพak zalogaj“. Prolaskom kroz ovu temu, prodiskutovaฤemo i joลก nekoliko pitanja, kao ลกto su: prikaz „rezultujuฤe“ stranice, validacija ulaznih podataka itd. Radeฤi na ovom „e-mail“ skriptu, javiฤe vam se viลกe ideja kako da ga upotrebite i ฤime moลพete da ga dopunite. Za poฤetak, evo i same sintakse PHP „mail“ instrukcije:
mail ([primalac], [tema], [telo_poruke], [zaglavlja]);
Kao ลกto vidite, nema niฤega ลกto bi trebalo da vas uplaลกi. Ako ste veฤ napredniji PHP „skripter“, u ovom trenutku ฤete veฤ znati ลกta dalje raditi. Ali, ako ste totalni poฤetnik, onda je je ovo pravo mesto za vas. Evo i koje taฤke ฤemo obraditi kroz ovu temu:
- Provera, da li se poziv e-mail forme i izvrลกenje, vrลกi sa vaลกeg sajta, a ne sa neke druge lokacije.
- Dinamiฤko kreiranje tela e-mail poruke.
- Osnovna provera greลกaka i provera popunjenosti svih polja (validacija).
- Kreiranje „rezultujuฤe“ stranice i „rezultujuฤe“ stranice u sluฤaju greลกke.
- Kreiranje mail forme.
Kreฤemo sa prvom taฤkom, a to je detekcija „poลกiljaoca“. Ovo je vrlo vaลพna taฤka, jer ako ne implementirate ovu moguฤnost, neki zlonamerni PHP „skripteri“ mogu lako da iskoriste vaลกu web mail formu za slanje velikog broja spam poruka. Neฤemo vam prikazati, i kako se to radi, ali verujte – lakลกe je nego ลกto mislite. Dosta teoretisanja, imamo „puno posla“, pa zato prelazimo na konkretne stvari. Prvo, na prethodnu liniju PHP koda „nakalemiฤemo“ jedno uslovno „if…then“ grananje, tako da moลพemo zaustaviti slanje e-mail-a u sluฤaju da neลกto nije u redu:
if (!$greska) {
mail ([primalac], [tema], [telo_poruke], [zaglavlja]);
}
Izleda veฤ komplikovanije, zar ne? Potom, ฤemo preฤi na deo koji je vazan za odaลกiljaoca poruke, gde prvo kreiramo promenljivu – niz:
$odasiljaoci = array (‘krstarica.com’,’www.krstarica.com’);
Gornjom linijom kreiramo niz u kome se nalaze nazivi domena sa kojih ฤe biti dozvoljeno izvrลกavanje e-mail skripta. Nije bitno kojim redom navedete elemente niza, a umesto naziva domena moลพete koristiti i IP adrese datih domena. Sledi PHP kod koji proverava da li se odaลกiljalac nalazi u naลกem nizu dozvoljenih odaลกiljaoca ($odasiljaoci):
$privremeni = explode("/",getenv("HTTP_REFERER"));
$brojac = 0;
while($brojac < count($odasiljaoci)){
if (ereg($odasiljaoci[$brojac], $privremeni[2])) {
$ispravno = "true";
}
$brojac++;
}
if ($ispravno != "true") { $autorizacija .= "neautorizovan "; }
Da vidimo ลกta se tu deลกava:
- Potencijalni poลกiljalac se ubacuje u niz „$privremeni[ ]“.
- Petljom proveravamo poลกiljaoca, tako ลกto uporeฤujemo domen iz varijable „$privremeni[ ]“ sa predefinisanim vrednostima iz niza „$odasiljaoci[]“.
- Ukoliko se neki od domena iz niza „$odasiljaoci[]“ poklopi sa prosleฤenim domenom, prolazi se kroz ovu „kontrolnu taฤku“ i varijabli „$ispravno“ dodeljuje se vrednost „true“.
- Poslednja instrukcija u „if…then“ instrukcija jednostavno popunjava varijablu „$autorizacija“ sa stringom „neautorizovan“, u sluฤaju da neko koristi e-mail formu sa drugog servera.
Pratite Krstaricu na www.krstarica.com