napisalem sobie system logowania. Wszystko OK działa. Jednakże nie zapamiętuje ... czasem na krótką chwilę ....

  1. <?php
  2.  
  3. function formularz_logowania( $login_php=0, $error=0 )
  4. {
  5.  
  6. //Błąd logowania
  7. $error = ( $error == 1 ) ? '<span class="form_error"><strong>Niepoprawny login/hasło !</strong></span>' : '';
  8.  
  9.  
  10. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  11.  
  12. <div class="naglowek_d">
  13.  Zaloguj się
  14. </div>
  15.  
  16. <div class="content_1" style="padding-top:10px;padding-left:10px;padding-bottom:8px;text-align:center">
  17.  
  18. <span class="topLogowanie">Login:</span>
  19.  
  20. <input type="text" size="12" class="topLogowanieS" style="width:65px" name="login" /><br />
  21.  
  22. <span class="topLogowanie">Hasło:</span>
  23.  
  24. <input type="password" size="12" class="topLogowanieS" style="width:65px" name="pass" /><br />
  25.  
  26. <span class="topLogowanie">Zapamiętaj:</span>
  27.  
  28. <input name="zapamietaj" type="checkbox" value="1" /><br />
  29.  
  30. <input id="topZaloguj" type="submit" name="submit" value="ZALOGUJ" /><br />
  31.  
  32. </div>
  33. </div>
  34.  
  35. </form>
  36.  
  37.  
  38. ';
  39. }
  40.  
  41. function zalogowany( $sesja=0, $login_php=0, $id=)
  42. {
  43. $sql = "SELECT id FROM wiadomosci WHERE odbiorca=".$_SESSION['logowanie']['id']." AND status='1' AND folder='0'";
  44. $ile = mysql_num_rows( mysql_query( $sql ) );
  45.  
  46.  
  47. <div class="naglowek_d">
  48. '.$plec.' &nbsp; '.$sesja.'
  49. </div>
  50. </div>
  51. ';
  52.  
  53. }
  54.  
  55. function zapis( $wyszukaj=0 )
  56. {
  57. //Czas życia ciasteczka;
  58. $czas_ = 86400*30*3;
  59.  
  60. /*Zapisywanie do sesji danych użytkownika z bazy*/
  61. while ( $wynik2 = mysql_fetch_array( $wyszukaj ) )
  62. {
  63. $_SESSION['logowanie'] = $wynik2;
  64.  
  65. $wykonaj = mysql_query( "SELECT * FROM users_zezwolenia WHERE id_usera=".$wynik2['id']."" );
  66. while( $users = mysql_fetch_array( $wykonaj ) )
  67. {
  68. /*Zapisywanie do sesji uprawnień*/
  69. $_SESSION['u'] = $users;
  70. /**/
  71. }
  72.  
  73. /*Zapisywanie do sesji danych użytkownika z bazy*/
  74. $_SESSION['id'] = $wynik2['id'];
  75. $_SESSION['id_log'] = $wynik2['id'];
  76. $_SESSION['haslo']  = $wynik2['haslo'];
  77. $_SESSION['ost_log'] = $wynik2['ostatnie_logowanie'];
  78.  
  79. $_SESSION['forum']['kod'] = $wynik2['kod'];
  80. /**/
  81.  
  82. }
  83. /**/
  84.  
  85.  
  86. if( $_POST['zapamietaj'] == '1' )
  87. {
  88. $kod = rand( 1200000000, 999999999999 );
  89.  
  90. //zmiana kodu i daty ostatniego logowania
  91. $sql0 = "UPDATE `users` SET `ostatnie_logowanie`='".date( "Y-m-d H:i:s" )."', `kod`='".$kod."' WHERE `id`='".$_SESSION['logowanie']['id']."'";
  92. $wykonaj0 = mysql_query ( $sql0 );
  93.  
  94. setcookie( "zapamietaj", $_SESSION['logowanie']['login'], time()+$czas_ );
  95. setcookie( "zapamietaj2", $kod, time()+$czas_ );
  96. }
  97. ?>


  1. <?php
  2. else
  3. {
  4. //zmiana daty ostatniego logowania
  5. $sql0 = "UPDATE `users` SET `ostatnie_logowanie`='".date( "Y-m-d H:i:s" )."' WHERE `id`='".$_SESSION['logowanie']['id']."'";
  6. $wykonaj0 = mysql_query ( $sql0 );
  7.  
  8. }
  9. }
  10.  
  11. /*
  12. -----------
  13. --------------------------------------------------------------------------------
  14. -----------
  15. */
  16.  
  17. if( $_SESSION['logowanie']['id'] )
  18. {
  19. echo zalogowany( $_SESSION['logowanie']['login'], $head_inc_php_theme, $id);
  20. }
  21.  
  22. elseif( isset( $_POST['pass'] ) && isset( $_POST['login'] ) )
  23. {
  24. $wyszukaj = mysql_query( "SELECT * FROM users WHERE login='".mysql_escape_string( $_POST['login'] )."' AND haslo='".mysql_escape_string( $_POST['pass'] )."' LIMIT 1" );
  25. $ile = mysql_num_rows( $wyszukaj );
  26.  
  27.  
  28. //poprawny login i haslo, utworzenie sesji z loginem usera
  29. if( $ile == 1 )
  30. {
  31. echo zapis( $wyszukaj );
  32. echo zalogowany ( $_SESSION['logowanie']['login'], $head_inc_php_theme, $id);
  33. }
  34.  
  35. else
  36. {
  37. echo formularz_logowania( $head_inc_php_theme, 1 );
  38. }
  39.  
  40. }
  41.  
  42. elseif( isset( $_COOKIE['zapamietaj'] ) && isset( $_COOKIE['zapamietaj2'] ) )
  43. {
  44. $wyszukaj = @mysql_query( "SELECT id, login, data_rejestracji, cookie FROM `users` WHERE `login`='".mysql_escape_string( $_COOKIE['zapamietaj'] )."' AND `kod`='".mysql_escape_string( $_COOKIE['zapamietaj2'] )."'" );
  45. $wynik = @mysql_num_rows($wyszukaj);
  46. if( $wynik == 1 )
  47. {
  48. echo zapis( $wyszukaj );
  49. echo zalogowany ( $_SESSION['logowanie']['login'], $head_inc_php_theme, $id);
  50. }
  51. else
  52. {
  53. echo formularz_logowania( $head_inc_php_theme, 1 );
  54. }
  55. }
  56.  
  57. else
  58. {
  59. echo formularz_logowania( $head_inc_php_theme );
  60. }
  61.  
  62.  
  63.  
  64. if ( $_GET['mode'] == 'wyloguj' )
  65. {
  66. unset( $_SESSION['logowanie'] );
  67.  
  68. setcookie( "zapamietaj", $_SESSION['logowanie']['id'], time()-86400 );
  69. setcookie( "zapamietaj2", $_SESSION['logowanie']['cookie'], time()-86400 );
  70. header( "Location:".$_SERVER['PHP_SELF']."" );
  71. }
  72.  
  73.  
  74. if ( $_GET['mode'] == 'zapamietaj' )
  75. {
  76. setcookie( "auto", $_SESSION['logowanie']['id'], time()+$czas_ );
  77. setcookie( "zapamietaj2", $_SESSION['logowanie']['cookie'], time()+$czas_ );
  78. header( "Location: ".$_SERVER['PHP_SELF'] );
  79. }
  80.  
  81. ?>