Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Koncepcja panelu logowania - uzytkownikow
Forum PHP.pl > Forum > Przedszkole
-JurekOgorek-
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. ?>
Mlodycompany
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>
maniekl2
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
Mlodycompany
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
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.