PHP-Script.hu
Kiemelt hirdetés:
2018. október 19. 10:57 péntek, ma Nándor névnap van


grafika


Videóbázis


Kategória: PHP
Online felhasználók
2011.07.02. 14:05

Előző cikket folytatva, most betekintést nyerhetünk abba, hogy hogyan is tudjuk megnézni, hogy jelenleg kik böngésznek minket.


Az előző cikkben már olvashattunk arról, hogy hogyan tudjuk megnézni azt, hogy kik látogatak meg minket ip cím alapján. Most ezt a cikket folytatva leírom nektek, hogy megtudjátok nézni, hogy jelenleg kik azok a felhasználók, akik most figyelnek minket, ugyan neveket nem kapunk róluk, de ip címet igen, így később ha csinálunk egy bejelentkező formot, és minden bejelentkezéskor mentjük a belépő ip címét, úgy tudjuk párosítani az online ip-kkel, így ha egyezés van ki tudjuk iratni a felhasználó nevét. Na de ez még odébb van, most inkább bágjunk bele a közepébe. :)

Rövid leírás, hogy mit csinálunk meg: Először is szükségünk lesz a már elkészített latogato táblára, ezt a táblát fogjuk szerkeszteni, ugyanis hozzá kell adnunk egy time oszlopot, ugyan meglehetne csinálni a datum táblából is a feladatott, de a time-ot azért is mutatom be, mert lehet más valakinek pont erre lesz szüksége. :) Ezek után lesz egy admin felületünk, ahol majd megtudjuk tekinteni az ip címeket, és az online tagokat.

 

Először is módosítsuk a táblánkat, az SQL részbe írjuk be ezt:

1
ALTER TABLE `latogato` ADD `timer` VARCHAR( 255 ) NOT NULL ;

Most már van egy újabb oszlopunk, ezután lássunk neki a php részének.

Először is nézzük meg, mit kell csinálnia a scriptünknek. Legfontosabb az, hogy tudjuk az ip címek, és az időt, amit majd time() függvénnyel fogunk megnézni, majd ezeket feltöltjük adatbázisba, ha még nincs fent ilyen ip, ha meg van akkor a time-ot változtatjuk meg. Ez után, hogy tudjuk az adminba, hogy online a tag, egy lekérdezést csinálunk, utána egy time() függvény lefutása után, a jelenlegi time-ból kivonjuk a lekérdezésben lévő time-ot. Ez után ha az érték kisebb, mint 300 akkor még online-nak mondjuk a tagot ( Ez csak 5 perc idő eltelte).

Na az elmélet után jöjjön a kód.

Először is csináljuk meg, amit már egyszer megcsináltunk a látogató ip címének lekérését.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
//ADATBÁZISHOZ//
define('MYSQL_HOST', "localhost");
define('MYSQL_USER', "felhasználóinév");
define('MYSQL_PASS', "jelszó");
define('MYSQL_BASE', "adatbázis neve");
 
//IP lekérdezése és tárolása változóban//
$IP = $_SERVER["REMOTE_ADDR"];
 
//CSATLAKOZÁS AZ ADATBÁZISHOZ ÉS LEKÉRDEZÉS, HOGY VAN-e ILYEN IP FENT//
$dbc = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die ("HIBA, NEM TUDOK CSATLAKOZNI!");
mysql_select_db(MYSQL_BASE, $dbc) or die ("NEM LÉTEZŐ ADATBÁZIS!");
 
$query = "SELECT ip FROM latogato WHERE ip = '$IP'";
$result = mysql_query($query, $dbc);
$latogato = mysql_num_rows($result);
 
//ELLENŐRZÉS, hogy feltölthető-e az új ip cím//
if ($latogato == "0") {
 $time = time();
 $query2 = "INSERT INTO latogato (ip, datum, timer) VALUES ('$IP', NOW(), '$time'");
 mysql_query($query2, $dbc);
}
else {
 $time = time();
 $query3 = "UPDATE latogato SET datum = NOW(), timer = '$time' WHERE ip = '$IP'";
 mysql_query($query3, $dbc);
}
mysql_close($dbc);
?>

Most már a rendszer müködik, ha már létezik az ip cím, akkor időt frissít, ha nem létezik, akkor meg létrehozza. Ez már garantált siker, de még megkéne tudnunk, hogy ki online, és ki nem. Na nézzük meg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
//ADATBÁZISHOZ//
define('MYSQL_HOST', "localhost");
define('MYSQL_USER', "felhasználóinév");
define('MYSQL_PASS', "jelszó");
define('MYSQL_BASE', "adatbázis neve");
 
//CSATLAKOZÁS AZ ADATBÁZISHOZ ÉS LEKÉRDEZÉS, HOGY VAN-e ILYEN IP FENT//
$dbc = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die ("HIBA, NEM TUDOK CSATLAKOZNI!");
mysql_select_db(MYSQL_BASE, $dbc) or die ("NEM LÉTEZŐ ADATBÁZIS!");
 
$time = time();
$time2 = $time-300;
 
$query = "SELECT ip FROM latogato WHERE time >= '$time2'";
$result = mysql_query($query, $dbc);
$latogato = mysql_num_rows($result);
 
echo "Jelenleg Online látogatók száma: ".$latogato;
echo "<br><br>Jelenleg online látogatók ip címei:<br>";
 
while($row = mysql_fetch_array($result)){
 echo $row["ip"]."<br>";
}
 
mysql_close($dbc);
?>

Ezt a scriptet érdemes levédeni, nehogy mások is lássák az ip címeket, amit csak remélhetőleg te szeretnél látni.

Remélem ez a lecke is sokban hozzásegítet ahhoz, hogy többet láss a php lehetőségeiben. Hamarosan ismét jelentkezem! :)


 Szerző: useriNferNaL Hozzászólások(5) Hozzászólások Megosztás az iWiW-en Megosztás az Facebook-on Megosztás a Google Reader-ben Megosztás az Twitter-en 



© 2006-2018 PHP-Script.hu, Minden jog fenntartva!
Design: Rácz Gergely, Oldalmotor: Rácz Gergely
Impresszum - Oldaltörténet - Oldalszabályzat