![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z funkcją header()
CODE <?php ob_start(); session_start(); include_once('/funkcje/f_login.php'); if ($_SESSION['sesja']) f_wyloguj(); //header("Location: /admin/index.php"); ob_end_flush(); ?> Problem wygląda tak: kiedy do podobnego pliku przechodzę np. poprzez formularz(action="...") wszystko działa jak należy. Natomiast jeśli idę tam przez link(<a href="/actions/exampleaction.php">) po przejściu skryptu zamiast odsyłać do tego pliku działa, jakby go includował. Tj. pojawia się w źródle kod tego pliku, ale w adresie pozostaje /actions/exampleaction.php zamiast /admin/index.php. Jakieś pomysły, o co może chodzić? Z góry dzięki! Ten post edytował inc0 11.06.2009, 10:04:14 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%) ![]() ![]() |
nie możesz modyfikować nagłówka po wysłaniu już treści. nie wiem co w tym pliku jest
include_once('/funkcje/f_login.php'); ale podejrzewam że tam sie coś wyświetla a jak nie to możesz mieć jakiś ukryty znak na początku pliku, notatnik coś takiego dodaje -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
nie możesz modyfikować nagłówka po wysłaniu już treści. nie wiem co w tym pliku jest include_once('/funkcje/f_login.php'); ale podejrzewam że tam sie coś wyświetla a jak nie to możesz mieć jakiś ukryty znak na początku pliku, notatnik coś takiego dodaje Zgadzam się w 100%. "notatnik coś takiego dodaje" - nie tylko, problem pojawia się przy kodowaniu UTF8, należy je kodować bez BOM. (opcję takiego kodowania zapewnia notepad++) -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
W pliku f_login są tylko deklaracje funkcji.
CODE function f_wyloguj() { unset($_SESSION['sesja']); session_destroy(); } Wszystko było przekonwertowane na UTF-8 przez notepad++. Miałem jednak już na tym serwerze problemy z tym kodowaniem, więc to na 99% to, dzięki! Jak znajdę problem, napiszę. Naprawiłem dodając $_SERVER['DOCUMENT_ROOT'] do ścieżki. To załatwiło ten plik, był jeszcze inny plik z podobnymi problemami. Tam też udało mi się to załatwić..ale w zupełnie irracjonalny sposób... oto kod: CODE <?php if($_SESSION['sesja']!=1) header("Location: /admin/index.php"); include_once('/funkcje/f_admin_inner.php'); $id=$_REQUEST['id']; f_usunklienci($id); echo $_SERVER['DOCUMENT_ROOT']."admin/admin-inner.php?str=1"; //header("Location: ".$_SERVER['DOCUMENT_ROOT']."admin/admin-inner.php?str=1"); ?> Jak pewnie widzicie, funkcja header() jest zakomentowana...ale działa! I to lepiej, niż kiedy była odkomentowana. Ktoś potrafi wyjaśnić to zjawisko? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:11 |