da, imam bazu sa userima. nešto sam ja napravio. ajd pogledaj ova dva file pa prosudi:
skripta koja provjerava stanje logiranosti i te slične sitnice:
<?php
class userLog {
public $data;
public $username;
private $db;
public $login;
private $login_required = true;
public function SessionStart() {
if (!isset($_SESSION['login'])) {
session_start();
}
}
public function SessionStop(){
if (isset($_SESSION['login'])) {
unset($_SESSION['login']);
}
session_destroy();
}
public function __construct() {
$this->data;
$this->SessionStart();
global $db;
$this->db =& $db;
}
public function check_status() {
if ($this->login_required == true) {
$login = $this->session_check_status();
}
else {
$login = false;
}
if ($login == true) {
echo "<div class=\"small_font\">Uspješno ste ulogirani.</div>"."<br><hr width=\"150\" color=\"#538095\" align=\"left\">";
echo "<br>";
echo "<div class=\"odjava\"><form action=". $_SERVER['PHP_SELF']."method=\"GET\">[<a href=".$_SERVER['PHP_SELF']."?logout> Odjava </a>]</form></div>";
}
else {
echo "<div class=\"small_font\">Logiranje nije uspjelo"."<br><hr width=\"150\" align=\"left\" color=\"#538095\">"."<br><br></div>";
}
}
private function session_check_status() {
if (isset($_SESSION['login']) and
!isset($_POST['username']) and
!isset($_POST['password']) and
!isset($_GET['logout'])) {
$this->user_active();
return true;
}
elseif (isset($_SESSION['login']) and
isset($_POST['username']) and
isset($_POST['password'])) {
return $this->try_to_login($_POST['username'], $_POST['password']);
}
elseif (isset($_POST['username']) and
isset($_POST['password'])) {
return $this->try_to_login($_POST['username'], $_POST['password']);
}
elseif (isset($_GET['logout'])) {
$this->user_not_active();
$this->SessionStop();
return false;
}
else {
return false;
$this->user_not_active();
}
}
private function try_to_login($username1, $password) {
$passScr = md5(crc32($password));
$kod = "SELECT DG_nick, DG_ime, DG_prez
FROM dg_users
WHERE dg_username = \"$username1\"
AND dg_password = \"$passScr\"";
$rs = $this->db->GetAll($kod);
$rs_count = count($rs);
if ($rs_count == 1) {
if ($rs[0]['DG_nick'] == "Administrator") {
$_SESSION['admin'] = $rs[0]['DG_nick'];
$_SESSION['login'] = $rs[0]['DG_nick'];
$_SESSION['ime'] = $rs[0]['DG_ime'];
$_SESSION['prez'] = $rs[0]['DG_prez'];
$this->username = $rs[0]['DG_nick'];
} else {
$_SESSION['login'] = $rs[0]['DG_nick'];
$_SESSION['ime'] = $rs[0]['DG_ime'];
$_SESSION['prez'] = $rs[0]['DG_prez'];
$this->username = $rs[0]['DG_nick'];
}
$this->login = true;
return true;
}
else {
$this->login = false;
return false;
}
}
private function user_active() {
if (isset($_SESSION['login'])) {
$kod_active = 'UPDATE dg_users SET status="A" WHERE DG_nick="'.$_SESSION['login'].'"';
$this->db->Execute($kod_active) or die ("Error");
}
}
public function user_not_active() {
if (isset($_SESSION['login'])) {
$kod_inactive = 'UPDATE dg_users SET status="NA" WHERE DG_nick="'.$_SESSION['login'].'"';
$this->db->Execute($kod_inactive) or die ("Error");
}
}
}
?>
a evo i skripte koja ispisuje sve logirane usere:
<?php
class showUser {
private $db;
public function __construct() {
global $db;
$this->db =& $db;
}
public function show_all_loged_users() {
$kod = 'SELECT DG_nick FROM dg_users WHERE status = "A"';
$rez = $this->db->GetAll($kod);
$broj_kor = count($rez);
if ($broj_kor == 0) {
echo "Nema aktivnih korisnika";
}
else {
echo "<table>";
echo "<tr><td><b>Logirani korisnici:</b></td><tr>";
for($i = 0; $i < $broj_kor; $i++) {
echo "<tr><td align=\"right\">".$rez[$i]['DG_nick']."</td></tr>";
}
echo "</table>";
}
}
}
ili jednostavno odi na
http://davor.webit.hr registriraj se pa vidi.
problem mi je u tome što kada se odlogiram koristeći "logout" sve je uredu, znači status logiranosti je "NA"-not active.
kada se ulogiram, status je "A"-active.
ali kad zatvorim browser, status u bazi ostane "A". nisam baš iskusan php programer pa malo šteka.
evo sad sam napisao bibliju, ali rekao sam samo potrebno.
[Ovu poruku je menjao dgrubel dana 24.04.2006. u 21:44 GMT+1]