Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Koncepcja panelu logowania - uzytkownikow
--JurekOgorek--
post 24.04.2008, 19:44:56
Post #1





Goście







Witam, mam taki problem

zastanawiam się w jaki najprostrzy sposób zrobić panel logowaina dla użytkowników - bez rejestracji...

Chodzi mi o to że:
1. Login i haslo sprawdzane sa z baza danych
2. jesli sa poprawne wyswietla dane ktore sa przypisane danemu ID, jesli ktos wpisze czyjes ID dane nie zostana wyswietlone...


Tak mam zrobiony panel administratora (odrazu moze ktos pwoiedziecz czy jest w miare bezpieczny - nie potrzebuje jakis hiper zabezpieczen, nie bedzie tam danych od NASA_


Moze dalo by się to jakos wykorzystac?

Jesli ktos napisze slownie lub praktycznie to bede b. wdzieczny,
dobrym tutkiem tez nie pogardze - mialem gdzies jeden ale zgubilem link sad.gif z jakiegos forum bodajże...

  1. <?php
  2. if (isset($_POST['haslo'])&&isset($_POST['login']))
  3. {
  4. if ($_POST['haslo'] === "haslo1"&&$_POST['login'] === "haslo")
  5. {
  6. $_SESSION['zalogowany'] = 1;
  7. $_SESSION['czas'] = time();
  8. }
  9. else
  10. {
  11. $login_form = new cTemplate;
  12. $logine->assign['log'] = $login_form->parse("templates/login.html");
  13. $logine->assign['msg'] = "Podałes błędne hasło!";
  14. echo $logine->parse("templates/panel.html");
  15.  
  16. exit;
  17. }
  18. }
  19.  
  20. if (isset($_SESSION['zalogowany'])&&isset($_SESSION['czas'])&&($_SESSION['zalogowany']===1))
  21. {
  22. if (time()-$_SESSION['czas'] < 1800)
  23. {
  24. $_SESSION['czas'] = time();
  25. $logine->assign['log'] = "";
  26. $page->assign['status'] = "<div class=\"zalogowany\">Jestes zalogowany</div>";
  27.  
  28.  
  29. }
  30. else
  31. {
  32. $login_form = new cTemplate;
  33. $login_form->assign['msg'] = "przekroczono czas bezczynnosci<br>zaloguj sie ponownie";
  34. $logine->assign['log'] = $login_form->parse("templates/login.html");
  35.  
  36.  
  37. }
  38. }
  39. ?>
Go to the top of the page
+Quote Post
Mlodycompany
post 24.04.2008, 20:42:56
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


spróbuj tego
  1. <?php
  2. $connect = mysql_connect("localhost", "root", "root"); // połączenie z bazą
  3. mysql_select_db("baza"); // wybór bazy
  4. function zaloguj($user, $pass){
  5. $sprawdz = mysql_query("SELECT * FROM `users` WHERE `login` = '".$user."' AND `pass` = '".$pass."'"); 
  6. $suma_sprawdz = mysql_num_rows($sprawdz);
  7. $row = mysql_fetch_array($sprawdz);
  8. if($suma_sprawdz == 0){
  9. $_SESSION['zalogowany'] = true;
  10. $_SESSION['login'] = $row['login'];
  11. }
  12. }
  13. if(isSet($_POST['login']) && isSet($_POST['pass])){ // sprawdzenie czy dane nie sa puste
  14. zaloguj($_POST['login'], $_POST['pass']); // wykonanie funckji
  15. echo "Zostałeś zalogowany jako $_SESSION['login]";
  16.  
  17.  
  18. ?>
  19. <form action=index.php method=post>
  20. <input type=text name=login><br>
  21. <input type=password name=pass><br>
  22. <input type=submit value=zaloguj>
  23. </form>
Go to the top of the page
+Quote Post
maniekl2
post 24.04.2008, 20:58:36
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

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


Mój poprzednik napisał cos takiego :
  1. <?php
  2. $sprawdz = mysql_query("SELECT * FROM `users` WHERE `login` = '".$user."' AND `pass` = '".$pass."'"); 
  3. $suma_sprawdz = mysql_num_rows($sprawdz);
  4. $row = mysql_fetch_array($sprawdz);
  5. if($suma_sprawdz == 0){
  6. $_SESSION['zalogowany'] = true;
  7. $_SESSION['login'] = $row['login'];
  8. ?>

Jednak coś mi nie gra bo z tego wynika że jeżeli liczba rekordów jest 0 to wtedy loguje, nie powinno byc odwrotnie ?
A ja zawsze zamiast tego stosuje inne rozwiazanie które według mnie jest bardziej bezpieczne :
  1. <?php
  2. $sprawdz = mysql_query("SELECT login, pass FROM `users` WHERE `login` = '".$user."' AND `pass` = '".$pass."'"); 
  3. $row = mysql_fetch_array($sprawdz);
  4. if($row['login'] == $user && $row['pass'] == $pass){
  5. $_SESSION['zalogowany'] = true;
  6. $_SESSION['login'] = $row['login'];
  7. ?>

Może troche spowalniać ale nie ma mowy o "SQL Injection" smile.gif
Go to the top of the page
+Quote Post
Mlodycompany
post 24.04.2008, 21:55:01
Post #4





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


maniek rzeczywiscie sie pomylilem. autor tematu niech sobie zabezpieczy na wlasne potrzeby, bo ja mu jeszcze nie bede zabezpieczal, wystarczy ze dostal skrypt bo od kogos innego by bylo ciezko dostac bo ja sam nie moglem dostac i musialem sam zrobic:D
Go to the top of the page
+Quote Post

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: 13.06.2025 - 22:52