Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> setcookie nie tworzy ciach na localhoscie
ageusz
post 5.03.2010, 13:43:17
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.02.2010

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


Witam,

wiem, że setcookie było poruszane wiele razy, jednak żadne rozwiązanie ani z forum, ani z php.net ani z całego internetu nie dało rady, więc w końcu muszę zadać pytanie sam.

Otóż pracuję sobie na swoim kompie, na localhost i za nic nie mogę utworzyć ciasteczka. Zrobiłem sobie specjalnie króciutki skrypcik, żeby testować, czy działa i nic. Oto jak wygląda ostatnia wersja(było ich sporo):

  1. if(!isset($_COOKIE["username"]))
  2. {
  3. $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
  4. setcookie('cookiename', 'data', time()+3600, '/', $domain, false);
  5. echo "ustawione";
  6. }
  7. else
  8. echo "Cookie: ".$_COOKIE["cookiename"];


Nic nie jest wysyłane przed, ani nawet po tym kodzie, żadna spacja. Mam wrażenie, że przeglądarka na to nie pozwala. Czytałem też, że domena powinna zawierać dwie kropki, a na localhoście po prostu false. Nic jednak nie działa. Może trzeba jakoś przekonfigurować apacha?
Mam postawionego ostatniego WAMPa, Apach 2.2.11, PHP 5.3.0, więc supergloblne COOKIE też jest.

Będę wdzięczny za pomoc
Go to the top of the page
+Quote Post
ostrylg
post 5.03.2010, 14:16:27
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 18
Dołączył: 11.12.2005
Skąd: Gdańsk

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


a masz włączoną obsługę cookies w przeglądarce ?
Go to the top of the page
+Quote Post
thek
post 5.03.2010, 14:20:01
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Dla localhosta wcale nie trzeba dodatkowych warunków robić przecież. Localhost to taki sam serwer jak każdy inny i odkąd pamiętam, zawsze mi tworzyło ciacho To właśnie w przypadku poslania false zamiast localhost bym się martwił o to, że ciastka mi nie utworzy, bo niby do czego?


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Kocurro
post 5.03.2010, 14:48:25
Post #4





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


  1. if(!isset($_COOKIE["username"]))
  2. {
  3. $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
  4. setcookie('cookiename', 'data', time()+3600, '/', $domain, false);
  5. echo "ustawione";
  6. }
  7. else
  8. echo "Cookie: ".$_COOKIE["cookiename"];


A nie powinno być:

  1. if(!isset($_COOKIE["cookiename"]))
  2. {
  3. $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
  4. setcookie('cookiename', 'data', time()+3600, '/', $domain, false);
  5. echo "ustawione";
  6. }
  7. else
  8. echo "Cookie: ".$_COOKIE["cookiename"];

Go to the top of the page
+Quote Post
korro
post 5.03.2010, 15:45:37
Post #5





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Witam.
Jakiś czas temu też doświadczyłem tego problemu.
Nie miałem czasu na zbadanie, ale dodałem do hosts wpis 127.0.0.1 local.pl
i teraz korzystam z local.pl
Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
webdice
post 5.03.2010, 16:09:36
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Sprawdź czy to zadziała.

  1. setcookie( 'test', 'value', time() + 3600 );
Go to the top of the page
+Quote Post
ageusz
post 5.03.2010, 16:17:17
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.02.2010

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


Dzięki za odpowiedzi.
Kocurro, tam była literówka, zmieniałem przed samym skopiowaniem, potem było już dobrze, ale i tak nie działało

ostrylg: obsługa raczej jest, bo inne strony obżerają się ciasktami niezmiernie winksmiley.jpg

thek: otóż przeczytałem na php.net w komentarzach ludzi do setcookies, że przeglądarki nowsze (np. powyżej IE6 i wyżej oraz firefoxy itd) odrzucają ciasteczka, jeśli domena nie ma dwóch kropek. Zresztą spotkałem się z tym nie tylko tam.

korro: masz na myśli plik znajdujący się w windows/system32/drivers/etc/ ? Jeśli tak to trzeba zmienić tylko tam, czy jeszcze gdzieś? Jeśli tylko tam to niestety nie przyniosło to efektu.

webdice: taka postać była na początku hehe

Ten post edytował ageusz 5.03.2010, 16:19:08
Go to the top of the page
+Quote Post
webdice
post 5.03.2010, 16:53:32
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(ageusz @ 5.03.2010, 16:17:17 ) *
(...) webdice: taka postać była na początku hehe


Sprawdzałeś na innej przeglądarce?
Go to the top of the page
+Quote Post
ageusz
post 5.03.2010, 17:20:21
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.02.2010

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


Tak sprawdzałem na operze również, na IE akurat nie mam możliwości bo z jakichś dziwnych względów nie chce nic z localhosta odpalić. Może coś w tym jest nie tak. Może format winksmiley.jpg
Właśnie zauważyłem, że sesje również nie działają, choć może to nie dziwi, w końcu też używają cookies. Może zainstaluję sobie inny serwer, np. XAMPP i zobaczę co będzie.



Wydaje się, że problemem jest WAMP, gdyż na XAMPP sesja działa. Fakt faktem, ciastka dalej nie za bardzo, ale jednak jest jakaś interesująca zmiana.



Jednak problemem nie jest ani WAMP, ani XAMPP tylko xdebug. Jeśli wywali się xdebug, sesje działają. Choć niedziałanie ciastek pozostaje wciąż niewiadomą.

Ten post edytował ageusz 5.03.2010, 17:40:23
Go to the top of the page
+Quote Post
Pilsener
post 5.03.2010, 17:40:44
Post #10





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


  1. echo "ustawione";
- tere fere, a sprawdziłeś czy funkcja setcookie zwraca true? Jeśli tak, to ciacho się tworzy, może jest problem z jego odczytem? I pamiętaj, że ciacho będzie widoczne dopiero po przeładowaniu strony.

Porównaj parametry obydwu serwerów (pliki php.ini) w części dotyczącej ciastek, sprawdź też, czy powodem nie jest ścieżka, przetestuj kod z manuala:
  1. // set the cookies
  2. setcookie("cookie[three]", "cookiethree");
  3. setcookie("cookie[two]", "cookietwo");
  4. setcookie("cookie[one]", "cookieone");
  5.  
  6. // after the page reloads, print them out
  7. if (isset($_COOKIE['cookie'])) {
  8. foreach ($_COOKIE['cookie'] as $name => $value) {
  9. echo "$name : $value <br />\n";
  10. }
  11. }
Go to the top of the page
+Quote Post
ageusz
post 5.03.2010, 17:45:26
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.02.2010

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


Dzięki wam wszystkim. Mam już odpowiedź. Okazuje się, że wszystkie wersje są dobre i ciasteczka działają. Jedynym problemem był xdebug. Temat do zamknięcia, dzięki wszystkim za pomoc. Bez was pewnie nadzieja by zgasła tongue.gif

PS. Pilsener - to echo było tylko po to żebym wiedział gdzie jestem winksmiley.jpg

Ten post edytował ageusz 5.03.2010, 17:46:36
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: 30.04.2025 - 09:05