Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ciasteczka
Forum PHP.pl > Forum > Przedszkole
Arhimenrius
Witam po raz kolejny.
Więc tym razem mam problem z ciasteczkami, oczywiście do automatycznego logowania wink.gif. Wygląda to u mnie tak że po zalogowaniu się tworzy się automatycznie ciastko PHPSESSID, ale nie wiem w takim razie jak dodać inne ciastka... albo jak wykorzystać to PHPSESSID do ponownego zalogowania się. tak, próbowałem setcookie, ale nie tworzyło to ciastek ;|

Pozdrawiam
by_ikar
Tutaj piszesz coś takiego:

Cytat
Wygląda to u mnie tak że po zalogowaniu się tworzy się automatycznie ciastko PHPSESSID, ale nie wiem w takim razie jak dodać inne ciastka...


Tutaj coś takiego:

Cytat
tak, próbowałem setcookie, ale nie tworzyło to ciastek ;|


I za cholerę nie potrafię zrozumieć o co ci chodzi.. Może to dlatego że chce mi się już spać, a może to dlatego że nie opisałeś swojego problemu dokładniej (tzn po ludzku).
croc
Uwierz na słowo, że setcookie działa jak należy. Może wyłączyłeś w przeglądarce?
Arhimenrius
Więc wytłumaczę tak. Dopiero co się wziąłem za zabawę z ciastkami.
Po zalogowaniu się automatycznie tworzy mi się ciasteczko z PHPSESSID. Lecz gdy używam setcookie w sposób jakikolwiek (np. setcookie('nazwa1', 'zawartosc'), nic si enie dzieje...
peter13135
Z tego co widzę.. taki skrypt przy pierwszym uruchomieniu wyświetla pustą tablicę :
  1. <?php
  2. setcookie("TestCookie", '1');
  3. print_r($_COOKIE);
  4. ?>

Dopiero za drugim odpaleniem wyświetla się ciastko.
Może To jest Przyczyną Twojego problemu ?
Arhimenrius
dalej nic. zwraca:

Array ( [PHPSESSID] => 15ab9df0e9db6d9d170fd8321f2cd9a7 )

array(4) { ["sessionid"]=> &string(32) "15ab9df0e9db6d9d170fd8321f2cd9a7" ["login"]=> &string(11) "Arhimenrius" ["id"]=> &string(1) "1" ["lvl"]=> &string(1) "3" }

ale tego testowego ciastka nie...
peter13135
Dziwna sprawa, może spróbuj w innej przeglądarce ? albo pokaż kod.
Arhimenrius
to jest includowane by pokazywac tresc po zalogowaniu.
  1. <div class="box_text">
  2. <div class="box_text_up"></div>
  3. <div class="box_text_middle">
  4. <div class="box_text_text">
  5.  
  6. <?
  7. print_r($_COOKIE);
  8. switch($_GET['option'])
  9. {
  10. case 1:echo 'lol';break;
  11. case 2:echo 'pies';break;
  12.  
  13. }
  14. ?>
  15.  
  16. </div>
  17. </div>
  18. <div class="box_text_bottom">
  19. </div>
  20.  
  21. </div>
  22. <br class="clear">
  23. </div>
  24.  
  25.  
  26. </body>
  27. </html>


A to funkcja na logowanie...
  1. function Login($nick, $pass)
  2. {
  3. global $db;
  4.  
  5. [...]
  6. row = $stmt -> fetch(PDO::FETCH_ASSOC);
  7.  
  8. if($brain)
  9. {
  10. setcookie("TestCookie", '1');
  11. }
  12.  
  13. [...]
  14. }
  15.  
  16. }
peter13135

wrrr.

  1. if($brain)


a to co za zmienna ?

najlepiej po setcookie daj echo 'cośtam';. Jeśli napis się wyświetli, to bedziesz miał jakąś gwarancję, że dany blok został wykonany.
Arhimenrius
  1. function LoginForm()
  2. {
  3. echo '<form action="index.php" method="POST">
  4. Login: <input type="text" name="nick" /><br />
  5. Hasło: <input type="password" name="password" /><br />
  6. <input type="checkbox" value="true" name="brain" />Zapamiętać?<br />
  7. <input type="submit" value="Zaloguj" name="login" /><br />
  8.  
  9. </form>';
  10. }

czy chcemy zapamiętać hasło
peter13135
nie bardzo wiem jak to się ma do tego, co pisałem wcześniej.
Arhimenrius
Dobra... już wiem... zapomniałem do funkcji po prostu dopisać... eh..
croc
Nie mówiąc o tym, że nie ma sensu robić funkcji zwracającej czysty HTML i to bez żadnych modyfikacji. Lepiej załącz plik.
Arhimenrius
croc, wolę w ten sposób ponieważ layout i tak będzie zmieniany, a w mojej teorii chaosu tak będzie mi łatwiej później zmodyfikować ^^
peter13135
var_dump($brain) - dowiedz się co tam jest... obstawiam, że nic tongue.gif pewnie zadeklarowałeś ją poza funkcją. Daj ją w parametrze, albo ostatenicznie w globalu. Ja piszę obiektowo skrypty, czasem jakiegoś singletona użyję, więc takich problemów nie mam.
croc
Cytat(Arhimenrius @ 29.10.2011, 23:53:32 ) *
croc, wolę w ten sposób ponieważ layout i tak będzie zmieniany, a w mojej teorii chaosu tak będzie mi łatwiej później zmodyfikować ^^

No właśnie łatwiej modyfikować w pliku niż bloku objętym apostrofami gdzieś tam, no ale jak wolisz. Wróćmy do tematu smile.gif To co z tymi ciastkami?
Arhimenrius
tak, zauważyłem mój błąd. deklaruję $_POST['brain;] ale potem tego nie wtrącam do Funkcji wink.gif Login($_POST['nick'],$_POST['password'], $_POST['brain']); było bez tego ostatniego posta.

No ale dobra. co teraz zrobić, bym mógł utworzyć z tego autologin? ponieważ po 2 godzinach zabaw i tak i tak mi gubiło ciastka ;s niestety w sumie nie wiem już co z tym zrobić ;|
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.