Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z header()
inc0
post 10.06.2009, 23:06:17
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
okitoki
post 11.06.2009, 07:20:17
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


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


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 11.06.2009, 07:31:07
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(okitoki @ 11.06.2009, 08:20:17 ) *
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
Go to the top of the page
+Quote Post
inc0
post 11.06.2009, 10:03:43
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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:11