Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie userow, wszystko dziala tylko jak to poustawiac
timmy
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.11.2005

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


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. ?>

(IMG:http://forum.php.pl/uwaga.gif)
poprawiam
---
nospor



prawie dziala... prawie robi wielka roznice

jestescie wielcy idacy dzielnie z pomaca (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Apo
post
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Ż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.
Go to the top of the page
+Quote Post
timmy
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.11.2005

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


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?
Go to the top of the page
+Quote Post
Apo
post
Post #4





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:19