Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system logowania - problem
areli
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.10.2008

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


mam kilka pytań... aktualnie średnio sobie radzę w programowaniu obiektowym, więc potrzebuje waszej pomocy...

zrobiłem system logowania z mini panelem i problem jest taki:

1) jak się zaloguje lub wyloguje, to muszę odświeżyć stronę żeby dopiero zobaczyć efekt... co jest nie tak?

2) chciałbym żeby kod był przejrzysty i elegancko napisany, a mam podejrzenia że dużo w tym bałaganu... czy można by napisać to ciekawiej... może krócej i efektowniej?


  1. <?php
  2.  
  3. class Logowanie
  4. {
  5.    var $login;
  6.    var $pass;
  7.    var $id;
  8.    var $db;
  9.    var $wynik;
  10.    var $ile;
  11.    
  12.    function __construct()
  13.    {
  14.        if (isset($_SESSION['zalogowany']))
  15.        {
  16.            echo "<p>Jesteś zalogowany. Twój login to: ".$this -> login."</p>
  17.            <br />";
  18.            echo " | "."<a href='panel/index.php?menu=4'>Panel</a>"." | "."
  19.            <a href='".$_SERVER['PHP_SELF']."?logout=yes'>Wyloguj</a>"." | ";
  20.        }
  21.        else
  22.        {
  23.            echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>
  24.                <p>Nie jesteś zalogowany.</p>
  25.                <p>
  26.                    <label>Login: </label><input type='text' size='10' name='konto' />
  27.                    <label>&nbsp;&nbsp;Hasło: </label><input type='password' size='10' name='password' />
  28.                    <input type='submit' value='>>' name='p_log' />
  29.                </p>
  30.            </form>";
  31.            
  32.            $this -> Uwierzyt();
  33.        }
  34.        
  35.        if (isset($_GET['logout']) && ($_GET['logout'] == 'yes'))
  36.        {
  37.            $this -> wyloguj();
  38.        }
  39.    }
  40.    
  41.    public function Uwierzyt()
  42.    {
  43.        if (isset($_POST['konto']) && isset($_POST['password']) )
  44.        {
  45.            $this -> login = trim($_POST['konto']);
  46.            $this -> pass = trim($_POST['password']);
  47.            //    $pass = sha1(md5($pass));
  48.  
  49.            if (empty($this -> login) || empty($this -> pass))
  50.                echo"Błąd: Wypełnij wszystkie pola!";
  51.            else
  52.                $this -> sql_connect();
  53.        }
  54.    }
  55.    
  56.    public function sql_connect()
  57.    {
  58.        @$this -> db = mysqli_connect (DB_HOST, DB_USER, DB_PASS, DB_NAME);
  59.        if (!$this -> db)
  60.            echo "Połączenie z serwerem bazy danych nie powiodło się!";
  61.        else
  62.        {
  63.            $zapytanie = "SELECT id_log FROM user WHERE login='$this->login' and passbaz='$this->pass'";
  64.            $this -> sql_query ($zapytanie);
  65.        }
  66.    }
  67.    
  68.    public function sql_query ($zapytanie)
  69.    {
  70.        if (!$this -> wynik = mysqli_query($this -> db, $zapytanie))
  71.            echo "Połączenie z serwerem bazy danych nie powiodło się!";
  72.        else
  73.            $this -> sql_ile();
  74.    }
  75.    
  76.    public function sql_ile()
  77.    {
  78.        if (!$this -> ile = mysqli_num_rows ($this -> wynik))
  79.            echo "Błędny login lub hasło. Spróbuj jeszcze raz!";
  80.        else
  81.            $this -> sql_fetch_array();
  82.    }
  83.    
  84.    public function sql_fetch_array()
  85.    {
  86.        $tab = mysqli_fetch_assoc ($this -> wynik);
  87.        
  88.            $this -> id = $tab['id_log'];
  89.            $_SESSION['id'] = $this -> id;
  90.            $_SESSION['zalogowany']= $this -> login;
  91.    }
  92.    
  93.    public function wyloguj()
  94.    {http://forum.php.pl/system_logowania_problem_t112090.html#
  95.        $usuw_uzytk = $_SESSION['zalogowany'];
  96.        unset($_SESSION['zalogowany']);
  97.        unset($_SESSION['id']);
  98.        session_destroy();
  99.    }
  100.    
  101. }
  102. ?>


z góry dzięki za pomoc,
pzdr.

Ten post edytował areli 30.01.2009, 11:42:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
może jestem w błędzie, ale jakoś średnio jestem przekonany do bbcode...
Nie stosując BBCode dla kodu PHP zniechęcasz do jego analizowania, a nawet to uniemożliwiasz - zstanów się jeszcze raz.
Cytat
ponadto taki tekst moderatora wydaje mi się nie na miejscu
Cytat
Popraw bbcode na [php] w przeciwnym wypadku temat zostanie zamkiety
Niestosowne? Jasne, proste polecenie + uprzejma informacja o skutkach niedostosowania się
Cytat
odpowiedź Crozin’a to sugestie i własne przemyślenia... niewykluczone że ma rację, ale ja nie jestem zobowiązany stosować się do wszystkiego w 100%
Własne przemyślenia (mocno nietrafiony zwrot) to co najwyżej punkt 4-ty. Pierwszy to sprawy "techniczne", dwa następne to poprostu błędy, 4-ty - tutaj wspomniane własne "przemyślenia", a na końcu znowu błąd.
Cytat
najlepiej kogoś kto w sposób praktyczny potrafiłby pokazać jak powinien wyglądać mój system logowania...
Czyli mamy Ci niby taki przykładowy system napisać?
Cytat
s. czy do oddzielenia kodu użyć jakiegoś framework’a?
Na podstawie tego wątku mogę stwierdzić, że na zabawę z FW jest dla Ciebie stanowczo za wcześnie.
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: 14.10.2025 - 02:30