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?
<?php
class Logowanie
{
var $login;
var $pass;
var $id;
var $db;
var $wynik;
var $ile;
function __construct()
{
if (isset($_SESSION['zalogowany'])) {
echo "<p>Jesteś zalogowany. Twój login to: ".$this -> login."</p> <br />";
echo " | "."<a href='panel/index.php?menu=4'>Panel</a>"." | "." <a href='".$_SERVER['PHP_SELF']."?logout=yes'>Wyloguj</a>"." | ";
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'> <p>Nie jesteś zalogowany.</p>
<p>
<label>Login: </label><input type='text' size='10' name='konto' />
<label> Hasło: </label><input type='password' size='10' name='password' />
<input type='submit' value='>>' name='p_log' />
</p>
</form>";
$this -> Uwierzyt();
}
if (isset($_GET['logout']) && ($_GET['logout'] == 'yes')) {
$this -> wyloguj();
}
}
public function Uwierzyt()
{
if (isset($_POST['konto']) && isset($_POST['password']) ) {
$this -> login = trim($_POST['konto']); $this -> pass = trim($_POST['password']); // $pass = sha1(md5($pass));
if (empty($this -> login) || empty($this -> pass)) echo"Błąd: Wypełnij wszystkie pola!"; else
$this -> sql_connect();
}
}
public function sql_connect()
{
@$this -> db = mysqli_connect (DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (!$this -> db)
echo "Połączenie z serwerem bazy danych nie powiodło się!"; else
{
$zapytanie = "SELECT id_log FROM user WHERE login='$this->login' and passbaz='$this->pass'";
$this -> sql_query ($zapytanie);
}
}
public function sql_query ($zapytanie)
{
if (!$this -> wynik = mysqli_query($this -> db, $zapytanie))
echo "Połączenie z serwerem bazy danych nie powiodło się!"; else
$this -> sql_ile();
}
public function sql_ile()
{
if (!$this -> ile = mysqli_num_rows ($this -> wynik))
echo "Błędny login lub hasło. Spróbuj jeszcze raz!"; else
$this -> sql_fetch_array();
}
public function sql_fetch_array()
{
$tab = mysqli_fetch_assoc ($this -> wynik);
$this -> id = $tab['id_log'];
$_SESSION['id'] = $this -> id;
$_SESSION['zalogowany']= $this -> login;
}
public function wyloguj()
{http://forum.php.pl/system_logowania_problem_t112090.html#
$usuw_uzytk = $_SESSION['zalogowany'];
unset($_SESSION['zalogowany']); }
}
?>
z góry dzięki za pomoc,
pzdr.
Ten post edytował areli 30.01.2009, 11:42:16