Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Cookie a sesja, cookie w sesji
krystian19
post 16.06.2011, 15:10:37
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 16.03.2007

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


Witam. Mam taki prosty system rejestracji i logowania użytkowników z bazy danych na swojej stronce. Wszystko działa poprawnie. Chciałbym jednak zrobić coś na styl autologowania aby użytkownik za każdym razem nie musiał wpisywać loginu i hasła, a został albo automatycznie zalogowany albo zostało mu już login i haslo wyświetlone, gotowe tylko do zatwierdzenia. Kombinowałem na różne sposoby z setcookie($login, $haslo, time()+9999); if(!isSet($_COOKIE['wyslane']) && !isSet($_POST['wyslane'])){ ale nic mi z tego nie wychodzi :/ Bardzo proszę o pomoc.

  1. <?php
  2. session_start(); // rozpoczecie sesji
  3. ?>
  4.  
  5.  
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  7. <title>stronka</title>
  8. <link rel="stylesheet" type="text/css" href="style.css" />
  9. <p><span class="styl2"><font face="Comic Sans MS" color="#006699">Zaloguj się</font></span><br>
  10. <div class="content2">
  11.  
  12. <?php
  13.  
  14. if (!isset($_SESSION['login'])) {
  15.  
  16. if ($_POST['wyslane']) {
  17.  
  18. include 'baza.php';
  19. $tabela = 'uzytkownicy';
  20.  
  21.  
  22. $login = $_POST["login"];
  23. $haslo = $_POST["haslo"];
  24.  
  25. setcookie($login, $haslo, time()+9999);
  26.  
  27.  
  28. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  29. login='$login' and haslo='$haslo' and status=0");
  30.  
  31.  
  32. if (mysql_num_rows($wynik) == 1) {
  33. $info = mysql_fetch_array($wynik);
  34. echo '<span class="1">Nie aktywowałeś jeszcze konta</span>';
  35.  
  36. }
  37.  
  38.  
  39. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  40. login='$login' and haslo='$haslo' and status=1");
  41.  
  42.  
  43. if (mysql_num_rows($wynik) == 1) {
  44. $info = mysql_fetch_array($wynik);
  45. $_SESSION["login"] = $info["login"];
  46. $_SESSION["imie"] = $info["imie"];
  47. $_SESSION["nazwisko"] = $info["nazwisko"];
  48. $_SESSION["image"] = $info["image"];
  49.  
  50. $last_login = date('YmdHis');
  51.  
  52.  
  53.  
  54. header('Location: index.php ');
  55. } else {
  56. echo '<span class="2">Zostały wprowadzone złe dane!</span>';
  57. }
  58. mysql_close($polaczenie);
  59. }
  60.  
  61.  
  62. echo <<< KONIEC
  63.  
  64.   <form class="form" action="logowaniee.php" method="post">
  65.   <input type="hidden" name="wyslane" value="TRUE" />
  66.  
  67.   <p>
  68. <div class="label"><label for="login"><font color="#000000">Login</font></label></div>
  69. <font color="#000000">
  70. <input type="text" name="login" id="login" />
  71. </font>
  72.  
  73. <p>
  74. <div class="label"><label for="haslo"><font color="#000000">Hasło</font></label></div>
  75. <font color="#000000">
  76. <input type="password" name="haslo" id="haslo" />
  77. </font>
  78.  
  79.   <p class="submit2">
  80.   <font color="#000000">
  81.   <input type="submit" value="Zaloguj mnie" />
  82.   </font>
  83.   </p>
  84.  
  85. <p class="przypomnij">
  86. <a href="przypomnieniee.php"><font color="#000000">Nie pamietasz hasła?</font></a>
  87. </p>
  88.  
  89.   </form>
  90. KONIEC;
  91.  
  92. } else {
  93. header('Location: index.php');
  94. }
  95.  
  96. if ($_GET["wylogowanie"] == "tak") {
  97.  
  98. header('Location: index.php');
  99. }
  100.  
  101. ?>
  102.  
  103.  
  104.  
  105. </div>
  106.  
  107. <p><br>
  108.  
  109.  


Znalazłem na internecie taką pomoc, w podobnej sprawie:


do formularza dodałem:
<input type="checkbox" name="autologin" value="1">

a do pliku
  1. <?php
  2. $suma_kontrolna=$_SESSION['login'].'_'.md5($_SESSION['login'].'!Q@W#E$R%T^Y&');
  3. if(isset($_POST['autologin'])) setcookie('autologin',$suma_kontrolna,time()+3600*24*14); // 14 dni
  4. ?>


  1. <?php
  2. if(isset($_COOKIE['autologin'])) {
  3. $tab=explode('_',$_COOKIE['autologin']);
  4. $suma_kontrolna=$tab[0].'_'.md5($tab[0].'!Q@W#E$R%T^Y&');
  5. if($suma_kontrolna==$_COOKIE['autologin']) $_SESSION['login']=$tab[0]; // Automatyczne logowanie
  6. }
  7. ?>


Po zalogowaniu (przy zaznaczeniu autologowania) - loguje się ok. Naciskam wyloguj. I teraz najważniejsze. Klikam w logowanie i automatycznie mnie loguje,czyli to o co mi chodziło, ale niestety nie jako dany użytkownik, tylko po prostu loguje.
Ponawiam prośbę o pomoc...

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:01