Strona 1 z 1

Licznik z MySQL odporny na odświeżanie

: 17 lutego 2007, 18:41
autor: jaroslw
Witam, pisałem kiedyś o problemie z licznikiem odpornym na odświeżanie działającym na plikach .txt. Teraz problem jest podobny ale trochę inny, a mianowicie mam kod PHP + MySQL dla licznika ale nie jest on odporny na odświeżanie. Proszę o pomoc osoby bardziej znające się na PHP. Skrycik wygląda tak:

Kod: Zaznacz cały

<?php
			$serwer = 'hodt'; // Twój serwer MySQL
			$login = 'login'; // Twój login do bazy danych
			$haslo = 'hasło'; // 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

			$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 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // 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());
			?>
Zapytanie SQL:

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL auto_increment,
    PRIMARY KEY (ilosc_odwiedzin)
);

: 18 lutego 2007, 13:34
autor: daroPL
[php]<?
$serwer = 'hodt'; // Twój serwer MySQL
$login = 'login'; // Twój login do bazy danych
$haslo = 'hasło'; // 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

$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++;

echo 'Ilo¶ć odwiedzin: <b>' . $lo . '</b><br />'; // Wyświetlenie stanu licznika

if(!$_COOKIE['licznik'])
{
setcookie('licznik', 1, time()+3600);
$sql1 = "UPDATE licznik_odwiedzin SET ilosc_odwiedzin = " . $lo . " LIMIT 1";

$rezultat = mysql_query($sql1)
or die(mysql_error());
}
?>[/php]

Kod: Zaznacz cały

CREATE TABLE licznik_odwiedzin (
    ilosc_odwiedzin int(10) NOT NULL,
    PRIMARY KEY (ilosc_odwiedzin)
);
robione na szybko ale powinno ruszyć :)

: 18 lutego 2007, 13:54
autor: jaroslw
Dzięki, wprawdzie otrzymałem już chwilę wcześniej pomoc na innym forum ale i tak plusik dla Ciebie :)