Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System Logowania, proszę o pomoc.
Forum PHP.pl > Forum > PHP
kurdak
Witam ponownie.
Po kilku dniach napisałem i nawet całkiem dobrze system logowania.
Z góry dziękuję za wskazówki.
Podam kod i proszę o wszczelkie poprawki.

Zacznę od logowanie.html

Kod
<html>
<head>
<title>Logowanie</title>
</head>
<body>
<form method="post" action="sprawdz.php">
Login: <input type="text" name="login" />
Hasło: <input type="password" name="password" />
<input type="submit" value="zaloguj sie" />
</form>
</body>
</html>


rejestracja.html

Kod
<html>
<head>
<title>Rejestracja</title>
</head>
<body>
<form method="post" action="rejestracja.php">
Login: <input type="text" name="user" />
Hasło: <input type="password" name="pass" />
<input type="submit" value="Zarejstruj się" />
</form>
</body>
</html>


plik.php

  1. <?php
  2. //session_register('zalogowany');
  3. if ( isset( $_SESSION['zalogowany'] ) )
  4. {
  5.  
  6. echo 'Wiadomosc dla zalogowanego uzytkownika';
  7. echo '<a href="wyloguj.php">Klik</a>';
  8. }
  9.  
  10. else
  11. {
  12. echo 'zaloguj się';
  13. } 
  14. ?>



rejestracja.php

  1. <?php
  2. require_once "dane.php";
  3.  
  4. $query = mysql_query("SELECT * FROM uzytkownicy WHERE `user` = '" . $_POST['user'] . "' ");
  5. $fetch = mysql_fetch_array($query);
  6. if ( ! $fetch ) // jesli user NIE zostanie znaleziony w bazie
  7. {
  8. $result= mysql_query("insert into uzytkownicy values ('$user', md5('$pass'))");
  9. echo 'Teraz możesz przejść do logowania ! <br><a href="logowanie.html">Klik</a>';
  10. }
  11. else
  12. {
  13. echo 'Przykto mi urzytkownik już istnieje !<br><a href="rejestracja.html">Rejestracja</a>';
  14. }
  15. ?>


sprawdz.php

  1. <?php
  2. require_once "dane.php";
  3.  
  4. $query = mysql_query("SELECT * FROM uzytkownicy WHERE `user` = '" . $_POST['login'] . "' ");
  5. $fetch = mysql_fetch_array($query);
  6. if ( $fetch ) // jesli user zostanie znaleziony w bazie
  7. {
  8. if ( md5( $_POST['password'] ) == $fetch['pass'] ) // jesli haslo sie zgadza
  9. {
  10. $_SESSION['zalogowany'] = '1';
  11. echo 'logowanie zakonczone sukcesem<br>';
  12. echo 'Zalogowany';
  13. echo '<a href="plik.php">Klik</a>';
  14. }
  15. else
  16. {
  17. echo 'Przykro mi, ale podane haslo jest bledne';
  18. }
  19. }
  20. else
  21. {
  22. echo 'Podany uzytkownik nie istnieje w bazie danych';
  23. }
  24. ?>


wyloguj.php

  1. <?php
  2. echo 'wylogowano';
  3. ?>


dane.php - tu znajdują sie dane do połączenia z bazą danych

  1. <?php
  2. $conn=mysql_connect("localhost", "root", "haslo");
  3. mysql_select_db("baza", $conn);
  4. ?>


* Zależy mi na poprawieniu w rejestracja.php tego fragmentu `user` = '" . $_POST['user'] . "' nie wiem jak to zrobić bo nie potrzebna jest chyba spora część kodu.

* Drugim błędem jaki zauważyłem to w czasie rejestracji jak wpiszemy urzytkownika który już istnieje pokarze nam sie strona ze ten user juz jest. Po odświerzeniu tej strony w bazie dzieją sie dziwne żeczy, jak tego uniknąć??

* I po trzecie i jak narazie ostatnie to proszę o pomoc w plikach sprawdz.php i logowanie.html chciał bym jakoś ujednolicić nazwy zmiennych ale nie zabardzo wiem jak.

Z góry bardzo dziękuję i mam nadzięję ze komuś też przyda się ten kod.
pentel
Co do pierwszego punktu to chodzi o to, żeby przefiltrować to, co pochodzi od obcych (bo to ktoś obcy wypełniał formularz).
  1. <?php
  2. require_once "dane.php";
  3. $loginzformularza = mysql_real_escape_string($_POST['login']);
  4. $query = mysql_query("SELECT * FROM uzytkownicy WHERE `user` = '" . $loginzformularza . "' ");
  5. //...
  6. //analogicznie zrób w rejestracji
  7. //...
  8. ?>

Co do drugiego punktu, to "dziwne rzeczy" nie wiele mi mówi. W kodzie masz tylko że jeśli użytkownik jednak zostanie znaleziony w bazie danych, to wyświetli się komunkat, że użytkownik o takim loginie już istnieje.
Co do trzeciego punktu to zdaje się, że wszystko w porządku. Chodzi o to, żeby name="xxx" w formularzu był taki sam jak $_POST['xxx']

Pozdrawiam
Piotrwusek
Ten system który podałeś działa?
scorpio
Ja bym potrzebował podobny skrypt logowań i rejestracji ale taki który nie wymagał by bazy mysqll a innej tego typu a hasła i login były przechowywane w zwykłym prostym pliku i nie kodowne smile.gif wiem moze jak takie coś wykombinowac bo wszedzie spotykam tylko skrypty które wymagaj bazy danych sad.gif
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.