Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]licznik tekstowy odwiedzin w chomiku
Forum PHP.pl > Forum > Przedszkole
dapon
Witam.
Od ostatniego tematu wiele się nauczyłem.
W książce PHP5 praktyczny kurs wydanie 2 znalazłem skrypt licznika odwiedzin w formie tekstu.
Napisałem już ten skrypt licznika i nie wiem w jakich formatach zapisać te dwa pliki.
W książce napisali że muszę napisać cały kod licznika wraz z całą zawartością języka html.
Więc napisałem i skopiowałem sam skrypt do osobnego pliku tekstowego.
Jeden plik nazwałe counter, a drugi licznik. Dodam, że wszystko zapisałem w txt.
Najważnieszej żeczy nie napisali w tym poradniku.
W jakim formacie zapisać te 2 pliki.
Czy wystarczy, że zapiszę pierwszy plik w php, a drugi zostawić w txt.
Czy oba pliki zapisać w php.
Acha i najważniejsze pytanie.
Jak taki licznik umieśić na koncie www.chomiku.pl
b4rt3kk
Wątpię by dało się umieścić własny kod na stronie chomikuj.pl, choć nie wiem, bo nie korzystam. Kod PHP i HTML w pliku o rozszerzeniu .php. Jeśli licznik działa na zasadzie pliku tekstowego, w którym zapisuje odwiedziny, to ten drugi w .txt.
dapon
<!DOCKTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-eqive="Content-Type" content="text/html: charset=iso-8859-2">
<title>Licznik odwiedzin</title>
</head>
<body>
<div style='text-algin:center:'>
Witam na stronie.
</div>
<div><p style='text-algin:center:'>
<?php
function getCounter()
{
if(!file_exites("./licznik.txt")){
//brak pliku licznika
return false;
}
if(!$fd = fopen("./licznik.txt" , "r+")){
//brak dostępu do licznika
return false;
}
flock($fd. LOCK_EX);
$count = fgets($fd);
if(is_numeric($count)){
$result = $count +1;
fseek(($fd. 0);
fputs($fd. $result);
}
else}
//nieprawidłowy format odczytanych danych
$result = false;
}
flock($fd,LOCK_UN)
fclose($fd);
return $result;
}
if(($count = getCounter()) !== false){
if($count ==1){
$razy = 'razy';
}
echo "ta strona została odwiedzona $count$razy'".
}
else{
echo "Licznik odwołań jest czasowo niedostępny.";
}
?>
</p></div>
</body>
</html>

Ten plik zapisałe w formacie php i wrzuciłem go do C://xampp/htdocs
W przeglądarce wpisałem http://localhost/conter.php i nic się nie dzieje tylko wyświetliła się informacja, że nie
połonczono z serwerem.

Wydaje mi się, że doprze napisałem ten skrypt, ale dla pewności wolał bym, żeby ktoś to sprawdził.
Sam skrypt

<?php
function getCounter()
{
if(!file_exites("./licznik.txt")){
//brak pliku licznika
return false;
}
if(!$fd = fopen("./licznik.txt" , "r+")){
//brak dostępu do licznika
return false;
}
flock($fd. LOCK_EX);
$count = fgets($fd);
if(is_numeric($count)){
$result = $count +1;
fseek(($fd. 0);
fputs($fd. $result);
}
else}
//nieprawidłowy format odczytanych danych
$result = false;
}
flock($fd,LOCK_UN)
fclose($fd);
return $result;
}
if(($count = getCounter()) !== false){
if($count ==1){
$razy = 'razy';
}
echo "ta strona została odwiedzona $count$razy'".
}
else{
echo "Licznik odwołań jest czasowo niedostępny.";
}
?>
Zapisałem w formacie txt o nazwie licznik.
Treść skryptu może sobie każdy skopiować do swoich potrzeb .POZWALAM. smile.gif
b4rt3kk
Nie połączono z serwerem? A wystartowałeś w ogóle xamppa? Sama instalacja to mało, trzeba go jeszcze uruchomić (apache co najmniej).
dapon
Okej uruchomiłem xamppa i gdy wszedłem w przeglądarce na licznik tekstowy to zamiast licznika pojawiło mi się takie coś

Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\conter.php on line 27
Co teraz z tym fantem zrobić ?
b4rt3kk
Masz błąd w linijce 27. Podejrzewam, że chodzi o to miejsce:

  1. fseek(($fd. 0);


O jeden nawias otwierający za dużo, usuń go.
dapon
Usunołem w pliku .php i w .txt
Nic to nie pomogło.
O co chodzi z tymi cyframi $fd.0
Chodzi mi o to zero.

Zauważyłem, że parę linijek mi brakowało i teks wygląda teraz tak

<!DOCKTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-eqive="Content-Type" content="text/html: charset=iso-8859-2">
<title>Licznik odwiedzin</title>
</head>
<body>
<div style='text-algin:center:'>
Witam na stronie.
</div>
<div><p style='text-algin:center:'>
<?php
function getCounter()
{
if(!file_exist("./licznik.txt")){
//brak pliku licznika
return false;
}
if(!$fd = fopen("./licznik.txt" , "r+")){
//brak dostępu do licznika
return false;
}
flock($fd. LOCK_EX);
$count = fgets($fd);
if(is_numeric($count)){
$result = $count +1;
fseek($fd. 0);
fputs($fd. $result);
}
else{
//nieprawidłowy format odczytanych danych
$result = false;
}
flock($fd,LOCK_UN)
fclose($fd);
return $result;
}
if(($count = getCounter()) !== false){
if($count ==1){
$razy = 'raz';
}
echo "ta strona została odwiedzona $count$razy".
}
else{
$razy = 'razy';
else{
echo "Licznik odwołań jest czasowo niedostępny.";
}
?>
</p></div>
</body>
</html>
_Borys_
flock, fseek, fputs i inne - dane w nawiasach oddzielaj przecinkami a nie kropkami, a poza tym literówki, literówki,literówki.

Poprawione:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html: charset=iso-8859-2"/>
  5. <title>Licznik odwiedzin</title>
  6. </head>
  7. <body>
  8. <div style='text-align:center;'>
  9. Witam na stronie.
  10. </div>
  11. <div><p style='text-align:center;'>
  12. <?php
  13. function getCounter()
  14. {
  15. if(!file_exists("../licznik.txt")){
  16. echo 'Brak pliku licznika<br />';
  17. return false;
  18. }
  19. if(!$fd = fopen("../licznik.txt" , "r+")){
  20. echo 'Brak dostępu do licznika<br />';
  21. return false;
  22. }
  23. flock($fd,LOCK_EX);
  24. $count = fgets($fd);
  25. if(is_numeric($count)){
  26. $result = $count + 1;
  27. fseek($fd,0);
  28. fputs($fd,$result);
  29. }
  30. else{
  31. echo 'Nieprawidłowy format odczytanych danych<br />';
  32. return false;
  33. }
  34. flock($fd,LOCK_UN);
  35. fclose($fd);
  36. return $result;
  37. }
  38. if(($count = getCounter()) !== false){
  39. if($count == 1){
  40. $razy = 'raz';
  41. }
  42. $razy = 'razy';
  43. echo "Ta strona została odwiedzona $count $razy<br />";
  44. }
  45. else{
  46. echo "Licznik odwołań jest czasowo niedostępny.";
  47. }
  48. ?>
  49. </p></div>
  50. </body>
  51. </html>


ale i tak na chomikuj.pl tego nie uruchomisz, tam tylko html i javascript działa.
Jeśli tam chcesz licznik to zajrzyj na Jak uatrakcyjnić opis swojego Chomika
dapon
Podziękował za poprawienie skryptu.
Działa poprawnie i dzięki za info do chomikuj.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.