přesměrováni na servru
12 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Jde nějak udělat že pokud mam třeba návštěvní knihu, tak na stránce kniha.php mám příspěvky a formulář pro vložení příspěvku, pokud někdo vkládá nový příspěvek vyplní formulář a odešle, jako action je nastaveno vloz.php - kde je php script pro vložení příspěvku - takže ho to pošle na tu stránku vloz.php a potom ho pomocí meta přesměruju zpět na kniha.php, potřebuju vědět zda to jde udělat tak aby ho servr vůbec na tu stránku vloz.php neposílal ale aby mu hned zobrazil kniha.php ? Díky
-
Na tu stranku vloz.php jit primo nemusis muzes dat action klidne na kniha.php + skrytej input (hidden s nejakym parametrem, podle kteryho skript provede require("vloz.php"); ... anebo s toho vloz.php prim phpkem presmeruj header ("location: http://xxx.xxx.xxx");
-
no jo! a tak jednoduše já sem sedlák :) díky
-
Raději bych doporučoval tu druhou možnost: kniha.php ---> skript.php <? ...zkontroluj informace... ...zapiš do databáze.... ...zjisti jak to dopadlo... ...atd atd atd..... Header('Location: http://'.$_SERVER['HTTP_HOST'].'kniha.php'); ?> ---> kniha.php Při použití možnosti první, jak ti doporučil Sojkovec, se může stát, že pou žitím tlačítek zpět a vpřed ti někdo něco udělá dvakrát. Lze to sice ošetřit, ale stejně jsou s tím problémy. Např. když odešleš data z kniha.php metodou post na stránku kniha.php?akce=zapis a pak se na ni vrátíš pomocí zpět. Prohlížeč se tě bude ptát, zda má dat odeslat stránce znova. Není to vůbec pěkné ;-) Obecně platí, že "jednorázová" akce musí proběhnout jen jednou a měla by být umístěna v samostatném souboru, ze kterého není žádný výstup (nevrací html). Tato akce proběhne jen na serveru a tím pádem se neuloží klientovi do historie prohlížeče. Na konci souboru je přesměrování na stránku výslednou, třeba jak_to_dopadlo.php?jak=uspesne nebo třeba zpět do knihy návštěv, kde už přibyl nový příspěvek kniha.php.
-
header je lepsi ( a i jednodussi) , jen sem to navrh, aby bylo videt ze moznosti existuje spousta
-
Header('Location:$HTTP_REFERER'); Dalsi moznost. Posle te na predchozi stranku. Tomik
-
Header('Location:$HTTP_REFERER'); No, fungovat to může, ale raději bych přesměrovával stránku někam kónkrétněji. Nikdo ti nezaručí, že referer bude přesně ta stránka, kterou ty potřebuješ. Navíc by mělo být: Header('Location: '.$HTTP_REFERER); nebo Header("Location: $HTTP_REFERER"); Header('Location: $HTTP_REFERER'); fungovat nebude, pač se proměnná v řetězci uzavřeném do apostrofů nenahradí (php takovýto řetězec neprochází)
-
Ještě bych dodal, že když už, tak by bylo lepší použít $_SERVER['HTTP_REFERER']
-
..no ale fakt to neni dobry napad, HTTP_REFERER se bere z hlavicky zaslany klientem a ne vsechny prohlizece to delaj.. a spousta lidi to ma z douvodu soukromi vypnuty...
-
Pokud znas cil, tak je dobry to nasmerovat k nemu. $HTTP_REFERER pouzivam u skriptu, ktery se presmeruje na predchozi stranku, u které nevím adresu. Prikladem je hlasovani. Hlasovaci formular je na vsech strankach a skript je v samostatnem souboru. Ja to pouzivam a nesetkal jsem se zatim s nejakymi problemy. Tomik.
-
no vlastne ted resim neco podobnyho.. http_referer mi pride dost nespolehlivy, uzivatel to muze mit vypnuty.. no jinak me napada bud neco jako 'hlasovani.php?returnTo=pageX' nebo session..
-
Taky jsem nad tím párkrát uvažoval a zvítězily u mě session. Myslím případ, kdy do jednoho skriptu směřují data z různých stránek, a já bych se chtěl vrátit na onu stránku namísto pitomého log.php?jaktodopadlo=blablabla