Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Logowanie na sesjach i mysql :P, Czyli mój pierwszy własny skrypt
marian2299
post
Post #1





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Napisałem własne skrypty, działają i wgl, ale muszą zostać zabezpieczone. W związku z tym piszcie, czy napisałem w miarę ok, czy są rażące widoczne błędy, itp.
Plik logowanie.php
  1. <?php
  2. sesion_start(); //rozpoczęcie sesji
  3.  
  4. $login = mysql_real_escape_string($_POST['login']); //określenie zmiennej login, dodanie backshalsy
  5. $haslo = mysql_real_escape_string(md5($_POST['haslo'])); //określenie zmiennej haslo, dodanie backshalsy,kodowanie md5
  6.  
  7. if ($login != "" && $haslo != ""){ //sprawdzanie czy zmienne nie są puste
  8.  
  9. $zapytanie = "SELECT * FROM `uzytkownicy` WHERE login="'. $login.'" and haslo="'.$haslo.'" "; //zapytanie
  10. $uzytkownik = mysql_fetch_array(mysql_query($zapytanie) or die("Wystąpił nieoczekiwany błąd.")); //tworzymy tablicę
  11.  
  12. $_SESSION['login'] = $uzytkownik['login']; //określamy zmienną sesyjną login
  13. $_SESSION['haslo'] = $uzytkownik['haslo']; //określamy zmienną sesyjną haslo
  14. $_SESSION['id'] = $uzytkownik['id']; //określamy zmienną sesyjną id
  15. echo "Zostałeś zalogowany jako: ".$_SESSION['login'].""; //jeśli wszystko ok, wyświetlamy login
  16. }
  17. else {
  18. echo 'Podałeś błędne dane, spróbuj ponownie.'; //jeśli nie baj baj
  19. }
  20.  
  21. ?>


Czy wszystko robię ok ? Czy jest to odporne na SQJ injection ? Macie może jakieś sugestie ?
Czy w pliku tylko dla zalogowanych w zupełności wystarczy:
  1. <?php
  2. if (!isset($_SESSION['login']) || !isset($_SESSION['haslo'])) {
  3. header("location:index.php"); // Przekierowanie do index.php
  4. }
  5. ?>


Ten post edytował marian2299 17.08.2009, 00:34:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marian2299
post
Post #2





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Czyli zostawić id i login? Będzie działać wszystko?
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(marian2299 @ 17.08.2009, 01:07:08 ) *
Czyli zostawić id i login? Będzie działać wszystko?


Właściwie jeżeli nie będziesz wykorzystywał tych informacji to możesz zrobić po prostu:

  1. $_SESSION['login'] = true;


I potem na podstronach sprawdzać:
  1. if ($_SESSION['login'] === true) {
  2. // zalogowany
  3. }else{
  4. // niezalogowany
  5. }


Działać, będzie nawet w pierwotnej wersji, lecz pisałeś chyba z myślą o przebudowie...
Jak wspomniałem, wyrażenia regularne i możesz odpuścić wtedy mysql_real_escape_string (na haśle możesz od razu usunąć bo i tak hashujesz)
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 09:47