Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Licznik, mały a cieszy!
Lisek54
post 2.10.2005, 20:42:42
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 6.12.2004
Skąd: Miastko

Ostrzeżenie: (0%)
-----


Tworzymy plik instaluj.php a tam kod:
  1. <? $co = fopen('licznik.txt', 'w');
  2. fputs($co, '1');
  3. fclose($co); ?>


Później plik index.php:
  1. <?
  2. if($cook!='1'){
  3. setcookie("cook","1");
  4. $pliczek=fopen("licznik.txt", 'r');
  5. $zmienna=fgets($pliczek);
  6. fclose($pliczek);
  7. $zmienna++;
  8. $plik = fopen('licznik.txt', 'w');
  9. fwrite($plik, $zmienna);
  10. fclose($plik);
  11. include("licznik.txt");
  12. }
  13. else
  14. {
  15. include("licznik.txt");
  16. }
  17. ?>


Najpierw odpalamy instaluj.php gdy strona się załaduje usuwamy go smile.gif

Na plik licznik.txt nadaj chmod 777.

P.S jeden z moich pierwszych liczników :-)

Ten post edytował Lisek54 2.10.2005, 20:43:32


--------------------
MP3: Ocean, Bracia, DKA, Arash, Energy
Warsztat: Apache2, PHP4, MySql, Linux Mandriva/Microsoft Windows XP
Zajęcia: Administrator serwera UT, prowadzenie kilku stron, pisanie małych skryptów dla rozrywki...
Cytat: "Co by człowiek chciał to zajęte..." - Kolega z ławki
Go to the top of the page
+Quote Post
lukir
post 1.11.2005, 15:18:09
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


1)Podstawowy błąd jaki zrobiłeś to fragment:
  1. <?php
  2. if($cook!='1')
  3. setcookie("cook","1");
  4. ?>


Chodzi o zmienną $cook.
Mianowicie powinieneś odwołac się do wartości tej zmiennej w ten sposób:

  1. <?php
  2. if($_COOKIE['cook']!='1')
  3. setcookie("cook","1");
  4. ?>


Wtedy kod jest bezpieczniejszy.

2)I jeszcze setcookie():
  1. <?php
  2. if($_COOKIE['cook']!='1')
  3. setcookie("cook","1", time()+43200);
  4. /*żeby ciasteczko zniknęło po jakimś czasie...
  5. Dodatkowo funkcję setcookie() umieściłbym na końcu instrukcji if(), ponieważ
  6. dopiero wtedy wartoś zostanie zwiększona.*/
  7. ?>


3)Powinieneś kontrolowac typ zmiennej $zmienna:
  1. <?php
  2. $pliczek=fopen("licznik.txt", 'r');
  3. $zmienna=fgets($pliczek);
  4. fclose($pliczek);
  5. if(ereg("[0-9]", $zmienna)) {
  6. $zmienna++; //ma to sens tylko dla liczb
  7. } else {
  8. echo("Błąd danych");
  9. }
  10. ?>


4)Myślę, że nazewnictwo zmiennych nie jest satysfakcjonujące.
Może to i prosty skrypt, ale dobrym nawykiem jest logiczne i czytelne nadawanie nazw zmienym.

5)No i plik instaluj.php. Powinien wyglądac tak (żeby nie fałszowac wyniku tongue.gif):

  1. <?php
  2. $co = fopen('licznik.txt', 'w');
  3. fputs($co, '0'); //ustawiamy wartośc licznika na 0 ;]
  4. fclose($co);
  5. ?>


--------------------
"Tylko myśl dojrzała i jasna daje się wypowiedzieć w słowach prostych" - prof. Witold Doroszewski
Warsztat: os: Windows XP, serwer: Apache 2.0.55, php: 5.1.4, baza danych: MySQL 4.1.7.
Go to the top of the page
+Quote Post
aleksander
post 1.11.2005, 16:50:18
Post #3





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


złe forum

moim zdaniem topic nie nadaje się na forum algorytmy klasy funkcje ( poziom funkcjonalny skryptu) wiec wrzucam na php (poniewaz jest duzo bledow a tym sie zajmuje to forum)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:18