![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 13.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
witam wszystkich forumowiczów.
zacząłem ostatnio zabawę z php. postanowiłem napisać prosty skrypt rejestracji i logowania, oparty na plikach tekstowych. póki co rejestracja działa, ale jak się zabrać za logowanie nie mam pojęcia. index.php Kod <!DOCTYPE html> <html> <head> <title>My Website</title> <link href="style.css" rel="stylesheet" /> <link href="http://fonts.googleapis.com/css?family=Anton" rel="stylesheet" /> </head> <body> <h1>REGISTRATION FORM</h1> <form action="register.php" method="post"> <ul> <li> <input name="name" type="text" /> </li> <li> <input name="password" type="password" /> </li> <li> <input type="submit" /> </li> </ul> </form> <h1>LOGIN FORM</h1> <form action="login.php" method="post"> <ul> <li> <input name="name" type="text" /> </li> <li> <input name="password" type="password" /> </li> <li> <input type="submit" /> </li> </ul> </form> </body> </html> register.php Kod <?php $name = $_POST['name']; $password = $_POST['password']; $file = fopen("file.txt", "a"); fputs($file, $name . ":" . $password . "\n"); fclose($file); echo "User added!"; ?> plik login.php chciałbym rozwiązać w następujący (albo w zupełnie inny, jeśli tak będzie lepiej): 1. otwieram plik "file.txt" za pomocą fopen. 2. pobieram każdą linijkę za pomocą fgets do jakiejś zmiennej / tablicy (nie wiem jak to zrobić ;<). 3. za pomocą funkcji $durna_nazwa = list($user, $pass) = explode(":", zmienna_lub_do_tych_pobranych_linijek). niestety tego też nie wiem jak zrobić. 4. sprawdzam dane z formularza do logowania czy istnieje taki login, a jeśli tak to porównuje wpisane hasło do tego przechowywanego w pliku tekstowym (to sobie jakoś już poradzę). nie proszę o gotowe rozwiązanie, ale o w miarę proste do zrozumienia wskazówki, ponieważ chcę się czegoś nauczyć, a utknąłem. pozdrawiam, miłego wieczoru / dnia. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zobacz co to jest CSV jako format pliku i w ten sposób zapisuj dane (login i hasło). Możesz dzięki temu łatwo potem je pobierać z PHP (np.: funkcja fgetcsv())
Struktura jest prosta: Kod login1;haslo1 login2;haslo2 ... a fgetcsv zwróci Ci ładnie po kolei z każdej linii tablicę składającą się z loginu i hasła. -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Kolega mi powie w którym miejscu sprawdza, czy użytkownik już istnieje w bazie?
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 13.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
po wielu trudach mój plik login.php wygląda następująco (proszę, nie śmiejscie się ze mnie ;p):
Kod <?php if(!isset($_POST['name'])) { $_POST['name'] = ""; } if(!isset($_POST['password'])) { $_POST['password'] = ""; } $name = $_POST['name']; $password = $_POST['password']; $file = file("file.txt"); foreach($file as $line) { $user = explode(":", $line); $user[0] = str_replace("", "", $user[0]); $user[1] = str_replace("\n", "", $user[1]); $saved_name = $user[0]; $saved_password = $user[1]; if($name == $saved_name && $password == $saved_password) { echo "You have successfully logged in."; } } ?> jest on nadal nieukończony, ale przynajmniej już coś powoli działa. teraz powinienem dodać pod if'a rozpoczęcie sesji "zalogowany" czy coś w tym stylu? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Na przykład to
można zamienić na: -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 13.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
@Sephirus, dziękuję za porady w poście wyżej. Mógłbyś mnie nakierować czy nie powinienem teraz używać plików cookie albo sesji, żeby użytkownik miał rozszerzony dostęp do strony po zalogowaniu?
Po kolejnym dniu nauki PHP i wielu próbach wdrożenia rzeczy, których się nauczyłem do skryptu, mój kod wygląda następująco: header.php
index.php
register.php
login.php
logout.php
Macie jakieś pomysły / uwagi co mogę zrobić, żeby to lepiej wyglądało / działało? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 03:59 |