Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie userow
Forum PHP.pl > Forum > Przedszkole
timmy
Wszystko dziala prawie dobrze. Nie wiem tylko jak ustawic w tym czas dostepu na powiedzmy 3 godziny

I co zrobic w plikach ktore po autoryzacji beda mozliwe do przejrzenia.

Ustawic tam jakies session_start ? Tak zeby plik nie mogl byc wyswietlony jezeli uzytkownik nie przeszedl przez logowanie tylko wrocil do strony logowania i wyswietlil alert zaloguj sie aby miec dostep do wszystkich materialow.

  1. <?php
  2.  
  3. if ($_POST["cmd"]<>"") {
  4.   setcookie("cmdc", $_POST["cmd"], 2, "/");
  5. }
  6. ?>
  7. <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
  8. <html><head><meta http-equiv="content-type"
  9. content="text/html; charset=iso-8859-2">
  10. <title>title</title></head>
  11. <style type="text/css">
  12. </style>
  13. <body>
  14. <?
  15.  
  16. function checkcode($pass, $timev) {
  17.   $p=mysql_connect("host", "user", "pass");
  18.   mysql_select_db("base", $p);
  19.  
  20.   // check code
  21.   $result=mysql_query("SELECT * FROM table WHERE pass='$pass'", $p);
  22.   if (mysql_num_rows($result)==0) { mysql_close($p); return false; }
  23.  
  24.     // check date or input it
  25.      $1res=mysql_fetch_array($result);
  26.      if ($1res["data"]=="") {
  27.      $data = sprintf("%04d-%02d-%02d %02d:%02d:%02d",
  28.         date("Y"), date("m"), date("d"), date("H"), date("i"), date("s"));
  29.      mysql_query("UPDATE table SET data='$data' WHERE pass='$pass'", $p);
  30.      mysql_close($p); return true;
  31.      }
  32.      mysql_close($p);
  33.  
  34.    // is date older than correct
  35.    $data = sprintf("%04d-%02d-%02d %02d:%02d:%02d",
  36.    date("Y",time()-60*60*24*$timev), date("m",time()-60*60*24*$timev),
  37.    date("d",time()-60*60*24*$timev), date("H",time()-60*60*24*$timev),
  38.    date("i",time()-60*60*24*$timev), date("s",time()-60*60*24*$timev));
  39.    if ($1res["data"]>$data) return true;
  40.   return false;
  41. }
  42.  
  43.  
  44. if ($_POST["cmd"]<>"") $pass=$_POST["cmd"]; else $pass=$_COOKIE["cmdc"];
  45.  
  46. if (checkcode($pass, 3)) {
  47. header ("Location:site_adress&"); 
  48. }
  49.  else {
  50.   echo '
  51.  
  52. Input Password
  53.   <br><form action="log_in.php" method="post">
  54.   <input name="cmd" type="text" style="width:1350px;"><br>
  55.   <br><input type="submit" value="Enter!"></form>
  56.   ';
  57. }
  58.  
  59. ?>
  60. </body></html>
  61. ?>


poprawiam
---
nospor



prawie dziala... prawie robi wielka roznice

jestescie wielcy idacy dzielnie z pomaca biggrin.gif
Apo
Żeby można było łatwo sprawdzac czy użytkownik jest zalogowany czy nie kozystaj z sesji np:
  1. <?php
  2. if($_POST['login'] === $log && $_POST['haslo'] === $pass)
  3. {
  4. $_SESSION['auth'] = 1;
  5. $_SESSION['user'] = $login;
  6. $_SESSION['pass'] = $haslo;
  7. $_SESSION['ip'] = $numerip;
  8. header('Location: panel.php');
  9. }
  10. else {
  11. echo 'Błędne dane';
  12. }
  13. ?>


No i czy jest poprawnie zalogowany:

  1. <?php
  2. function logowanie() {
  3. global $numerip, $users_db;
  4. $logs = show( $users_db, $logs);
  5. $logs = unserialize($logs);
  6. for($i=0; $i<count($logs); $i++) {
  7. if($_SESSION['auth'] == 1 && $_SESSION['user'] == $logs[$i]['nick'] && $_SESSION['pass'] == $logs[$i]['pass'] && $_SESSION['ip'] == $numerip && $_SESSION['poziom'] == $logs[$i]['poziom'])
  8. {
  9. return true;
  10. }
  11. }
  12. }
  13. ?>

dałem ci tylko przykład z jakiego ja korzysam.

I takie cos jak napisałeś nie jest najlepszym rozwiązaniem:
"UPDATE table SET data='$data' WHERE pass='$pass'"
Bo co bedzie jeśli więcej niż 2 użytkowników ma te same hasło.
timmy
Apo to rozwiazani ktore wrzucilem tutaj jest jak dla mnie wystarczajace, bo to ja bede ustalal hasla wiec zadne sie nie powtorzy. Chodzi mnie tylko o to jak to ustawic na powiedzmy 2-3h aby dawalo dostep do innych plikow przez ten czas i co wstawic na poczatku tamtych plikow zeby nie byl do nich mozliwy dostep jesli ktos nei jest zalogowany.

Nospor sorka za znow niepoprawne wrzucenie kodu. Moze Ty mozesz cos pomoc w kwestii powyzej?
Apo
Cytat(timmy @ 2005-12-29 12:01:22)
co wstawic na poczatku tamtych plikow zeby nie byl do nich mozliwy dostep jesli ktos nei jest zalogowany.

No napisałem ci funcke i na początku kodu wstawiasz:
  1. <?php
  2. if(logowanie() == true)
  3. {
  4. /// może przeglądać zawartość strony
  5. }
  6. else
  7. {
  8. ///musisz się zalogować aby oglądać tą strone.
  9. }
  10. ?>


A co do tego czasu to można to zrobić w js ale to nie jest najlepsze rozwiązanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.