Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]php - prosty system rejestracji i logowania na plikach tekstowych
tomek1537
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tomek1537
post
Post #2





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
  1. <?php
  2. ?>
  3.  
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <title>My Website</title>
  8. <link href="stylesheet.css" rel="stylesheet" />
  9. </head>
  10. <body>
  11. <div class="grebciu_001">
  12. <div class="grebciu_002">
  13. <?php
  14. if(isset($_SESSION['logged_in'])) {
  15. echo "<p>You are logged in as " . $_SESSION['logged_in'] . ".</p>";
  16. }
  17. if(!isset($_SESSION['logged_in'])) {
  18. echo "<p>You are not logged in.";
  19. }
  20. ?>
  21. </div>
  22. </div>


index.php
  1. <?php
  2. include 'header.php';
  3. ?>
  4. <h1>FORMULARZ REJESTRACJI</h1>
  5. <form action="register.php" method="post">
  6. <ul>
  7. <li>
  8. <input name="name" type="text" />
  9. </li>
  10. <li>
  11. <input name="password" type="password" />
  12. </li>
  13. <li>
  14. <input type="submit" />
  15. </li>
  16. </ul>
  17. </form>
  18. <h1>FORMULARZ LOGOWANIA</h1>
  19. <form action="login.php" method="post">
  20. <ul>
  21. <li>
  22. <input name="name" type="text" />
  23. </li>
  24. <li>
  25. <input name="password" type="password" />
  26. </li>
  27. <li>
  28. <input type="submit" />
  29. </li>
  30. </ul>
  31. </form>
  32. </body>
  33. </html>


register.php
  1. <?php
  2. if(!isset($_POST['name'])) {
  3. $_POST['name'] = "";
  4. }
  5.  
  6. if(!isset($_POST['password'])) {
  7. $_POST['password'] = "";
  8. }
  9.  
  10. $name = $_POST['name'];
  11. $password = $_POST['password'];
  12.  
  13. $file = fopen("file.txt", "a");
  14. fputs($file, $name . ":" . $password . "\n");
  15. fclose($file);
  16.  
  17. echo "User added!";
  18. ?>


login.php
  1. <?php
  2.  
  3. if(!isset($_POST['name'])) {
  4. $_POST['name'] = "";
  5. }
  6.  
  7. if(!isset($_POST['password'])) {
  8. $_POST['password'] = "";
  9. }
  10.  
  11. $name = $_POST['name'];
  12. $password = $_POST['password'];
  13.  
  14. $file = file("file.txt", FILE_IGNORE_NEW_LINES);
  15.  
  16. foreach($file as $line) {
  17. list($saved_name, $saved_password) = explode(":", $line);
  18.  
  19. if($name == $saved_name && $password == $saved_password) {
  20. echo "You have successfully logged in.";
  21.  
  22. $saved_name = ucfirst($saved_name);
  23. $_SESSION['logged_in'] = $saved_name;
  24. }
  25. }
  26. ?>


logout.php
  1. <?php
  2. ?>


Macie jakieś pomysły / uwagi co mogę zrobić, żeby to lepiej wyglądało / działało?
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: 11.10.2025 - 12:35