

Jak přesměrovat stránku?
ahoj, mám tu problém...
nevím, jak mám stránku přesměrovat... mám mám stránku profils-modify.php, kde je formulář a po té, co se vyplní, tak se to zase přepošle na tutéž stránku a nahoře (přes <html>) se vykonají podmínky, zápis do databáze, uložení souboru apod.
a teď nevím, jak stránku přesměrovat
pomocí header to nejde
$adresa = "www.XXX.eu/profil.php";
Header("Location: ".$adresa);
exit;
zkoušel jsem to i pomocí javascriptu
<script>
window.location.href="ADRESA";
</script>
ale byl jsem odhlášený a navíc mě to jaksi "přehodilo" stránku, kterou jsem musel aktualizovat, aby se dala zase do pořádku
meta tagem to dělat nejde (vzhledem k tomu, jak je stránka sepsaná, navíc by mě to odhlásilo...)
jak tedy přesměrovat stránku tak, abych byl stále přihlášený?
Co znamená, že to pomocí "header" nejde?
vypíše to:
Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/79746/virtual/www/scripty/profi ls-modify.php:12) in /data/web/virtuals/79746/virtual/www/scripty/profi ls-modify.php on line 116
Píše ti tam, že už jsi nějakou hlavičku posílal, takže už ji nemůžeš měnit.
před touto funkcí mám jen jiné funkce, které ošetří dané proměnné z formuláře, podmínky a potom následné zapsání proměnných do databáze... nic víc
tudíž jsme žádnou hlavičku neposílal, ne?
celý code:
HTTP odpoveď pozostáva z dvoch častí: na začiatku sú HTTP hlavičky a potom nasleduje samotné telo odpovede. Preto môžeš posielať HTTP hlavičky len dovtedy, kým nezačneš posielať na výstup samotné telo odpovede (ktorým je obvykle HTML). HTTP hlavičky posielaš funkciou header, ale nejaké sa posielajú napríklad aj pri použití funkcie start_session. Preto pred volaním týchto funkcií nemôžeš začať posielať na výstup telo odpovede.
Toľko k teórii, a teraz k samotnému problému. Priamo v chybovej hláške máš napísané, že nemôžeš nastavovať ďalšie HTTP hlavičky, pretože tie už boli odoslané. A odoslané boli preto, lebo si začal na výstup posielať samotné telo odpovede už na 12-tom riadku vo svojom kóde. Keď sa tam pozrieš, tak uvidíš túto zbytočnosť, ktorú treba vymazať:
prohodil jsem sessions a ten druhý script a už to jede (y)
a děkuji za vysvětlení headeru, konečně už to chápu, co to přesně dělá a na jakém principu to funguje
k tomu
to vím, že to je zbytečnost, ale takto jsem si "oddělil" tyto 2 scripty, které nemají nic společného... vk onečném důsledku byhc to smazal... díky <?php ?> přesně vím co k čemu patří, než kdybych si dělal jen poznámky //, /* */ - je to prostě můj styl zápisu/dělení, který v konečném důsledku odstraním
Volanie session_start nastavuje cookie v prípade, že ešte nebol nastavený (cookie sa posiela v HTTP hlavičke). Takže keď si vymažeš cookie, tak ti to prestane fungovať s rovnakou chybovou hláškou ako predtým (bude tam iné číslo riadku).
Ten spôsob delenia je divný a je to príčina problému, na ktorý si narazil. Na rozdeľovanie kódu sa používajú triedy/funkcie, prípadne require/include.
dobře, beru na vědomí ;)
ale efektivne jsi vypsal odradkovani, tudiz se musely odeslat hlavicky a i kus (1 znak/odradkovani) tela te stranky
Drobně offtopic, celý kód je náchylný na SQL Injection útok, doporučuji nastudovat a opravit.
Plus používáš staré mysql_ funkce, které jsou od 5.5 (z dobrého důvodu) deprecated, namísto toho by jsi měl použít MySQLi nebo (nejlépe) PDO.