Jump to content

[PHP] Logarea IP-urilor si sursele vizitatorilor.


Jackie Dee
 Share

Recommended Posts

Salutare, in acest tutorial va voi arata cum puteti face un log al vizitatorilor.

Pentru a-l urma aveti nevoie de cunostinte de baza in PHP si MySQL.

 

Pentru inceput avem nevoie de o baza de date si un tabel.

Se pot face din phpMyAdmin in 2 pasi, manual: Tabel nou, 5 campuri si Continutul acestuia; sau automat prin query-ul de mai jos:

 

 

CREATE TABLE `ip_log` (

`id` INT NOT NULL AUTO_INCREMENT ,

`ip_vizitator` VARCHAR( 15 ) NOT NULL ,

`sursa` TEXT NOT NULL ,

`pagina` TEXT NOT NULL ,

`data_ora` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

PRIMARY KEY ( `id` ) ) ENGINE = MYISAM

 

 

Cream un fisier ip_log.php in care punem:

<?php

// date autentificare

$mysql_host = "localhost";

$mysql_database = "baza_de_date";

$mysql_user = "user";

$mysql_password = "parola";

 

// variabile necesare

 

$ip = $_SERVER['REMOTE_ADDR'];

$sursa = $_SERVER[HTTP_REFERER];

$pagina = $_SERVER[REQUEST_URI];

 

// conexiunea la baza de date

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die('Nu ma pot conecta la baza de date.');

mysql_select_db($mysql_database) or die('Nu pot selecta baza de date');

 

// query pentru a verifica daca ip-ul exista deja

 

$query = "SELECT * FROM ip_log WHERE ip_vizitator = '$ip' LIMIT 1";

$result = mysql_query($query);

 

if (mysql_num_rows($result) == 0) { // iar daca nu exista putem continua

$query = "INSERT INTO ip_log (`ip_vizitator`, `sursa`, `pagina`) VALUES('$ip', '$sursa', '$pagina')";

mysql_query($query);

}

 

// dupa ce am terminat inchidem conexiunea cu baza de date

mysql_close($conn);

?>

 

Acum, in paginile pe care vreti sa le monitorizati includeti acest script printre primele linii.

<?php include ('ip_log.php'); ?>

 

Pentru afisarea datelor avem nevoie de urmatorul cod:

<?php

// date autentificare

$mysql_host = "localhost";

$mysql_database = "baza_de_date";

$mysql_user = "user";

$mysql_password = "parola";

 

// conexiunea la baza de date

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die('Nu ma pot conecta la baza de date.');

mysql_select_db($mysql_database) or die('Nu pot selecta baza de date');

 

// afisarea in tabel a datelor

$query = "SELECT * FROM ip_log";

$result = mysql_query($query);

 

echo "<center><br>";

echo "<table width='75%' border='1' bordercolor='#000000'>";

echo "<tr>";

echo "<td align=center>ID</td>";

echo "<td align=center>IP Vizitator</td>";

echo "<td>Sursa(referer)</td>";

echo "<td>Pagina accesata</td>";

echo "<td align=center>Data si ora</td>";

echo "</tr>";

 

while($row = mysql_fetch_array($result, MYSQL_ASSOC))

{

echo "<tr>";

echo "<td align=center>{$row['id']}</td>";

echo "<td align=center>{$row['ip_vizitator']}</td>";

echo "<td align=left>{$row['sursa']}</td>";

echo "<td align=left>{$row['pagina']}</td>";

echo "<td align=center>{$row['data_ora']}</td>";

echo "</tr>";

}

 

echo "</table>";

echo "</center>";

 

// dupa ce am terminat inchidem conexiunea cu baza de date

 

mysql_close($conn);

?>

 

Exemplu aici: pagina cu include.

Aici logul.

Pe pagina de test am cenzurat 3/4 din ip prin codul:

$ip = $row['ip_vizitator'];

$ip = implode(".", array_slice(explode(".", $ip), 0, 1));

 

Astept intrebari/nelamuriri.

Probabil voi reveni cu un tutorial in care va voi arata cum sa securizati pagina cu log-ul.

 

Tutorial facut 100% de mine. Nu copiati fara a cere voie.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.