Dziwnym zbiegiem okoliczności, dzisiaj przypada dokładnie 14 lat od kiedy napisałem swój pierwszy tutorial. Posty “Prosty Licznik Odwiedzin w PHP” i “- część II” opublikowałem na (nieistniejącym już) forum WebTips.pl 4 czerwca i 11 czerwca 2006r. Na start tego bloga, a także dla uczczenia tamtego wiekopomnego wydarzenia, wrzucam pełny tekst obu części poniżej.


Część I

Oto schemat działania licznika: [LOST]

A teraz do pracy

1) Tworzymy tabelę dla licznika w bazie danych. Możemy to zrobić przez phpMyAdmin-a lub zapisując i otwierając w przeglądarce internetowej skrypt tabela.php:

Plik polaczenie.php

<?php

$serwer = 'mysql.yoyo.pl'; // Twój serwer MySQL
$login = 'asiajek'; // Twój login do bazy danych
$haslo = '******'; // Twoje hasło do bazy
$baza = 'asiajek'; // Nazwa twojej bazy danych

$polaczenie = mysql_connect($serwer, $login, $haslo)
  or die(mysql_error()); // Połączenie z bazą danych MySQL

mysql_select_db($baza, $polaczenie)
 or die(mysql_error()); // Wybór bazy danych

?>

Plik tabela.php

<?php
require_once 'polaczenie.php'; // Dołączenie pliku polaczenie.php

$sql = <<<EOS
CREATE TABLE licznik_odwiedzin (
ilosc_odwiedzin int(10) NOT NULL auto_increment,
PRIMARY KEY (ilosc_odwiedzin)
)
EOS;
$rezultat = mysql_query($sql)
or die(mysql_error());
?>

2) Tworzymy skrypt pobierający dane, przetwarzający, wyświetlający i zapisujący je z powrotem do bazy:

Tu jest inna treść strony
<?php
require_once 'polaczenie.php'; // Dołączenie pliku polaczenie.php

$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
  or die(mysql_error()); // Pobranie danych
$pd = mysql_fetch_array($rezultat);

$lo = $pd["ilosc_odwiedzin"]; // Zapis danych do zmiennej $lo

$lo = $lo + 1; // Inkrementacja zmiennej $lo

echo 'Jesteś ' . $lo . ' osobą na mojej stronie www!'; // Wyświetlenie stanu licznika

$sql = "DELETE FROM licznik_odwiedzin";
$sql1 = "INSERT IGNORE INTO licznik_odwiedzin (ilosc_odwiedzin) " .
	"VALUES (" . $lo . ")";

$rezultat = mysql_query($sql)
or die(mysql_error()); // Zapisanie stanu licznika w bazie danych

$rezultat = mysql_query($sql1)
or die(mysql_error());

?>
Dalsza część strony

Powyższy skrypt umieszczamy na stronie w miejscu, w którym ma się pojawić napis Jesteś * osobą na mojej stronie www!

Część II

A oto schemat działania licznika: [LOST]

A teraz do pracy

Jeśli masz już tabelę z pierwszej części pomiń punkt pierwszy.

1) Tworzymy tabelę dla licznika w bazie danych. Możemy to zrobić przez phpMyAdmin-a lub zapisując i otwierając w przeglądarce internetowej skrypt tabela.php:

Plik polaczenie.php

<?php

$serwer = 'mysql.yoyo.pl'; // Twój serwer MySQL
$login = 'login'; // Twój login do bazy danych
$haslo = '******'; // Twoje hasło do bazy
$baza = 'baza'; // Nazwa twojej bazy danych

$polaczenie = mysql_connect($serwer, $login, $haslo)
  or die(mysql_error()); // Połączenie z bazą danych MySQL

mysql_select_db($baza, $polaczenie)
 or die(mysql_error()); // Wybór bazy danych

?>

Plik tabela.php

<?php
require_once 'polaczenie.php'; // Dołączenie pliku polaczenie.php

$sql = <<<EOS
CREATE TABLE licznik_odwiedzin (
ilosc_odwiedzin int(10) NOT NULL auto_increment,
PRIMARY KEY (ilosc_odwiedzin)
)
EOS;
$rezultat = mysql_query($sql)
or die(mysql_error());
?>

2) Modyfikujemy skrypt pobierający dane, przetwarzający, wyświetlający i zapisujący je z powrotem do bazy:

Tu nie może być nic
<?php ob_start(); // Uruchomienie bufora wyjściowego
?>
<html><head></head><body>
<?php
require_once 'polaczenie.php'; // Dołączenie pliku polaczenie.php

if (isset($_SESSION['a'])) { // Sprawdenie czy istnieje zmienna sesyjna a
$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
  or die(mysql_error()); // Pobranie danych
$pd = mysql_fetch_array($rezultat);

echo 'Jesteś ' . $pd["ilosc_odwiedzin"] . ' osobą na mojej stronie www!'; // Wyświetlenie stanu licznika

} else { // Jeśli nie istnieje 

$rezultat = mysql_query("SELECT * FROM licznik_odwiedzin")
  or die(mysql_error()); // Pobranie danych
$pd = mysql_fetch_array($rezultat);

$lo = $pd[ilosc_odwiedzin]; // Zapis danych do zmiennej $lo

$lo+=1; // Inkrementacja zmiennej $lo

echo 'Jesteś ' . $lo . ' osobą na mojej stronie www!'; // Wyświetlenie stanu licznika

$sql = "DELETE FROM licznik_odwiedzin";
$sql1 = "INSERT IGNORE INTO licznik_odwiedzin (ilosc_odwiedzin) " .
	"VALUES (" . $lo . ")";

$rezultat = mysql_query($sql)
or die(mysql_error()); // Zapisanie stanu licznika w bazie danych

$rezultat = mysql_query($sql1)
or die(mysql_error());
session_start(); // Rozpoczęcie sesji
session_register(a); // Zarejestrowanie zmiennej sesyjnej a
}
?>
</body></html>
<?php ob_end_flush(); // Wyłączenie bufora wyjściowego i wysłanie jego zawartości
?>
Tu nie może być nic

Powyższy skrypt umieszczamy na stronie w miejscu, w którym ma się pojawić napis Jesteś * osobą na mojej stronie www!