Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]System logowania w newsach - Problem z Cookie
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


witam.
Postanowilem zrobic system newsow z panelem administracyjnym na logowanie i mam problem z cookie. System ma taki schemat:
(to co po koleji sie ma wyswietlac w instrukcjach, opisalem najpierw w funkcach, zeby sie nie pogubic - wiem, ze moglem co nieco po prostu umiescic w innych zmiennych, ale tak mi wygodniej.. nie znam sie jeszcze az tak na php, zeby to lepiej napisac - dlatego mozecie wrzucic jakie uwagi czy tak w ogole powinno sie takie rzeczy robic.. Ale puki co chcialbym zalatwic sprawe z cooki.)
  1. <?php
  2. session_start(); // (doedytowane)
  3. /* Funkcja wyswietla formularz do zapisu newsow */
  4. function forNews()
  5. {
  6. echo (&#092;"n<h1>tytul formularzu</h1>\");
  7. echo (&#092;"cos tam innego\");
  8. echo (&#092;"kod html itd\");
  9. }
  10.  
  11. /* Funkcja wyswietla tekst z blednym podaniem hasla czy loginu */
  12. function errorPass()
  13. {
  14. echo (&#092;"n<h1>jakis tytul</h1>\");
  15. echo (&#092;"cos tam innego\");
  16. echo (&#092;"kod html itd\");
  17. }
  18.  
  19. /* Funkcja wyswietla logowanie */
  20. function logPass()
  21. {
  22. echo (&#092;"n<h1>jakis tytul</h1>\");
  23. echo (&#092;"cos tam innego\");
  24. echo (&#092;"kod html itd\");
  25. }
  26.  
  27. /* funkcja w ktorej odbywa sie zapisywanie tresci z formularza do plikow */
  28. function zroBione()
  29. {
  30. rozne funkcje, zmienne itd..
  31. }
  32.  
  33. /* Mechanizm postepowania */ 
  34. if($ns==1) 
  35. { 
  36. $haslo=&#092;"qqqq\"; 
  37. $autor=&#092;"jozek\"; 
  38. if ($_SESSION['pass']==$_POST['haslo'] && $_SESSION['nick']==$_POST['autor']) // (przerobione doedytowane)
  39. {
  40. if($nz==1)
  41. {
  42. echo forNews();
  43. }
  44. else
  45. {
  46. echo zroBione(); 
  47. }
  48. }
  49. else 
  50. {
  51. echo errorPass(); 
  52. }
  53. }
  54. else
  55. {
  56. echo logPass(); 
  57. }
  58. ?>


Szczerze piszac nie bardzo chwytam jak to COOKIE powinienem wtloczyc w moj skrypt. Na razie mam jak powyzej widac tak:
  1. <?php
  2. if ($_COOKIE['pass']!==$haslo && $_COOKIE['nick']!==$autor)
  3. ?>
ale przy takim zapisie źle dziala mi logowanie (pierwotnie mailem po prostu $pass==$haslo && $nick==$autor) - tzn. co kolwiek wpisze za haslo to mi sie loguje do panelu admin. Do tej pory nie uzywalem cookie tylko inkludowlem sobie drugi plik z tym panelem(i wsyztsko tams ie odbywalo bez zadnych instrukcji) wiec cookie w zasadzie nie bylo specialnie potrzebne, ale teraz wszystko zawarlem w jednym pliku dzieki instrukcji if.. no i np. po wywolaniu akcji w logowaniu index.php?str=admin&ns=1&nz=1 dostaje sie do mojego panelu jednak jak juz chcem zapisac moja tresc z pol formularza robie akcje (do echo zroBione()(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) np. index.php?str=admin&ns=1&nz=2 no i wtedy wywala mi informacje o bledzie hasla ( echo errorPass(); ) dlatego pomyslalem, ze wlasnie cookie powinno sprawe zalatwic.. no i zalatwilo tak, ze jak co kolwiek wpisze w loginie to sie dostaje do dzialu administracyjnego, skrypt wtedy dziala jak nalezy ale kazdy ma dostep do panelu(?) - na poczatku msyalem, ze to tak ma byc.. cookie zapisalo sie w mojej przegladarce, ale chcac sparwdzic czy aby tu nie jest cos spartrolone przetestowalem to na drugm systemie (xp) no i bez podoawanai hasla dalej moge sie logowac.. a to chyba tak byc nei powinno. mam nadzieje, ze nie zamotalem.. sorki za tak dlugi wpis ale chcialbym aby kazdy zrozumial moj problem.

EDIT
Pewna osoba doradzila mi abym zrobil tow sesjach - ale ja na sesiach sie eni znam i jeszcze nie rozumiem za bardzo jak prawidlowo je uzywac.. To co doedytowalem - zaznaczylem w kodzie - nadal nei dziala jak nalezy...

Ten post edytował Volume 16.03.2005, 18:15:15
Go to the top of the page
+Quote Post
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  1. <?php
  2. $haslo=&#092;"qqqq\"; 
  3. $autor=&#092;"jozek\"; 
  4. if($ns==1) 
  5. { 
  6.   if ($haslo==$_POST['haslo'] && $autor==$_POST['autor'])
  7.   {
  8.         setcookie(&#092;"imie\", $autor);
  9.         setcookie(&#092;"haslo\", $haslo);    
  10. } else {
  11.   echo logPass(); 
  12. }
  13.  
  14. # Tu jakies dzialanie 
  15.  
  16. if(isset($_COOKIE['imie']) && isset($_COOKIE['haslo']))
  17. {
  18.        # instrukcja
  19. }
  20. ?>


Aby sprawdzić, czy istnieje cookie, trzeba go utworzyć.
Potem wystarczy przed każdym działaniem sprawdzić czy cookie istnieje.

pozdrawiam

edit: co do sesji

Ten post edytował Ociu 16.03.2005, 18:54:08
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 06:23