Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapis informacji o userze
Forum PHP.pl > Forum > PHP
Cysiaczek
Ot takie cosik mi się napisało w kilka minutek. Zadanie: Zliczanie odwiedzin na stronie dla najpopularniejszych przeglądarek, odświerzanie tylko dla nowych IP, możliwość rozbudowy. Chciałbym wiedzieć, czy można zrobić lepiej. (aha. nie ma cookies, ale to zamierzone)

  1. <?php
  2.  
  3. mysql_connect (&#092;"localhost\",\"root\",\"haslelko\") or die(\"nie można się połączyć z MySQL\");
  4. mysql_select_db (&#092;"print\") or die(\"Nie można znaleźć bazy szukanej\");
  5.  
  6. $userip=$_SERVER[REMOTE_ADDR];
  7. $wydostan=mysql_query(&#092;"SELECT * FROM pr_licz;\");
  8. while($rekord=mysql_fetch_array($wydostan))
  9. {
  10. $wejsc=$rekord[1];
  11. $ie=$rekord[2];
  12. $opera=$rekord[3];
  13. $firefox=$rekord[4];
  14. }
  15. $checkip=mysql_query(&#092;"SELECT * FROM pr_ipcheck WHERE ip='$userip'\");
  16. $isin=mysql_num_rows($checkip);
  17. if ($isin<1)
  18. {
  19. $wejsc++;
  20. $dodaj=mysql_query(&#092;"INSERT INTO pr_ipcheck (nr, ip, banned, data) VALUES ('', '$userip', '1', now())\");
  21.  
  22. //EXPLORER
  23. if (eregi(&#092;"MSIE\", $_SERVER[HTTP_USER_AGENT]) && !(eregi(\"Opera\", $_SERVER[HTTP_USER_AGENT])))
  24. {
  25. $ie++;
  26. $query=mysql_query(&#092;"UPDATE pr_licz SET wejsc='$wejsc', ie='$ie';\");
  27. }
  28.  
  29. //OPERA
  30. if (eregi(&#092;"Opera\", $_SERVER[HTTP_USER_AGENT]))
  31. {
  32. $opera++;
  33. $query=mysql_query(&#092;"UPDATE pr_licz SET wejsc='$wejsc', opera='$opera';\");
  34. }
  35.  
  36. //FIREFOX
  37. if (eregi(&#092;"firefox\", $_SERVER[HTTP_USER_AGENT]))
  38. {
  39. $firefox++;
  40. $query=mysql_query(&#092;"UPDATE pr_licz SET wejsc='$wejsc', mozilla='$firefox';\");
  41. }
  42. }
  43.  
  44. ?>
Darti
ja bym wywalil zapytanie do bazy $wydostan i zrobil tak:
  1. <?php
  2. //np dla MSIE
  3. $query=mysql_query(&#092;"UPDATE pr_licz SET wejsc=wejsc+1, ie=ie+1;\");
  4. // itd
  5.  
  6. ?>

poza tym dorzucilbym w tabele pr_licz kolumnę o nazwie 'inne' (i odpowiedni kod do niej - pod else - na wypadek jak przegladarka nie wysle HTTP_USER_AGENT)

Pozdrawiam
Cysiaczek
Dzieki. Faktycznie bedzie prosciej smile.gif

funkcje inne mam, ale byla na dole skryptu i ni zypomnialem wkleic rolleyes.gif
FiDO
Najpierw sugerowalbym zapoznanie sie z jakimis stanardami kodowania i zastosowanie sie do nich. W miedzyczasie mozesz sie dowiedziec dlaczego przy podawaniu indeksow w postaci stringa do tablic powinno sie zapisywac je otoczone apostrofami/cudzyslowami.
Darti
sprawdz funkcje get_browser() - zwraca do tablicy duzo fajnych rzeczy
SongoQ
Ja mam kilka uwag:

- Tak jak pisal FiDO standard kodowania, w php.pl jest artukuł poświecony kodowaniu w php
- OOP
- komentarze
- to co napisałeś wykorzystuje tylko MySQL, dodanie innych.
Cysiaczek
Dzięki za uwagi. Wykorzystam.

Aha. Nie będę tego robił dla innych baz, bo na serwerze mam Mysql'a i raczej nie puszcze tego nigdzie indziej. Po prostu wydajność przedewszystkim smile.gif Nie zmienia to faktu, że uwaga jest słuszna smile.gif
SongoQ
Wazne jest to ze jesli ktos po Tobie ten kod przejmie zeby wiedziel co gdzie jest.
vala
czasami warto zrobic kaszane...a rozpisac sobie komentarze na kartce:)
= antyhakierowy syf:)
SongoQ
Jak zrobisz kaszane z kodem to osoba ktora wspolpracuje z Toba nic z tego nie bedzie wiedziec i bardzo duzo czasu spedzi nad tym zeby zrozumiec co gdzie jest. Bo kilku tygodniach ten antyhakerowy syf bedzie tez utrudnieniem dla Ciebie.
vala
o tym to ja wiem.....pracuje w ekipie...co prawda nie w php
ale innym jezyku:)
SongoQ
Cytat
o tym to ja wiem.....pracuje w ekipie...co prawda nie w php
ale innym jezyku:)


No to troszeczke sie dziwuje ze takie cos napisales.
vala
nie ma sie co dziwic skoro moj team php=me alone smile.gif
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.