Curs Php-mysql


Acest script inregistreaza si afiseaza atat numarul de vizitatori unici (unici in 24 de ore) cat si numarul de accesari al paginii.
Datele sunt salvate intr-un fisier text. Iar vizitatorii sunt recunoscuti dupa cookie, in interval de 24 ore.
Scriptul poate fi folosit cu mai multe pagini din site, datele vor fi stocate in acelasi fisier text.

- In arhiva de la Download veti gasi doua variante ale acestui script. Una fiind cea de mai jos, care poate fi folosita numai cu pagini generate cu PHP si o a doua varianta care foloseste JavaScript si poate fi utilizata si in pagini statice (de tip html) prin adaugara unui cod JavaScript care acceseaza scriptul PHP pt. contor. Mai multe explicatii gasiti in "Citeste.html" din arhiva.

Acest contor va afisa:

Vizitatori - 2345
Accesari   - 34123

Pentru a folosi acest script, copiati codul de mai jos in fisierul PHP din site-ul dv. unde doriti sa afisati contorul si in acelasi director creati un fisier "contor.txt", acordati acestui fisier proprietati CHMOD (0766), drepturi depline citire si scriere.


- Scriptul contor vizitatori si accesari

<?php
/*
 // Contor vizitatori unici si accesari pagina
 // Script gratuit - MarPlo - https://marplo.net
*/

// Fisierul unde este stocat nr. vizitatori
$countfile = 'contor.txt';

// Numar de ore in care vizitatorul este considerat unic
$ore_unic = 24;

// Setare 1 nr. vizitatori si accesari, folosite cand pagina e accesata prima data
$vizitatori = 1;
$accesari = 1;

// Preia din URL pagina curenta, in format "urlencode"
$pagina = urlencode(strip_tags($_SERVER['REQUEST_URI']));
$r_pagina = $pagina."\r\n";			// Seteaza randul cu url-ul paginii care va fi adaugat in contor

// Seteaza numele care va fi folosit pt. cookie, in functie de pagina
$nume_cookie = ereg_replace("[^A-Za-z0-9_]", "", strip_tags($_SERVER['REQUEST_URI']));		// Pastreaza in nume doar caracterele [A-Za-z0-9_]

// Daca fisierul pt. stocare contor poate fi accesat
if (file_exists($countfile)) {
	$fisier = fopen($countfile, 'r+b');		// Deschide fisierul pt. citire
	flock($fisier, LOCK_EX);		// Blocheaza fisierul

	// Citeste fisierul de stocare linie cu linie pentru gasirea cimpului cu URL-ul paginii.
	while($citeste = fgets($fisier)) {
		if(strcmp($citeste, $pagina."\r\n")==0) {		// Compara linia gasita cu $pagina (daca sunt egale 'strcmp'=0)
			$reda = ftell($fisier);			// Returneaza pozitia curenta a pointer-ului
			$vizit = explode("^^^",fgets($fisier));   // Preia in matrice nr. vizitatori si accesari care se afla pe linia imediat dupa pozitia gasita de 'ftell'
			$vizitatori = (int)$vizit[0];			// Seteaza valoarea pt. nr. vizitatori cea din contor, in integer (nr. natural))
			$accesari = (int)$vizit[1] + 1;		// Seteaza valoarea pt. nr. accesari in integer si o mareste cu o unitate

			// Daca pagina vizitata nu e in cookie
			if ($_COOKIE[$nume_cookie]!=$pagina) {
				$vizitatori++; 		// Mareste cu o unitate valoarea nr. vizitatori
			}

			fseek($fisier, $reda);		// Seteaza noua pozitie a pointerului (de la inceputul fisierului in bytes) la nivelul precizat de 'ftell', pt a adauga in locul corect noile valoari
			$r_pagina = '';			// Randul cu pagina exista deja in contor

			break;		// Intrerupe executia lui WHILE
		}
	}

	$adauga = $r_pagina.$vizitatori.'^^^'.$accesari;		// Seteaza pt. adaugare valorile pt. contor 
	fputs($fisier, $adauga."\r\n");		// Adauga datele in fisier
	@flock($fisier, LOCK_UN);   // Deblocheaza fisierul
	fclose($fisier);		// Inchide accesul la fisier

	// Seteaza cookie-ul pt. recunoasterea vizitatorului
	setcookie($nume_cookie, $pagina, time()+60*60*$ore_unic);
}
else {
    echo 'Fisierul '.$countfile.' nu a fost gasit';
}

// Afiseaza datele
echo '<!-- Script gratuit de la https://marplo.net -->
	<div style="background:#dedefe; width:150px; border:1px solid #bbbbbb; padding:2px;" align="center">Vizitatori - <b><i>'. $vizitatori. '</i></b><br />
	Accesari &nbsp; - <b><i>'. $accesari. '</i></b></div>';
?>

- Deoarece toate datele sunt stocate in acelasi fisier, scriptul e rentabil a fi folosit pentru un numar de maxim 3-4 mii de pagini, pentru un numar mai mare de pagini este indicat modificarea lui pentru a fi folosit cu o baza de date.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care meta tag se foloseste pentru scurta descriere a paginii?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 caractere ce descriu continutul paginii" />
Ce proprietate CSS opreste efectul dat de "float"?
clear text-align position
#some_id {
  clear: both;
}
Clic pe metoda ce creaza un array cu toate elementele din pagina cu un anumit nume de tag.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicati functia PHP ce returneaza numarul de elemente dintr-un array.
is_[) count() strlen()
$arr =[7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "I live (happy)".
happly happily hapily
I live happily.
- Traiesc fericit (in mod fericit).
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "Vivo (feliz)".
felizamente felizmente felices
Vivo felizmente.
- Traiesc fericit (cu fericire).
Contor vizitatori si accesari

Last accessed pages

  1. Conditional IF in Limba Engleza - Fraze Conditionale (123726)
  2. Gradele de comparatie: comparative, superlative (52109)
  3. Viitorul - Verbul la viitor (6444)
  4. Teste spaniola - Tests y ejercicios de Español - Gramática (28568)
  5. Limba spaniola curs online incepatori si avansati (30354)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (701)
  2. Coduri pt culori (504)
  3. Cursuri limba engleza gratuite si lectii online (312)
  4. Gramatica limbii engleze - Prezentare Generala (302)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (267)