Pozdrav!
Khm, khm... Mozda resenje za tvoj problem lezi na sasvim drugim putevima.
Mislim, prethodni savet je sasvim OK, a ja ti predlazem da pogledas nesto o metodologijama. Za pocetak baci oko na FuseBox:
http://www.fusebox.org/ a ako ti se to prisvidi, mozes da krenes dalje.
O cemu se tu radi?
FuseBox je stil programiranja primenjiv u mnogim jezicima... a podrzava i MVC i jos ponesto...
Da maksimalno banalizujem:
- svaki modul tvog sistema je Box (dakle: VESTI su jedan Box, NEKRETNINE su drugi Box, LOGIN/LOGOUT/AUTHORIZATION je sledeci Box itd...)
- svaki Box ima svoj direktorijum
- svaki direktorijum ima index.php (ili index.asp ili index.html ili koji_god_vec_jezik_korstis) fajl!!! (Ovim se resava M N O G O toga. Pocev od kontrole pristupa folderu pa na dalje... )
- svaki Box ima neke akcije koje se obavljaju u njemu - FuseAction (kod tebe bi bilo fuseaction=snimi_vest, fuseaction=obrisi_vest, itd...)
- svaki index fajl u sebi ima samo SWITCH(fuseaction) (u okviru koga su INCLUDE direktive)
- sa INCLUDE pozivas delove koda koji se izvrsavaju na odnovu fuseaction
- itd, itd...
- U okviru metode postoje jos mnoge lepe stvari: oblast vazenja parametara iz GET,POST,SESSION,FILE...
- Maksimalan code-reuse!!! Kao sto i sam zakljucujes, mnoge akcije se ponavljaju u raznim delovima sajta; npr brisanje necega iz baze. Napises jednom kod (ili upotrebis vec gotovu klasu) koji brise iz tabele polje sa zadatim ID-om. A kasnije, kada je potrebno, samo pozivas tu funkciju/klasu i prosledjujes samo ime tabele i ID. Tako sa jednom jedinom funkcijom imas brisanje iz baze na celom sajtu! Ili, i unos novih i izmena postojecih podataka se moze raditi iz jedne iste forme. Ili... zapravo, sve sto se moze ponoviti!
Dakle, resenje tvog problema bi (u ovom trenutku, hipoteticki gledano) bilo:
-------------------------------------------------------------------------------------
index.php - u root-u site-a
...
// ovde ide settings i get_parametars
SWICH($fusebox){
case "vesti":
include(/relativna_putanja_do_boxa_ili_ako_ti_bas_volja_do_index-a_u_boxu);
break;
case"nekretnine":
include(/relativna_putanja_do_boxa);
break;
case"login":
include(/relativna_putanja_do_boxa);
break;
case"sta_god_vec":
include(/relativna_putanja_do_boxa);
break;
Default:
include(/relativna_putanja_do_error_boxa)
}
...
-------------------------------------------------------------------------------------
index.php - u boxu VESTI
... // seetings, getparameters
SWICH($fuseaction){
case "snimi_vest":
include(/relativna_putanja_do_fajla_gde_radis_obradu_za_simanje);
// u okviru prethodnog fajla odradis i proveru da li je sve proslo kako treba i postavis npr $error
if ($error) {
include(/relativna_putanja_do_fajla_gde_se_prikazuju_obavestenja);
} else {
include(/relativna_putanja_do_fajla_gde_se_prikazuju_podaci_ili_neki_template);
}
break;
case"obrisi_vest":
include(/relativna_putanja_do_fajla_gde_se_provera_za_brisanje);
// ako je moguce brisanje postavis $indikator
if ($indikator) {
include(/relativna_putanja_do_fajla_gde_se_prikazuju_obavestenja);
} else {
include(/relativna_putanja_do_fajla_gde_se_vrsi_brisanje);
include(/relativna_putanja_do_fajla_koji_se_prikazuje_po_uspesnom_brisanju);
}
break;
case"unesi_novu_vest":
...
break;
case"sta_god_vec":
....
break;
Default:
include(/relativna_putanja_do_error_boxa)
}
...
-------------------------------------------------------------------------------------
A u samim fajlovima idu delovi koda... hm... pa tvoj kod :)
-------------------------------------------------------------------------------------
E, sad... u okviru FUSEBOX-a postoji gotova php klasa koja ima implementirane mnoge metode. Jedna od njih je i sakupljanje svih mogucih parametara sa stranice tako da imas u jednom nizu i sve iz POST-a i iz GET-a i iz SESSION-a i iz ... samo moras voditi racuna da su ti imena polja i nazivi u url-u i sesiji jedinstveni.
Dakle, ti nista ne brines o tome kako preneti parametre. Dovoljno je da ih imas (ili u formi ili u url-u) a klasa ce ih pokupiti i servirati ti ih na sledecoj strani ma koja on bila...
PS. Znam da je sve ovo konfuzno na pocetku ali kada probas jednom, i kada se steknes osnovne pojmove zapitas se: KAKO LI UOPSTE LJUDI ZIVE BEZ OVOGA?????
PPS. Ako gledas sajt nemoj da te zbuni sto je skoro sve pisano za ColdFusion... Postoji to isto i za PHP i za ASP i za JSP i za... Bitna je metoda!!!