Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MSSQL]Logowanie - drobna pomoc
Forum PHP.pl > Forum > Przedszkole
amster
Witam:)
Mam nadzieje, że mi pomożecie smile.gif) Od razu zaznaczam smile.gif Że szukałem dużo w google jak pisać logowanie co najlepiej używać.

Chciałbym Was prosić o sprawdzenie, czy takie logowanie może być, hmm to nie ma być skrypt do jakiegoś dużego serwisu, tylko do strony gdzie dostęp do panelu będzie miał tylko i wyłącznie admin. I chcę też zaznaczyć, że dopiero zaczynam przygodę z tym językiem.

Ogólnie skrypt jest na sesji oraz ciachu, żeby pamiętał logowanie, aktualnie jest na godzinę. Skrypt sprawdzony i ogólnie działa, jedyny błąd jaki występuje to wciąż napis "Musisz podać login oraz hasło." Z tego co mi się wydaje dzieje się tak przez klamrę z 10 linijki, lecz gdy chciałem ją gdzie indziej umieścić zwracał mi błąd;/

Proszę jeszcze o wyrozumiałość i nie negowanie od razu tego co tu spleciłem:P


  1. <?php
  2. include('config.php');
  3.  
  4. if (empty( $_POST['login'] ) && empty( $_POST['haslo'] ) )
  5. {
  6. echo 'Musisz podać login oraz hasło.';
  7. }
  8. else
  9. {
  10. $login = mysql_real_escape_string($_POST['login']);
  11. $haslo = mysql_real_escape_string(md5($_POST['login']));
  12.  
  13. $query = "SELECT * FROM administracja WHERE login = '$login' and haslo = '$haslo'";
  14. $idquery = mysql_query($query);
  15. $user = mysql_fetch_array($idquery);
  16.  
  17. if($login == ''.$user['login'].'' && $haslo == ''.$user['haslo'].'')
  18. {
  19. if(isset($_POST['pamietaj']))
  20. {
  21. $_SESSION['login'] = $user['login'];
  22. setcookie("admin","admin", time()+3600);
  23. header("location: index.php");
  24. }
  25.  
  26. $_SESSION['login'] = $user['login'];
  27. }
  28. else
  29. {
  30. echo 'Podałeś błędny login lub hasło';
  31. }
  32.  
  33. }
  34.  
  35. if($_SESSION['login'] || isset($_COOKIE['admin']))
  36. {
  37. echo 'Jestes zalgowany jako '.$_SESSION['login'].', <a href="?p=wyloguj">Wyloguj</a>';
  38. }
  39. else
  40. {
  41. echo '<form method="POST">
  42. <input type="hidden" name="send"/>
  43. Login:<input type="text" name="login"><br/>
  44. Haslo:<input type="password" name="haslo"><br/>
  45. <INPUT TYPE="checkbox" name="pamietaj"><b>Zapamiętaj</b><br />
  46. <input type="submit" name="submit" value="Loguj"></form>';
  47. }
  48.  
  49. if($_GET['p']=='wyloguj')
  50. {
  51.  
  52. setcookie("admin" , "admin", time()-3600);
  53. header("Location: index.php");
  54. }
  55. ?>
Ulysess
co do komunikatu "Musisz podac......" skoro przy logowaniu tworzysz zmienną sesyjną wykorzystać to i zamiast POST login i hasło sprawdź czy dana zmienna sesyjna istnieje.
r4xz
  1. if($login == ''.$user['login'].'' && $haslo == ''.$user['haslo'].'')

po co taki bigos?
  1. if($login == $user['login'] && $haslo == $user['haslo'])

wystarczy

co do "Musisz podać login oraz hasło."
to daj go jako
  1. if(isset($_POST)) {
  2. .... // jeśli formularz wysłany
  3. }


btw. linia 6 i 13,
nie powinno być
  1. $haslo = mysql_real_escape_string(md5($_POST['haslo']));

?
amster
Hmmm;p Kurcze nie rozumiem.

Chodzi o coś takiego?
  1. if (isset($_SESSION('login')))
  2. {
  3.  
  4. //tutaj ten kod początkowy?
  5.  

r4xz
niezupełnie*

  1. if ( empty( $_POST ) && isset( $_POST ) ) {
  2. echo 'Musisz podać login oraz hasło.';
  3. }
amster
Super;) Już jest Ok;) Wystarczyło dodać to
  1. if(isset($_POST['send']))
  2. {
  3. // dalszy kod



PS. Dzięki za korekte;P Bo nie zwróciłem uwagi że w zmiennej hasła był login;p


A teraz, czy możecie mi powiedzieć, czy jak na początek to w miarć dobry kod?
r4xz
dobry, ale co do autologowania
1. nowa tabela w bazie danych
2a. przy logowaniue normalnym z zapamietaniem logowania generowac kod i dodac do bazy danych (i zapisac w cookie)
2b. przy autologowaniu porownanie kodu z cookie do tego w bazie
3. wygenerowanie nowego kodu (po autologowaniu, nie po kazdym przelozeniu strony)
4. jesli to panel admina to jeszcze do bazy zapisywac id i sprawdzac potem cyz jest to samo (daje nam to pewnosc ze nawet jak ktos wykradniem nam kod z cookie to i tak sie nie zaloguje)
amster
Hmmmm:P No kurcze wszystko fajnie pisze:) Ale niestety nie mam zielonego pojęcia jak to zrobićbiggrin.gif Więc wiesz:D

Średnio z tym:)

Kurcze słuchajcie, mam jeszcze jeden problem z tego co widzę;//

Cały kod mam zaincludowany przed znacznikami <html>. I z tego co widzę, robią mi się krzaki:// Kod pisany jest w notepad++ Kodowanie UTF-8 (bez BOM).
Oto co mi się pokazuje przy wyświetlaniu:/ Same krzaczyska;/ I tekst wylewający się poza strone.
Przykład niepoprawnego wyświetlania


A gdy już nacisnę przycisk loguj, nieważne czy zaloguje, czy wyskoczy błąd hasła, bądź komunikat wprowadź hasło i login, to wszystko wraca tak jak powinno być;// Tutaj potwierdzenie w screenie;// Czy ma ktoś jakiś pomysłquestionmark.gif
Przykład poprawnego wyświetlania
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.