Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kodowanie cookie
Forum PHP.pl > Forum > Przedszkole
qba10
Mój problem się zmienił:

Wtedy gdy do cookie wysyłałem dane, chociaż nie miały takiej zawartości jakiej chciałem, ale przynajmniej się tworzyły. Teraz z linijki 47 usunąłem funkcję strtolower() i wyskakuję błąd :

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\test\system\jadro\e-door\functions\logowanie.php:47) in C:\AppServ\www\test\system\jadro\e-door\functions\logowanie.php on line 68

Jak zmodyfikować kod by ciasteczko zostało utworzone?


Skrypt logowania:
  1. <?php
  2. class logowanie {
  3.  
  4.  
  5. private $kxc = &#092;"a523d703f908dd69e02db64ec35d07315f4c49ab3cacad14a97304b02f2fbb09\"; 
  6. public $zalogowany = 0;
  7.  
  8. public function __construct($login, $haslo, $zapamietaj)
  9. {
  10.  
  11.  
  12. if($this -> autoryzacja($login, $haslo, $zapamietaj)) {$this -> loguj();}
  13.  
  14. }
  15.  
  16.  
  17.  
  18.  
  19. public function loguj()
  20. {
  21.  
  22. return $this -> zalogowany = 1;
  23.  
  24.  
  25. }
  26.  
  27. public function autoryzacja($login, $haslo, $zapamietaj)
  28. {
  29. if(isset($_COOKIE['jp_login'])) 
  30. {
  31.  
  32. $dane = $_COOKIE[&#092;"jp_login\"]^$this -> kxc;
  33.  
  34.  $login_use = substr($dane, 0, 32);
  35.  $haslo_use = substr($dane, -32);
  36. $metod = &#092;"cookies\";
  37.  
  38. }
  39. elseif(isset($_SESSION['login']) AND isset($_SESSION['haslo'])) 
  40. {
  41. $login_use = $_SESSION['login'];
  42. $haslo_use = $_SESSION['haslo'];
  43. $metod = &#092;"session\";
  44. }
  45. elseif(isset($login) AND isset($haslo)) 
  46. {
  47. $login_use = md5($login);
  48. $haslo_use = md5($haslo);
  49. $metod = &#092;"post\";
  50.  
  51. } 
  52. if(isset($metod)) 
  53. {
  54.  $query = bazadanych::wykonaj(&#092;"SELECT * FROM `users` WHERE `user`='\".$login_use.\"' AND `pass`='\".$haslo_use.\"';\"); 
  55.  
  56.  if(bazadanych::num_rows($query) == 1) 
  57.  {
  58.  
  59.  $wiersz = bazadanych::fetch_array($query);
  60.  $_SESSION['login'] = $wiersz['user'];
  61.  $_SESSION['haslo'] = $wiersz['pass'];
  62.  $_SESSION['nick'] = $wiersz['nick']; 
  63.  
  64.  if($metod == &#092;"post\" AND isset( $zapamietaj) AND $zapamietaj == \"ok\") 
  65.  {
  66.  
  67.  $dane = ($login_use.$haslo_use)^$this -> kxc;
  68.  setcookie (&#092;"jp_login\", $dane,time()+3600*24*30);
  69.  
  70.  }
  71. return TRUE;
  72. } 
  73.  
  74. }
  75. else
  76. {
  77. return False;
  78. }
  79.  
  80. }
  81.  
  82. }
  83. ?>
sowiq
http://pl2.php.net/ob_start w pliku głównym?
qba10
Jak może być przyczyna tego że przed wsadzeniem w cookie ciąg znaków miałem taki:
Kod
UWRTUTQ]\\  \\TPTV  \\V\[QWZXVP]USVQ_[RT

A po odczytaniu cookie taki :
Kod
UWRTUTQ]\�  \TP�TV  \��V��[QWZXV�P]US�VQ_[RT
sowiq
Wrzucasz tam jakiś Unicode? Dane binarne? Nie wiem, czy przeglądarki obsługują takie rzeczy. Wydaje mi się, że cookies powinno używać się tylko do prostych danych tekstowych. A przynajmniej nie próbowałem nigdy inaczej, bo wydaje mi się, że nie tędy droga.

Nie łatwiej zapisywać w ciastkach jakiegoś ID, po którym będziesz się odwoływał do zapisanych w bazie danych informacji?
qba10
z tym id to nawet dobry pomysł bo znacząco nie przerobziałałoie skryptu, ale jedno co mnie boli to to, że w tym skrypcie ( http://www.strefaphp.net/artykul36.html ) to działało....
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.