Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] logowanie, dlaczego nie zapisuje cookie?
Majcok12
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 20.02.2004

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


Znow mam problem z skryptem logowania. Chodzi o to ze zaleznie czy user jest adminem czy nie w cookie ma dopisane np. admin|TAK/NIE. Tylko ze nie zapisuje mi cookie z pierwszego warunku, tzn. jesli np. pierwszym warunkiem w skrypcie jest to ze jesli uzytkownik nie jest adminem zmienna admin w cookie bedzie miala wartosc NIE lub odwrotnie, tylko ze cookie w pierwszym warunku mi nie zapiuje, a jesli jest spelniony warunek ktory jest drugi w skrypcie (np. user jest adminem) cookie zostaje zapisane.

logowanie.php
  1. <?
  2.  
  3. if(!isset($_POST[&#092;"user_nick\"]) && !isset($_POST[\"user_password\"]) && !$_SESSION[\"usernick\"] && !$_SESSION[\"userpassword\"] && !$_COOKIE[\"user_id\"] && !$_COOKIE[\"user_pass\"])
  4. {
  5.    html_header();
  6. // formularz logowania
  7.    html_footer();
  8.  
  9. }
  10. else
  11. {
  12.    setcookie (&#092;"user_id\", $_POST[\"user_nick\"], time()+86400);
  13.    setcookie (&#092;"user_pass\", $_POST[\"user_password\"], time()+86400);
  14.    header (&#092;"Location: logowanie2.php\" . \"\");
  15. }
  16.  
  17.  
  18. ob_end_flush();    
  19. ?>



logowanie2.php
  1. <?
  2. session_start();    
  3.  
  4. $_SESSION[&#092;"usernick\"] = strtolower(trim($_COOKIE[\"user_id\"])); //zapis do sesji wartosci cookie
  5. $_SESSION[&#092;"userpassword\"] = trim($_COOKIE[\"user_pass\"]);
  6.  
  7. setcookie (&#092;"user_id\");  // usuniecie cookie, wartosci cookie sa teraz w zmiennych sesyjnych
  8. setcookie (&#092;"user_pass\");
  9.  
  10. $zapytanie = mysql_query(&#092;"SELECT user_nick, user_pass, admin FROM users WHERE user_nick ='\".$_SESSION['usernick'].\"'\");
  11. $user = mysql_fetch_array($zapytanie);
  12.  
  13.  
  14. if($_SESSION[&#092;"usernick\"] == strtolower($user[\"user_nick\"]) && $_SESSION[\"userpassword\"] == $user[\"user_pass\"] && $user[\"admin\"] == \"NIE\")
  15. {  //pierwszy warunek (cookie ponizej nie zostana zapisne, nie wiem dlaczego)
  16.  
  17.  
  18.     setcookie (&#092;"user_id\", $_SESSION[\"usernick\"], time()+86400);
  19.     setcookie (&#092;"user_pass\", $_SESSION[\"userpassword\"], time()+86400);
  20.     setcookie (&#092;"admin\", $user[\"admin\"], time()+86400);
  21.  
  22.     html_header(); // funkcja wyswietlajaca szablon strony
  23.  
  24.     echo &#092;"<b>Zostales zalogowany</b>\";
  25.    
  26.     html_footer();
  27.  
  28. }
  29.  
  30.  
  31. if ($_SESSION[&#092;"usernick\"] == strtolower($user[\"user_nick\"]) && $_SESSION[\"userpassword\"] == $user[\"user_pass\"] && $user[\"admin\"] == \"TAK\")
  32. { //drugi warunek
  33.  
  34.  
  35.     setcookie (&#092;"user_id\", $_SESSION[\"usernick\"], time()+86400);
  36.     setcookie (&#092;"user_pass\", $_SESSION[\"userpassword\"], time()+86400);
  37.     setcookie (&#092;"admin\", $user[\"admin\"], time()+86400);
  38.  
  39.     html_header(); // funkcja wyswietlajaca szablon strony
  40.  
  41.     echo &#092;"<b>Zostales zalogowany jako admin</b>\";
  42.    
  43.     html_footer();
  44.     header (&#092;"Location: index.php\");
  45.  
  46. }
  47.  
  48. else 
  49. {
  50.  
  51.     session_unregister(&#092;"usernick\");
  52.     session_unregister(&#092;"userpassword\");
  53.     setcookie (&#092;"user_id\");
  54.     setcookie (&#092;"user_pass\");
  55.     setcookie (&#092;"admin\");
  56.     echo &#092;"zly login lub haslo\";
  57.     echo &#092;"<a href=\"logowanie.php\">Logowanie</a><br>\";
  58.  
  59. }
  60.  
  61. ob_end_flush();    
  62. ?>


PZdr & Thx

Ten post edytował Majcok12 20.11.2004, 19:22:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Majcok12
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 20.02.2004

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


Cytat
if ( )
elseif ()
else()


Dzieki, dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Cytat
PS3 Genialny jest pomysł zapisania czy użytkownik jest adminem w zmiennej cookie, którą każdy sobie może ręcznie zmienić z NIE na TAK.


Zrobilem tak na szybko, bo bym nie widzial czy cookie sa zapisywane na nastepnej stronie, czy nie (chociaz jak pozniej dodalem usuwanie cookie po wpisaniu ich do sesji, to moglem juz to zmienic ale bardziej mnie interesowalo czemu w ogole nic nie zapisuje), bo najpierw byly zapisywane zaraz po logowaniu a pozniej w warunkach. Ale thx za przypomnienie, bo bym jeszcze zapomnial o zmianie tego.

PS. Mam skrypt rejestracji i w nim mam:
  1. <?php
  2.  
  3. if($userpassword!=$userpassword2) {
  4.  error_message(&#092;"Podane hasła nie są identyczne\");
  5.  exit;
  6. }
  7.  
  8. ?>

I chociaz podaje dwa takie same hasla pokazuje sie powyzszy komunikat.

PZdr
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 12.10.2025 - 07:49