Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

user-list skripta

[es] :: PHP :: user-list skripta

[ Pregleda: 2441 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Davor Grubelić
Davor Grubelić

Član broj: 46879
Poruke: 280
*.cmu.carnet.hr.

Jabber: nameless21@elitesecurity.org
ICQ: 341103380


Profil

icon user-list skripta24.04.2006. u 19:11 - pre 218 meseci
AJD OVAKO. trebam pomoć oko jedne skripte. naime, na svoj guestbook ću staviti prikaz svih logiranih korisnika. zanima me kako bi to napravio. ajd ljudi ajdte ideje i prijedloge. sve sam ostalo napravio al me zanima kako napravit taj prikaz. ne trebam kod. samo natuknice šta trebam radit.
ustvari, pseudo kod. dobro, ne baš pseudo kod, ali onako ugrubo.

neću nikoga molit, ali zato pitam hoćete li mi pomoć.

ili ako neko ima već gotovu skriptu, neka mi pošalje

[Ovu poruku je menjao dgrubel dana 24.04.2006. u 20:14 GMT+1]
 
Odgovor na temu

_korso_

Član broj: 82797
Poruke: 163
*.adsl.sezampro.yu.



+1 Profil

icon Re: user-list skripta24.04.2006. u 19:51 - pre 218 meseci
Pa posto sigurno imas bazu sa user-ima, kada se neko loguje (ili kako vec proveravas da li ti je neko na sajtu), u bazi stavis neki flag npr. "log in" pored username-a tog usera. Kada si proverio da je on na sajtu pomocu tog flag-a, ispises (gde hoces njegovo ime ili bilo koje podatke i to ti je to). Kada se otkaci sa sajta samo promenis flag u "log out" i izvrsis refresh strane (ili gde gledas listu trenutnih online usera) i njega nema vise na to listi aktivnih (online) usera.
 
Odgovor na temu

Davor Grubelić
Davor Grubelić

Član broj: 46879
Poruke: 280
*.cmu.carnet.hr.

Jabber: nameless21@elitesecurity.org
ICQ: 341103380


Profil

icon Re: user-list skripta24.04.2006. u 20:40 - pre 218 meseci
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]
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.243.*

Sajt: ohridnews.com


Profil

icon Re: user-list skripta24.04.2006. u 23:43 - pre 218 meseci
Mislim da ne mozes tako da resavas problem sa odlogiranjem.
Ako se korisnik ne odlogira, nego samo iskljuci browser, on ce se i dalje voditi ko online.
Aktivnost korisnika moras provjeravati vremenski.
Kad se korisnik logira stavis u bazu vreme kad se logirao.
Dajes neko vreme recimo 15 min, ako ne uradi nista na sajtu ili iskljuci browser, kada sledeci korinik dodze na sajt da proveri dali negde postoji veci vremenski razmak veci od 15 min i da tamo postavi da je korisnik ofline.

 
Odgovor na temu

_korso_

Član broj: 82797
Poruke: 163
*.adsl.sezampro.yu.



+1 Profil

icon Re: user-list skripta25.04.2006. u 01:10 - pre 218 meseci
Kao sto kaze glavince. Znaci user dodje i loguje se promenis flag u "A" i upises u bazu i IP njegov (da budes jos sigurniji koji ti se user loguje) i upises vreme kada je dosao tj. se logovao. Ako sada on iskljuci browser a ne odloguje se ostaje ti ono "A" u bazi (kao da je aktivan i dalje) kao sto i sam kazes. Sada stavis neki vremenski interval (od npr 5 min mada je to tvoja volja).Verovatno ti je u cilju da sto pre onaj koji nije na vezi se obrise sa one online liste. Zato mozes da stavis da ti vreme koje se proverava bude nekoliko sekundi ili slicno. Kada se isti user vrati, ti na pocetku te stranice preko koje se loguje, proveravas trenutno vreme i ako je uslov koji sam malopre reko ispunjen jednostavno prvo u bazi promenis flag u "NA" pa onda tek user moze da popunjava formu za login.
Nadam se da si shvatio poentu. Ovo je verovatno samo jedan od nacina. Ostaje samo da se iskodira.
 
Odgovor na temu

[es] :: PHP :: user-list skripta

[ Pregleda: 2441 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.