Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]System Logowania, proszę o pomoc., php + mysql
kurdak
post 2.07.2007, 23:45:29
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 1.05.2007
Skąd: Gryfino

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


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.
Go to the top of the page
+Quote Post
pentel
post 4.07.2007, 12:43:40
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


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
Go to the top of the page
+Quote Post
Piotrwusek
post 15.07.2007, 13:36:53
Post #3





Grupa: Zarejestrowani
Postów: 399
Pomógł: 7
Dołączył: 11.06.2007
Skąd: Poznan

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


Ten system który podałeś działa?
Go to the top of the page
+Quote Post
scorpio
post 23.08.2007, 15:18:02
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.08.2007

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


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
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 Wersja Lo-Fi Aktualny czas: 15.08.2025 - 02:56