Script-ul din aceasta pagina inregistreaza si afiseaza numar de utilizatori si vizitatori online (din ultimile 2 minute).
Principiul este acesta: fiecare utilizator /vizitator este inregistrat intr-un fisier text pe server, sau intr-o baza de date, impreuna cu timpul (Timestamp) ultimei accesari. De fiecare data cand o pagina din site e accesata, scriptul PHP sterge toate inregistrarile mai vechi de un anumit timp (aici 2 minute), adauga utilizatorul /vizitatorul curent apoi preia numarul de inregistrari ramase.
<?php // Script Utilizatori si vizitatori Online - marplo.net/php-mysql/ if(!isset($_SESSION)) session_start(); // porneste sesiunea, daca nu e deja pornita $filetxt = 'userson.txt'; // fisierul in care sunt adaugati utilizatorii si vizitatorii $timeon = 120; // numarul de secunde considerat / retinut online $sep = '^^'; // charactere utilizate pt. a desparti nume_utilizator de Timestamp $vst_id = '-vst-'; // identificator pt. a sti ca e vizitator, nu utilizator logat /* Daca aveti un script de Inregistrare /Logare, inlocuiti $_SESSION['nume'] cu variabila, sau sesiunea in care e retinut numele utilizatorului Un script gratuit de Inregistrare /Logare e la: https://marplo.net/php-mysql/utilizatori-inregistrare-autentificare-logare-s.php */ // preia numele de utilizator, daca e logat, sau IP-ul vizitatorului (la acesta adauga un identificator de vizitator) $uvon = isset($_SESSION['nume']) ? $_SESSION['nume'] : $_SERVER['SERVER_ADDR']. $vst_id; $rgxvst = '/^([0-9\.]*)'. $vst_id. '/i'; // regexp pt. recunoastere rand cu vizitator $nrvst = 0; // va contine numar vizitatori // seteaza linia cu utilizator /vizitator, si timestamp-ul curent, ce va fi adaugata in $filetxt $addrow[] = $uvon. $sep. time(); // verifica daca fisierul din $filetxt exista si poate fi scris if(is_writable($filetxt)) { // preia intr-un array liniile adaugate in fisierul din $filetxt $ar_rows = file($filetxt, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $nrrows = count($ar_rows); // numarul de linii // daca e cel putin o linie, parcurge array-ul din $ar_rows if($nrrows>0) { for($i=0; $i<$nrrows; $i++) { // ia fiecare linie si separa utilizator /vizitator si timestamp $ar_line = explode($sep, $ar_rows[$i]); // verifica timpul si retine in array-ul $addrow inregistrarile din ultimile $timeon secunde if($ar_line[0]!=$uvon && (intval($ar_line[1])+$timeon)>=time()) { $addrow[] = $ar_rows[$i]; } } } } $nruvon = count($addrow); // total online $usron = ''; // pt. numele utilizatorilor logati // parcurge $addrow pt. a obtine numarul de vizitatori si utilizatori for($i=0; $i<$nruvon; $i++) { if(preg_match($rgxvst, $addrow[$i])) $nrvst++; // incrementeaza vizitatori else { // preia si adauga nume utilizator $ar_usron = explode($sep, $addrow[$i]); $usron .= '<br/> - <i>'. $ar_usron[0]. '</i>'; } } $nrusr = $nruvon - $nrvst; // obtine nr. utilizatori (total - vizitatori) // codul HTML cu datele ce vor fi afisate $reout = '<div id="uvon"><h4>Online: '. ($nrusr+$nrvst). '</h4>Vizitatori: '. $nrvst. '<br/>Utilizatori: '. $nrusr. $usron. '</div>'; // adauga in $filetxt datele cu liniile retinute if(!file_put_contents($filetxt, implode("\n", $addrow))) { $reout = 'Eroare: Fisierul de inregistrare nu exista sau nu poate fi scris.'; } // daca e accesare prin <script>, cu GET 'uvon=showon', // adauga sirul ce va fi returnat intr-o instructiune JavaScript // cu acest cod, script-ul va putea fi utilizat si in fisiere .html if(isset($_GET['uvon']) && $_GET['uvon']=='showon') $reout = "document.write('$reout');"; echo $reout; // output /afisare rezultat ?>
<?php include('usersontxt.php'); ?>
<script type="text/javascript" src="usersontxt.php?uvon=showon"></script>
Acest script (si cel prezentat mai jos) folosesc $_SESSION. La inceputul fisierului PHP in care-l includeti trebuie sa adaugati: session_start();.
<?php header('Content-type: text/html; charset=utf-8'); // AICI Adaugati datele dv. de conectare la baza de date MySQL $host = 'localhost'; // adresa server MySQL $user = 'root'; // Nume utilizator $pass = 'parola'; // Parola de access $dbname = 'baza_date'; // Nume baza de date // conectare la baza de date MySQL $conn = new mysqli($host, $user, $pass, $dbname); // verificare conectare if (mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error()); // codul SQL pt. creare tabel "userson" $sql = "CREATE TABLE `userson` ( `uvon` VARCHAR(32) PRIMARY KEY, `dt` INT(10) UNSIGNED NOT NULL ) CHARACTER SET utf8 COLLATE utf8_general_ci"; // Executarea interogarii $sql si crearea tabelului if ($conn->query($sql) === TRUE) echo 'Tabelul "userson" a fost creat'; else echo 'Eroare: '. $conn->error; $conn->close(); ?>
In ambele fisiere trebuie sa adaugati datele dv. pentru conectare la baza de date MySQL, in variabilele: $host, $user, $pass, $dbname .
<?php // Script Utilizatori si vizitatori Online - marplo.net/php-mysql/ if(!isset($_SESSION)) session_start(); // porneste sesiunea, daca nu e deja pornita // AICI Adaugati datele dv. de conectare la baza de date MySQL $host = 'localhost'; // adresa server MySQL $user = 'root'; // Nume utilizator $pass = 'parola'; // Parola de access $dbname = 'baza_date'; // Nume baza de date /* Daca aveti un script de Inregistrare /Logare, inlocuiti $_SESSION['nume'] cu variabila, sau sesiunea in care e retinut numele utilizatorului Un script gratuit de Inregistrare /Logare e la: https://marplo.net/php-mysql/utilizatori-inregistrare-autentificare-logare-s.php */ // preia numele de utilizator, daca e logat, sau IP-ul vizitatorului (la acesta adauga un identificator de vizitator) $vst_id = '-vst-'; // identificator pt. a sti ca e vizitator, nu utilizator logat $uvon = isset($_SESSION['nume']) ? $_SESSION['nume'] : $_SERVER['SERVER_ADDR']. $vst_id; $rgxvst = '/^([0-9\.]*)'. $vst_id. '/i'; // regexp pt. recunoastere rand cu vizitator $dt = time(); // timpul curent (timestamp) $timeon = 120; // numarul de secunde considerat / retinut online $nrvst = 0; // va contine numar vizitatori $nrusr = 0; // va contine numar utilizatori $usron = ''; // pt. numele utilizatorilor logati // conectare la baza de date MySQL $conn = new mysqli($host, $user, $pass, $dbname); // Definire comenzi SQL pt Delete, Insert/Update, si Select // Sterge randurile mai vechi de $timeon secunde, Adauga /Update user curent, Selecteaza pe cei ramasi $sqldel = "DELETE FROM `userson` WHERE `dt`<". ($dt - $timeon); $sqliu = "INSERT INTO `userson` (`uvon`, `dt`) VALUES ('$uvon', $dt) ON DUPLICATE KEY UPDATE `dt`=$dt"; $sqlsel = "SELECT * FROM `userson`"; // Executa comenzile SQL if(!$conn->query($sqldel)) echo 'Eroare: '. $conn->error; if(!$conn->query($sqliu)) echo 'Eroare: '. $conn->error; $result = $conn->query($sqlsel); // daca $result contine cel putin un rand if ($result->num_rows > 0) { // parcurge setul de rezultate si seteaza numar vizitatori si utilizatori online ($nrvst, $nrusr) while($row = $result->fetch_assoc()) { if(preg_match($rgxvst, $row['uvon'])) $nrvst++; // incrementeaza vizitatori else { $nrusr++; // incrementeaza utilizatori $usron .= '<br/> - <i>'.$row['uvon']. '</i>'; // adauga nume utilizator } } } $conn->close(); // inchide conexiunea MySQL // codul HTML cu datele ce vor fi afisate $reout = '<div id="uvon"><h4>Online: '. ($nrusr+$nrvst). '</h4>Vizitatori: '. $nrvst. '<br/>Utilizatori: '. $nrusr. $usron. '</div>'; // daca e accesare prin <script>, cu GET 'uvon=showon', // adauga sirul ce va fi returnat intr-o instructiune JavaScript // cu acest cod, script-ul va putea fi utilizat si in fisiere .html if(isset($_GET['uvon']) && $_GET['uvon']=='showon') $reout = "document.write('$reout');"; echo $reout; // output /afisare rezultat ?>
<?php include('usersmysql.php'); ?>
<script type="text/javascript" src="usersmysql.php?uvon=showon"></script>
<?php // Inainte de alt cod ce transmite date, se porneste sesiunea session_start(); // Apoi se poate adauga restul scriptului si codul paginii ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <title>Numar Vizitatori si Utilizatori Online</title> <meta name="description" content="Script PHP pt. afisare numar Vizitatori si Utilizatori Online" /> <meta name="keywords" content="utilizatori online, vizitatori online" /> </head> <body> <?php // Includere script ("usersontxt.php", sau "usersmysql.php") // in locul unde doriti sa fie afisat nr. vizitatori si utilizatori online include('usersontxt.php'); ?> </body> </html>
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>Numar Vizitatori si Utilizatori Online</title> <meta name="description" content="Script PHP pt. afisare numar Vizitatori si Utilizatori Online" /> <meta name="keywords" content="utilizatori online, vizitatori online" /> </head> <body> <!-- Includere script ("usersontxt.php", sau "usersmysql.php") --> <script type="text/javascript" src="usersmysql.php?uvon=showon"></script> </body> </html>
<input type="checkbox" name="a_name" value="value" checked="checked" />
#id { background:url("path_to_image.png"); background-size:contain; background-repeat:no-repeat; }
var rest8_7 = 8 % 7; alert(rest8_7);
$nr = ceil(3.5); echo $nr; // 4
Alex wants to buy a bike. - Alex vrea sa cumpere o bicicleta.
LeĆ unos libros. - Am citit niste carti.