Logowanie(opis w kodzie)

  1. <?
  2.  
  3. $login = stripslashes(htmlspecialchars(trim($_POST['user']))); 
  4. $haslo = stripslashes(htmlspecialchars(trim($_POST['pass'])));
  5.  
  6. // wiadomo spradzam dane wysłane z formularza, odpowiednie je preparuje coby nie b
  7. &#322;y wysyłane jakieś śmieci itp.
  8.  
  9. // dalej jeśli wszystko przebiegło pozytywnie zostaje sprawdzony login i haslo w b
  10. zie
  11.  
  12. if ($error==0) { 
  13.  
  14. require_once('connect.php');
  15.  
  16. if(isset($_POST['user']) && isset($_POST['pass'])) {
  17.  
  18. $login = stripslashes(htmlspecialchars(trim($_POST['user']))); 
  19. $haslo = md5(stripslashes(htmlspecialchars(trim($_POST['pass']))));
  20.  
  21. $sprawdzlogin = mysql_query("SELECT id, login, haslo FROM userdata WHERE login = '$login' AND haslo = '$haslo' LIMIT 1");
  22. $wyniksprawdz = mysql_num_rows($sprawdzlogin);
  23.  
  24.  
  25. // jeśli login i haslo sie nie zgadzaja
  26. if($wyniksprawdz == 0) {
  27. $blad=1; 
  28. echo 'Niepoprawne Login lub Hasło'; 
  29.  
  30. }
  31.  
  32. // jeśli login i hasło są poprawne
  33. if ($blad==0) { 
  34. $userid=mysql_fetch_assoc($sprawdzlogin); // wyciaga id usera
  35. $_SESSION['id']=$userid['id']; // dodaje id usera do sesjii
  36. $_SESSION['logon'] = 1; // dla sprawdzenia czy sesja istnieje
  37. $_SESSION['login'] = $_POST['user']; //login w sesjii
  38. $_SESSION['password'] = $_POST['pass']; //haslo w sesjii ? 
  39. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; // ip polaczonego z serwerem
  40. header('Location: <a href=\"http://localhost/zawartosc.php');&#092;" target=\"_blank\">http://localhost/zawartosc.php');</a> //przekieorwanie na strone
  41. }
  42. }
  43. ?>


Jednak mam problem z plikiem zawartość.php po zalogowaniu:


  1. <?php
  2.  
  3. // sprawdzam pierw czy sesja logon podawana przy logowaniu istnieje, jesli nie, wy
  4. kakuje komunikat, dla pewnosci sesja jest niszczona i przekierowanie...
  5.  
  6. if($_SESSION['logon']==0){
  7. echo 'błąd';
  8. header('Location: <a href=\"http://localhost/');</a>
  9. exit();
  10. }
  11.  
  12. // jeśli jest ok i sesja istnieje zostaje wyświetlona zawartość strony
  13. ?>


Jednak problem mam z czasem dla sesjii, chciałbym aby w wypadku gdy user nic nie robi na stronie przez 5 minut [jest nie aktywny] sesja byłaby niszczona i przekierowana do jakiejś strony, w starym pliku miałem to tak:

  1. <?php
  2. $intTimeoutSeconds = 600;
  3.  
  4. if(isset($_SESSION['intLastRefreshTime'])){if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time()){session_destroy(); header('location: <a href=\"http://localhost/weronika/?mru=fi');}}&#092;" target=\"_blank\">http://localhost/');}}</a>
  5. $_SESSION['intLastRefreshTime'] = time();
  6. ?>



Jednak nie wiem jak to mam połaczyć...

Poprzedni plik zawierał też :

  1. <?php
  2. if(!isset($_SESSION['logon']) || !isset($_SESSION['login']) || !isset($_SESSION['password']) || !isset($_SESSION['ip'])) {
  3. // echo "3";
  4. return 0;
  5. }
  6.  
  7. $login = $_SESSION['login'];
  8. $password = $_SESSION['password'];
  9. $ip = $_SESSION['ip'];
  10.  
  11. if($_SERVER['REMOTE_ADDR'] != $ip) {
  12. // echo "4";
  13. return 0;
  14. }
  15. ?>


Czy też muszę coś takeigo dodać w pliku do zalogowania/lub w wypadku poprawnego zalogowania przy dodawaniu sesjii?