[ dimke7even @ 06.07.2007. 22:06 ] @
Pozdrav svima :)

Imam u CMS-u neke skripte koje sluze za promenu imena sadrzaja, brisanje sadrzaja, editovanje itd...

Te skripte se pozivaju samo po potrebi i kada se izvrse treba da vrate browser na stranicu koja prikazuje objekat koji se menjao tj njegov novi Property.

Problem je u tome sto ne mogu da koristim f-ju header() jer svaka skripta zahteva da ukljucim fajl dbaccess.php u kome se nalazi klasa za rad sa bazom.

Za sada stranice preusmerujem uz pomoc javascript-a (document.location.href="...") ali to je katastrofa da ne objasnjavam zasto...

Da li se stranice mogu preusmeravati nekako drugacije, brez f-je header() ?

Ili moram da u svakom skriptu definisem klasu dbacces da izbegnem require_once() :) ?
[ kelja @ 06.07.2007. 22:16 ] @
Ja to radim ovako najcesce:
Code:

if($nesto_se_desilo){echo"<script>alert('Data Changed!');</script>// opcioni js deo 
<META http-equiv='refresh' content='0;URL=neka_strana.php'>";}
[ dimke7even @ 07.07.2007. 13:07 ] @
jeste elegantnije, hvala puno :)
[ djordje @ 09.07.2007. 16:12 ] @
Naravno da JS nije elegantnije resenje od header(). Zasto ne bi preusmeravao sa header()? Ako ti fajlovi koje inkludujes daju neki output pre poziva header() onda ti je citav koncept los. Pisi aplikacije da prvo "odrade sav posao", pa tek onda stampaj na ekran sa echo.
[ afwt @ 09.07.2007. 17:08 ] @
Da, "klasa za rad sa bazom" ne mora da pljuje nista. Vidi sta ti je sa tim dbaccess.php fajlom, ne treba taj nista da pljuje, a pogotovo ne ako samo radi s bazom...
[ djordje @ 09.07.2007. 17:18 ] @
pa ni jedna klasa u sustini ne treba da pljuje nista osim ako joj se eksplicitno ne naredi :) Bar tako ja shvatam OO u PHP...
[ broker @ 09.07.2007. 19:10 ] @
Eee, ali dovoljan je samo jedan SPACE iza ?> ili cak jedna prazan red da te izlomi ko mladog majmuna :)
[ Jezdimir Lončar @ 09.07.2007. 23:07 ] @
Da, znaci, u vecini slucajeva u klasi ne moras da koristis echo.
E sad, sto se tice opcija za redirecting , evo ovako:
Header (php, funkcija: header() ): Veoma jednostavno i veoma preporucljivo.
Mana: ne moze da se koristi kad imas output prije poziva.
Primjer koda:
Code:

header("location: file.php");
exit;

JavaScript (window.location.href): Preporucljivo kad imas neki output. Moze da se kombinuje sa alert i confirm funkcijama.
Mane: 1. Ako korisnik nema ukljucen javascript (sto je rijetko slucaj), onda nece moci da ga preusmjeri.
2. Ako hoces da odredis posle koliko sekundi hoces da korisnika redirektujes, kod se komplikuje.
Primjer koda:
Code:

window.location.href = "file.php";

HTML (<meta> tag): Hm... Ovo ja najcesce koristim pored header-a.
Mane: koliko je meni poznato nema istih.
Primjer koda:
Code:

<meta http-equiv="refresh" content="0;URL=file.php" />


Eto toliko.
Ti vidi sta ti najvise odgovara.
Pozdrav!
[ djordje @ 10.07.2007. 00:55 ] @
Citat:
Mana: ne moze da se koristi kad imas output prije poziva.


A to je jedino potrebno kada zelis da preusmeris korisnika nakon nekog vremena. Tada je neizbezan (nije ali je najbolji) JS
[ Nemanja Avramović @ 10.07.2007. 11:20 ] @
Nije najbolji JS, jer JS može da bude isključen. Ako hoćeš korisnika da preusmeriš posle recimo 3 sekunde, postaviš ovako:

Code:
<meta http-equiv="refresh" content="3;URL=file.php" />


A ako koristiš JS, uvek možeš da staviš običan link između <noscript> tagova
[ Br@nkoR @ 10.07.2007. 12:36 ] @
Citat:
[url=/p1634687]Neohacker
HTML (<meta> tag): Hm... Ovo ja najcesce koristim pored header-a.
Mane: koliko je meni poznato nema istih.
Primjer koda:
Code:


<meta http-equiv="refresh" content="0;URL=file.php" />


Takođe može biti isključen u browseru.
[ dimke7even @ 10.07.2007. 13:01 ] @
Za Brokera:
Broker hvala puno imao sam prazan red izmedju <?php i header()- i izlomilo me ko majmuna!
Sad sam sredio skripte i mnogo je bolje kakav JS kakvi bakraci, stvarno mislim da je bolje da se cela obrada vrsi na serveru

Hvala svima na predlozima!
[ bzero @ 10.07.2007. 13:04 ] @
Citat:
Neohacker:
HTML (<meta> tag): Hm... Ovo ja najcesce koristim pored header-a.
Mane: koliko je meni poznato nema istih.


Pa sad bas i nije da nema mana, cak se ponegde i toplo preporucuje da se izbegava:

http://www.w3.org/QA/Tips/reback
[ Nemanja Avramović @ 11.07.2007. 09:57 ] @
Zato ja koristim ovako nešto

Code:

function redirect($url) {
    //redirect function by Avram, www.avramovic.info
    if (!headers_sent()) {
        header('HTTP/1.1 301 Moved Permanently');
        header('location: ' . $url);
        die();
    } else {
        die("<script type='text/javascript'><!--\n
    location.href='$url';\n
    //--></script>\n
    <noscript>\n
    <meta http-equiv='refresh' content='0;url=$url'>\n
    <a href='$url'>Click here</a> to continue...\n
    </noscript>");
    }
}
[ dimke7even @ 11.07.2007. 12:15 ] @
:))) Ova f-ja je extra, ako neces milom...
[ deximat @ 12.07.2007. 01:18 ] @
Ja sam cuo da google ne ocenjuje lepo sajtove sa redirekcijom...