Witam, mam oto taki skrypt, który tworzy mi obraz:
<?Php
class Licznik{
private $plik;
private $plik2;
private $twojeIp;
private $adresUrl;
function LicznikIp(){
$this->plik = "ip.txt"; //Plik z adresami ip, jeśli nie istnieje zostanie automatycznie stworzony
$this->plik2 = "stan.txt"; //Plik ze stanem licznika, jeśli nie istnieje zostanie automatycznie stworzony
$this->twojeIp = $_SERVER['REMOTE_ADDR']; //Pobiera adres ip
$this->adresUrl = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; //Pobiera adres strony
$this->explo = explode('|', $this->fp); //Tworzy tablicę adresów ip $this->zlicz = count($this->explo); //Zlicza ilość tablic - adresów ip
if(in_array($this->twojeIp, $this->explo)){ //Sprawdza czy w tablicy istnieje ip $this->dane = file_get_contents($this->plik2); //Jeśli ip już istnieje odczytuje stan odwiedzin }
else{ //Jeśli w tablicy nie istnieje ip wykonuje skrypt
for($this->i = 0; $this->i < $this->zlicz; $this->i++){ //Wypisuje wszystkie tablice
$this->explo[$this->i];
}
$this->explo[] = "$this->twojeIp"; //Dodaje nową tablicę z ip jako ostatnią
$this->noweDane = implode("|",$this->explo); //Łączy tablicę
file_put_contents($this->plik, $this->noweDane, LOCK_EX); //Zapisuje zmieniony plik.txt
$this->dane = file_get_contents($this->plik2); //Otwiera i czyta plik ze stanem odwiedzin
$this->licznikPlus = $this->dane + 1; //Zwiększa liczbę odwiedzin
file_put_contents($this->plik2, $this->licznikPlus, LOCK_EX); //Zapisuje zmieniony plik.txt
header("Location: http://".$this->adresUrl); //Odświerza stronę }
$this->text = "Ilosc odwiedzin: ".$this->dane; //Tekst obrazka
$this->iw = 130; //Szerokość obrazka
$this->ih = 20; //Wysokość obrazka
$this->fs = 2; //Wielkość czcionki "1-5"
$this->fw = imagefontwidth($this->fs); //Pobiera szerokość czsionki "$fs" i wzraca wynik w px
$this->l = strlen($this->text); //Zlicza ilość liter w tekście $this->tw = $this->l * $this->fw; //Oblicza szerokość tekstu
$this->xpos = ($this->iw - $this->tw)/2; //Oblicza przesunięcie tekstu w osi x
$this->fh = imagefontheight($this->fs); //Pobiera wysokość czsionki "$fs" i wzraca wynik w px
$this->ypos = ($this->ih - $this->fh)/2; //Oblicza przesunięcie tekstu w osi y
$this->im = imagecreate($this->iw, $this->ih); //Tworzymy pusty obraz
$this->background = imagecolorallocate($this->im, 28, 158, 165); //Kolor tła rgb
$this->textcolor = imagecolorallocate($this->im, 010, 010, 010); //Kolor tekstu rgb
imagestring($this->im, $this->fs, $this->xpos, $this->ypos, $this->text, $this->textcolor); //Rysuje tekst na obrazie
header("Content-type: image/png"); //Ustawiamy nagłoek image/png
imagepng($this->im); //Wyświetla obraz
imagedestroy($this->im); //Zwalnia pamięć
}
}
$licznik = new Licznik;
$licznik->LicznikIp();
?>
Natomiast ten wyświetlam na stronie w następujący sposób:
<img id="footer_img" src="licznik_odwiedzin_ip_class.php" border="1px" alt="Licznik odwiedzin ip"/>
A cały problem tkwi w tym, że na localhost wszystko działa pięknie, a jeśli tylko wrzucę na serwer prv nagle skrypt nie wyświetla obrazka, nie tworzy plików .txt i ich nie czyta.
Czy ktoś wie o co chodzi?
Dodam, że przyklad z manuala także nie działa, czyli problem tkwi gdzieś głębiej. Moja wersja php to 5.2 / 7.0
Ten post edytował kujol 12.02.2019, 09:14:51