Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] headers i cookies
zakaru
post 25.07.2008, 08:55:58
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


Witam,
mam taki oto problem:
Próbuje wysłać cookies za pomocą funkcji setcookie, ale oczywiście wyskoczyć musi błąd ;]
oto kod w php jaki napisałem:

  1. <?php
  2.  
  3.  
  4. if(!isset($_COOKIE['USTAWIENIA'])){
  5. $ustawienia="cos tam cos tam";
  6. setcookie("USTAWIENIA", $ustawienia, time()+120960000000, "/");
  7. $_COOKIE['USTAWIENIA']=$ustawienia;
  8. }
  9.  
  10. ?>


i teraz pojawia mi się taki oto błąd:

Kod
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /index.php:1) in /index.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /index.php:1) in /index.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /index.php:1) in /index.php on line 9


z tego co zrozumiałem to php nie może wysłać cookies bo są już wysłane nagłówki... tylko najdziwniejsze jest to, że nic nie wysyłam przed cookies'em (no chyba, że się mylę), mógłby ktoś pomóc?

Ten post edytował zakaru 25.07.2008, 08:57:16
Go to the top of the page
+Quote Post
webasek
post 25.07.2008, 09:06:19
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Miałem kiedyś podobny błąd załatwiłem to w ten sposób, że po pierwsze zlikwidowanie pustego miejsca (wszystkich pustych) przed setcookies i session_start powinno pomóc


--------------------
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein

Wirtualny Rynek Predykcyjny
Go to the top of the page
+Quote Post
chemik1982
post 25.07.2008, 09:06:35
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 20.03.2007
Skąd: Bydgoszcz

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


http://pl2.php.net/manual/pl/function.ob-start.php
Pozdrawiam


--------------------
fitmate.pl - aplikacje internetowe
Go to the top of the page
+Quote Post
zakaru
post 25.07.2008, 09:13:13
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


Cytat(chemik1982 @ 25.07.2008, 10:06:35 ) *


nie rzutuje.
czy ob_start jest na poczatku kodu czy tez na koncu pojawia sie identyczny blad jak powyzej.
Go to the top of the page
+Quote Post
chemik1982
post 25.07.2008, 09:31:19
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 20.03.2007
Skąd: Bydgoszcz

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


a dodaj na koncu skryptu:
  1. <?php
  2. ?>



http://forum.php.pl/index.php?showtopic=27...mp;#entry160450

Ten post edytował chemik1982 25.07.2008, 09:34:57


--------------------
fitmate.pl - aplikacje internetowe
Go to the top of the page
+Quote Post
zakaru
post 25.07.2008, 09:48:54
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


ciągle lipa... niby gdzieś na początku jest coś wysyłane...

dodam, ze skrypt dziala na serwerach superhost.pl i moim lokalnym apachu, ale na home.pl nie trybi
Go to the top of the page
+Quote Post
chemik1982
post 25.07.2008, 10:04:22
Post #7





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 20.03.2007
Skąd: Bydgoszcz

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


sprawdz czy gdzies ci sie jakas spacja nie zapodziala winksmiley.jpg przed wyslaniem.
A najlepiej napisz do home.pl byc moze katalog musi sie jakos specjalnie nazywac.
Gdzies kiedys czytalem ze tmp.
Dodaj jeszcze:
  1. <?php
  2. ini_set( 'session.save_path', 'tmp/' );
  3. ?>


--------------------
fitmate.pl - aplikacje internetowe
Go to the top of the page
+Quote Post
Zmorcia
post 25.07.2008, 10:07:31
Post #8





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

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


Kod
session_start();


Musi się znajdowac zaraz po <?php

KOD:
Kod
<?php
session_start();
session_save_path("sesje/");
ob_start();

if(!isset($_COOKIE['USTAWIENIA'])){
$ustawienia="cos tam cos tam";
setcookie("USTAWIENIA", $ustawienia, time()+120960000000, "/");
$_COOKIE['USTAWIENIA']=$ustawienia;
}

?>

Pozdro tongue.gif

Ten post edytował Zmorcia 25.07.2008, 10:12:13


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
zakaru
post 25.07.2008, 10:22:43
Post #9





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


Cytat(chemik1982 @ 25.07.2008, 11:04:22 ) *
sprawdz czy gdzies ci sie jakas spacja nie zapodziala winksmiley.jpg przed wyslaniem.
A najlepiej napisz do home.pl byc moze katalog musi sie jakos specjalnie nazywac.
Gdzies kiedys czytalem ze tmp.
Dodaj jeszcze:
  1. <?php
  2. ini_set( 'session.save_path', 'tmp/' );
  3. ?>


katalog do sesji moze sie obojetnie jak nazywac.
pozatym dalem:
  1. <?php
  2. session_save_path("session/");
  3. ?>

i z tego co widze to sesje sie tam zapisuja.

no sprawa jest jak dla mnie bardzo dziwna. Przeciez nic do przegladarki przed tym kodem nie jest wysylane...
Go to the top of the page
+Quote Post
Zmorcia
post 25.07.2008, 10:24:58
Post #10





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

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


Ja już dałem rozwiązanie działające, musi być odrazu po

Kod
<?php
session_start();
?>


PzodrooooO!!!


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
Shili
post 25.07.2008, 11:09:25
Post #11





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


W jakim kodowaniu kodujesz ten skrypt? Jeśli to utf, to stawiam na znak BOM (Byte Order Mark). Zaopatrz się wtedy w edytor który to cudo potrafi usunąć (na przykład Notepad++)
Go to the top of the page
+Quote Post
darth_sidious
post 25.07.2008, 12:23:53
Post #12





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 19.12.2005

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


Nie wiem, czy to Ci pomoze, ale korzystajac z uslug home.pl zauwazylem, ze aby sesje dzialaly poprawnie w katalogu w ktorym wykonywany jest (znajduje sie) plik/skrypt musi znajdowac sie katalog /tmp.
Mialem podobne problemy i tworzenie tego katalogu rozwiazywalo problem..

Tak wiec utworz ten katalog w miejscu gdzie masz skrypt i sprawdz... i oczywiscie to co pisali koledzy wyzej - wszystko musi zaczynac sie zaraz po <?php

Pozdrawiam
Paweł

Ten post edytował darth_sidious 25.07.2008, 12:25:29


--------------------
Fotografia ślubna Tomaszów Mazowiecki
Go to the top of the page
+Quote Post
zakaru
post 27.07.2008, 10:47:32
Post #13





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


no i mam juz rozwiazanie.

Cytat(Zmorcia @ 25.07.2008, 11:24:58 ) *
Ja już dałem rozwiązanie działające, musi być odrazu po

Kod
<?php
session_start();
?>


PzodrooooO!!!


no niestety przykro mi, ale nie tutaj lezal blad winksmiley.jpg



Cytat(Shili @ 25.07.2008, 12:09:25 ) *
W jakim kodowaniu kodujesz ten skrypt? Jeśli to utf, to stawiam na znak BOM (Byte Order Mark). Zaopatrz się wtedy w edytor który to cudo potrafi usunąć (na przykład Notepad++)


a o to z kolei dokladnie chodzilo. 3 poczatkowe bajty (czyli BOM) byly najpierw wysylane do przegladarki. Wystarczylo ustawic kodowanie na utf bez BOM winksmiley.jpg
Dzieki Tobie wielkie smile.gif
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: 18.07.2025 - 23:54