Autor | Zpráva | ||
---|---|---|---|
capricorn Profil |
#1 · Zasláno: 5. 10. 2008, 13:45:26
Zdravim, lze nejak docilit toho, ze pri kazdem nacitani indexu se vykona cast kodu, presmeruje se na 303 a po presmerovani se vykona zbytek kodu v indexu?
|
||
joe Profil |
#2 · Zasláno: 5. 10. 2008, 13:54:00
Snad by mohlo fungovat tohle.
<?php ob_start(); vykonání kódu... přesměrování ?> |
||
capricorn Profil |
#3 · Zasláno: 5. 10. 2008, 14:05:57
joe
Jasne, tohle je mne jasne, ale u tohoto zpusobu se vytvari smycka. |
||
Perry Profil |
#4 · Zasláno: 5. 10. 2008, 15:39:49
Moc nechápu ani tvojí puvodni myslenku...
Mas stranku, na ni se udela kus kodu->presmerovani na 303 (coz ted zrovna nevim, co znamena, ale detail :))->... ???? a pak co |
||
Andre Profil |
#5 · Zasláno: 5. 10. 2008, 16:22:39
Jestli jsem to dobře pochopil tak si najdi funkci return
|
||
joe Profil |
#6 · Zasláno: 5. 10. 2008, 16:34:47
capricorn
Pravda, tak to mě teď nic rozumného nenapadá, třeba poradí někdo zkušenější. A proč to potřebuješ? A není možné přesměrovat na jinou stránku? |
||
ninja Profil |
#7 · Zasláno: 5. 10. 2008, 17:37:28
Tak pri presmerovani pridej get parametr "presmerovat=ne" a ten pak testovat.
|
||
srigi Profil |
#8 · Zasláno: 5. 10. 2008, 17:39:18 · Upravil/a: srigi
Slo by to pomocou jednoducheho GET
index.php <?php if (!isset($_GET['once'])) { // vykonaj // bla // bla // bla header("Location: /index.php?once=true")]http://$_SERVER[SERVER_NAME]/index.php?once=1", true, 303); die; } // vykonaj veci po presmerovani echo "Vytaj znova"; |
||
joe Profil |
#9 · Zasláno: 5. 10. 2008, 17:55:05
capricorn
Je to tak jednoduché, jak napsali ninja & srigi. Ale jak to udělat, kdyby adresa měla být pořád stejná? A žádný parametr v adrese... ;) Alespoň tak jsem to pochopil já. |
||
capricorn Profil |
#10 · Zasláno: 5. 10. 2008, 18:32:32
Testovat pomocnou promennou funguje do te doby nez ji rucne smazu v adresnim radku. Existuje vubec nejaky zpusob, abych nemusel pouzivat pomocnou promennou? Jedna se mne o to, abych mohl ihned v indexu kontrolovat url po jeji kontrole by doslo k presmerovani na 303 a pokracovani behu kodu. Pokud smazu rucne pomocnou promennou, jak jsem jiz uvedl, tak k zadne kontrole url nedojde a to je spatne.
|
||
capricorn Profil |
#11 · Zasláno: 5. 10. 2008, 18:44:02
joe
Pokud nebude v url zadny parametr, tak k zadnemu presmerovani nedojde a kod by mel bezet dal. Proste vsechno, co bude za "?" se bude kontrolovat, po kontrole se vytvori url a dojde k presmerovani. |
||
ninja Profil |
#12 · Zasláno: 5. 10. 2008, 20:35:00
Misto GET lze pouzit SESSION, respektive COOKIES.
|
||
joe Profil |
#13 · Zasláno: 5. 10. 2008, 22:23:01
ninja
To už raději ten GET. Sessions nejsou v tomhle případě vhodnou volbou a mohlo by to způsobit zacyklení. |
||
capricorn Profil |
#14 · Zasláno: 6. 10. 2008, 11:54:39
Pres SESSION by se to mohlo udelat asi takto:
if(!isset($_SESSION['once'])){ //kontrola url $_SESSION['once'] = true; header(); exit(); } // vykonaj veci po presmerovani unset($_SESSION['once']); //bla //bla Ale jak joe uvedl, muze dojit k zacykleni, ale za podminky, ze se nebude jeste pred kontrolou url testovat zapis cookies. Nebudou cookies povoleny, ukonci se kod a zobrazi se varovna hlaska. Asi takto bych to udelal, kdyby to neslo udelat pres GET. Ale moc rad bych to chtel vyresit pres GET, ale pokud to udelam tak, jak srigi, tak z dvou nacteni indexu se provede kontrola url 1x, ale spravne by se mela kontrolovat 2x. |
||
Časová prodleva: 17 let
|
0