Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa ?, klasa systemu logowania
wolferin
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.12.2005

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


witam
mam system logowania oparty na MySQL który na moje potrzeby działa dobrze, ale niechce go przepisywac za każdym razem gdy robię nowy projekt.Chciałbym to upakowac w klase tylko nie bardzo wiem jak, moje OOP jest narazie na poziomie podstawowym.
Chodzi mi o pokazanie przykładu takiej klasy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
dtb
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


wstaw wszystkie funkcje i zmienne do klasy, dodaj na poczatku public/private/..., utworz deklaracje zmiennych i ewentualnie konstruktor, w ktorym przypiszesz do tych zmiennych wartosci.
Go to the top of the page
+Quote Post
wolferin
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.12.2005

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


mniej wiecej wiem jak to zrobić , ale jednak juz tak namieszałem ze nie moge sie z tego wyplątać, tak jak mówiłem moje OOP jest narazie nędzne a klasy które pisze są na poziomie ala ma kota (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) , a tym bardziej ze mój system logowania jest dość złożony to jeszcze nieporadze sobie z tym
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Rozpisz sobie (na kartce) jakich metod do obslugi bazy bedziesz potrzebowal - polaczenie, wykonanie zapytania, pobranie ilosci wierszy zwroconych, itd., zapisz ich parametry, zwracane wartosci, wrzuc do klasy i zaimplementuj te metody.
Go to the top of the page
+Quote Post
wolferin
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.12.2005

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


po wielu bólach zrobiłem coś takiego i nawet to chodzi, ale strasznie mi sie to niepodoba.
  1. <?php
  2. class system_autoryzacji{
  3. private $login;
  4. private $haslo;
  5. private $link;
  6. private $dbname;
  7. private $query;
  8. private $result;
  9. private $dane;
  10. private $wynik;
  11.  
  12. public function logowanie(){
  13.  
  14. $login = $_POST["login"];
  15. $haslo = $_POST["haslo"];
  16. if ($_GET["login"]=="koniec") { // wylogowanie
  17. } else if ($login<>"" and $haslo<>"") {
  18. $haslo = md5($haslo);
  19. $dbname ="moja_baza";
  20. if ($link = mysql_connect('moj_host','moj_user','moj_pass')){
  21. if (mysql_select_db($dbname) or die (mysql_error())) {
  22. $query = "SELECT * FROM user WHERE login='$login' and haslo='$haslo' and status=5";
  23. $result = mysql_query ($query ,$link) or die (mysql_error());
  24. if (mysql_num_rows($result)==1) {
  25. $dane=mysql_fetch_array($result);
  26. $_SESSION["zalogowany"]="tak";
  27. $_SESSION["login"]=$dane["login"];
  28. $_SESSION["imie"]=$dane["imie"];
  29. $_SESSION["email"]=$dane["email"];
  30. }
  31. } else echo "Nie można połaczyc sie z baza";
  32. }
  33. }
  34. }
  35.  
  36. public function formularz_logowanie (){
  37. if ($_SESSION["zalogowany"]=="tak") {
  38. echo "<p>Zalogowany : <b>".$_SESSION["login"]."</b></p>";
  39. echo "<br><a href="klasa_logowanie.php?login=koniec">wyloguj sie</a>";
  40. echo "<br><a href="zmiany.php">zmien hasło</a>";
  41. echo "<br><a href="index2.php">index2</a>";
  42. } else {
  43. echo <<<KONIEC
  44. <center>
  45. <form action="klasa_logowanie.php" method="post">
  46. <table>
  47. <tr>
  48. <td align="right">login:&nbsp;</td>
  49. <td><input type="text" name="login" /></td>
  50. </tr>
  51. <tr>
  52. <td align="right">hasło:&nbsp;</td>
  53. <td><input type="password" name="haslo" /></td>
  54. </tr>
  55. <tr>
  56. <td colspan="2" align="right">
  57. <input type="submit" value="zaloguj" /></td>
  58. </tr>
  59. </table>
  60. </form>
  61. <a href="rejestracja.php?opcja=przypomnij">PRZYPOMNIJ HASŁO</a></br />
  62. <a href="rejestracja.php">ZAREJESTRUJ SI!</a>
  63. </center>
  64. KONIEC;
  65. }
  66. }
  67. }
  68.  
  69. $logo = new system_autoryzacji();
  70. $logo -> logowanie();
  71. $logo -> formularz_logowanie();
  72. ?>

jakie macie propozycje zeby to poprawić i jak?
Go to the top of the page
+Quote Post
Diablos
post
Post #6





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Ja napisalem takie cos, tez nie wiem czy jest poprawne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2.  
  3. class User
  4. {
  5. public $uLogin;
  6. public $uPass;
  7.  
  8.  
  9. public function __construct ( $userLogin, $userPass )
  10. {
  11. $this->uLogin = $userLogin;
  12. $this->uPass = md5($userPass);
  13. }
  14.  
  15. public function Login ( )
  16. {
  17. global $db, $tb_users;
  18.  
  19. $qTl = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM ' . $tb_users . ' WHERE login = '' . $this->uLogin . '' AND password = '' . $this->uPass . '' '));
  20.  
  21.  
  22. if ( $qTl[0] !== 0 )
  23. {
  24. $_SESSION['aUser'] = $this->uLogin;
  25. }
  26. }
  27.  
  28. public function Logout ( )
  29. {
  30. unset($_SESSION['aUser']);
  31. }
  32.  
  33.  
  34. }
  35. ?>


Ten post edytował Diablos 4.12.2005, 13:04:56
Go to the top of the page
+Quote Post
wolferin
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.12.2005

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


ma ktos jeszcze jakieś propozycje co do mojego tworu?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

----edit----
Proszę nie nabijać postów.
~mike_mech
Go to the top of the page
+Quote Post
bigu
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 7.06.2005

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


wolferin:
tez sie dopiero ucze ale wydaje mi sie ze wyswietlanie formularza jako jedna z metod klasy to chyba cos nie tak - nie o to chodzi w obiektowce. Moim zdaniem, choc mylic sie moze, wiec moze ktos mnie poprawi?

Pozdro
Go to the top of the page
+Quote Post
Aloyzz
post
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.08.2004

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


Access_user Class
Go to the top of the page
+Quote Post
sobstel
post
Post #10





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


Cytat(Diablos @ 2005-12-04 13:04:40)
Ja napisalem takie cos, tez nie wiem czy jest poprawne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

osobiscie uwazam ze cos jest oprawne jesli dziala (bez bledow skladniowych i logicznych) i jest zgodne z jasno sprecyzowanymi poczatkowymi zalozeniami i oczekiwaniami. tak wiec wedlug tego sam ocen czy jest poprawne... ;-)
Go to the top of the page
+Quote Post
Ociu
post
Post #11





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  1. <?php
  2. final class MemberLog {
  3. private $user;
  4.  
  5. public function __construct( $u ) {
  6. $this->user = $u;
  7. }
  8.  
  9. public function in( $pass ) {
  10. $q = mysql_query("SELECT pass FROM ". TBL_NAME ." WHERE name='".$this->user."'");
  11. return (mysql_fetch_row($q) === $pass) ? true : false;
  12. }
  13. }
  14. ?>


index.php
  1. <?php
  2. $member = new MemberLog($_POST['nick']);
  3. if($member->in($_POST['password'])) setcookie('in', 'in', time()+3600);
  4. ?>


pozdrawiam

Ten post edytował Ociu 16.12.2005, 16:41:08
Go to the top of the page
+Quote Post

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: 7.10.2025 - 13:23