Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Uwierzytelnianie użytkowników
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam,

planuję stworzyć stronę internetową zawierającą część dostępną tylko dla zalogowanych użytkowników. Gotowe rozwiązania mam przedstawione w książce PHP i MySQL Tworzenie stron WWW. Vademecum profesjonalisty. Mam wydanie 3 z 2005 roku. W zwiazku z tym mam pytanie na ile rozwiązania tam przedstawione (oparte na sesjach) są aktualne i bezpiecznie. Czy coś się zmieniło? A może ktoś może polecić bardziej aktualną publikację zawierającą opis takich rozwiązań? Albo najlepiej przykład kodu dostępnego w internecie?


--------------------
"Jak Cię widzą tak Cię piszą, chyba żeś jest wielką fiszą"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Neymar11
post
Post #2





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 20.02.2015
Skąd: localhost

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


Musisz utworzyc w mysql tabele a w php to musisz miec 4 podstawowe pliki:

index.php - sprawdzaenie czy zalogowany i udostepnianie zawartosci dla zalogowanych
login.php - logowanie na podstawie danych z bazy
register.php - rejestracja uzytkownika do bazy
logout.php - wylogowywanie z serwisu, usuwanie sesji

W sprawie indes.php to tak:

  1. if (isset($_SESSION['username'])) {
  2. // tresc dla zalogowanych
  3. } else {
  4. // tresc dla niezalogowanych
  5. }


login.php

  1. $istnieje = "SELECT * FROM users WHERE username = '$username'";
  2. if (!$istnieje) {
  3. // tresc jesli user nie istnieje
  4. } else {
  5. $_SESSION['username'] = $usename;
  6. // wiadomosc po zalogowaniu
  7. }


register.php

  1. if (isset($_SESSION['username'])) {
  2. // tresc dla zalogowanych
  3. } else {
  4. $username = mysql_real_escape_string($_POST['username']);
  5. $password = mysql_real_escape_string($_POST['password']);
  6. $email = mysql_real_escape_string($_POST['email']);
  7. $wstaw = "INSERT INTO user (username, password, email) VALUES ('$username', '$password', '$email')";
  8. if (!$wstaw) {
  9. // wiadomosc jesli rejestracja sie nie powiodla
  10. } else {
  11. // wiadomosc jezeli zarejestrowano
  12. }
  13. }


i logout.php

  1. if (isset($_SESSION['username'])) {
  2. unset($_SESSION['username']);
  3. // wiadomosc jesli wylohowano
  4. } else {
  5. // wiadomosc jezeli byles juz wylogowany
  6. }


Teraz musisz dopisac większą (moim zdaniem) część kodu.
Jezeli chcesz to mogę ci pomóc już osobiście z tym
Jak coś byś chciał to pisz na PW smile.gif


--------------------
  1. if (!mysql_select_db($conn, 'baza'))
  2. {
  3. mysql_ssie('bardzo');
  4. or die("Uzywaj MySQLi lub PDO!");
  5. }


Cytat
Prawdziwy programista ma grupe krwi C
Transfuzja mozliwa tylko po skompilowaniu lub wykonaniu kodu...
Go to the top of the page
+Quote Post
Boshi
post
Post #3





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


@Neymar11 proponuję najpierw przeczytać co tutaj za bzdury naklepałeś.

Ten post edytował Boshi 9.04.2015, 12:09:59
Go to the top of the page
+Quote Post
Neymar11
post
Post #4





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 20.02.2015
Skąd: localhost

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


O co ci chodzi?? Koleś, serio? Przecież to była tylko podpowiedż na jakiej zasadzie to ma zrobić...
Nikt nie dawał tu całego kodu...
Powiedziałem mu, żeby sb reszte dopisał, albo napisał mi na pw jak nie ogarnia, co nie?
Ogarnij @Boshi ... -.-
A co do moich kodów, to co takiego niezrozumialego tam jest?
Powiedz mi choć jedno... smile.gif


--------------------
  1. if (!mysql_select_db($conn, 'baza'))
  2. {
  3. mysql_ssie('bardzo');
  4. or die("Uzywaj MySQLi lub PDO!");
  5. }


Cytat
Prawdziwy programista ma grupe krwi C
Transfuzja mozliwa tylko po skompilowaniu lub wykonaniu kodu...
Go to the top of the page
+Quote Post
aras785
post
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


@Neymar11 zanim wrzucisz odpowiedź to dobrze przeczytaj pytanie i sprawdzaj kod który podsyłasz czy wgl. działa... Twój kod jest stary sad.gif

pierwszy przykład z google: http://www.phpro.org/tutorials/Basic-Login...-and-MySQL.html


ps. co to jest:
  1. $istnieje = "SELECT * FROM users WHERE username = '$username'";
  2. if (!$istnieje) {
  3. // tresc jesli user nie istnieje
  4. } else {
  5. $_SESSION['username'] = $usename;
  6. // wiadomosc po zalogowaniu
  7. }
haha.gif

Ten post edytował aras785 9.04.2015, 12:55:03
Go to the top of the page
+Quote Post
Boshi
post
Post #6





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


Chociażby to co wrzucił Aras, jeżeli myślisz, że autor mający 0 podstaw dopisze sobie sam zapytanie i sprawdzi wyciągając ilość wierszy to jesteś w błędzie (Chyba, że ty sam nie wiesz co napisałeś)- bo kod który zacytował Aras sprawdza jedynie czy zapytanie jest poprawnie semantyczne. Nie będę wyciągał większej ilości błędów.


p.s Zachowuj się, jesteś na forum publicznym.
Go to the top of the page
+Quote Post
Neymar11
post
Post #7





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 20.02.2015
Skąd: localhost

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


ahh no przepraszam zapomnialem o tym w login.php

  1. if (mysql_num_rows($istnieje) > 0) {
  2. // logowanie
  3. // pobieranie danych o userze
  4. // sprawdzanie poprawnosci hasla
  5. } else {
  6. // tresc jesli nie istnieje
  7. }


przepraszam bardzo was wszystkich

Ten post edytował Neymar11 9.04.2015, 16:03:28


--------------------
  1. if (!mysql_select_db($conn, 'baza'))
  2. {
  3. mysql_ssie('bardzo');
  4. or die("Uzywaj MySQLi lub PDO!");
  5. }


Cytat
Prawdziwy programista ma grupe krwi C
Transfuzja mozliwa tylko po skompilowaniu lub wykonaniu kodu...
Go to the top of the page
+Quote Post
Boshi
post
Post #8





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


To jest dalej źle... brakuje chociaż by funkcji wykonującej zapytanie z serii mysql_*, ponadto nie sprawdzasz hasła w ogóle.
Go to the top of the page
+Quote Post
IProSoft
post
Post #9





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


A dodatkowo nie ma sensu aby zaczynał naukę od funkcji mysql* które są przestarzałe.

Co do książki, to rzuć ją w kąt i lepiej zainteresuj się jakimiś tutorialami w necie z max kilku lat wstecz.


--------------------
Manual prawdę Ci powie.
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 Aktualny czas: 21.08.2025 - 03:00