Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pomysł, pytanie czy to ma sens :), od początkującego
Drav
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

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


Witam. Otóż wpadłem sobie na pomysł, aby zrobić moją stronę możliwie najlepiej przystosowaną do zmian i w tym celu utworzyć plik główny index.php, i on byłby główną "podporą" całej strony tzn cały lay + menu i pusty środek.
Do owego pustego środka ładowałyby się strony z samym tekstem za pomocą takiegoż linku

  1. < a href="adresstrrony.pl/index.php?strona=newsy">....</a>

następnie skrypt
  1. <?php
  2. include"strony/newsy.php";
  3. if ($strona='newsy') {
  4. include"strony/newsy.php"; }
  5. itd... ?>

Interesuje mnie czy po ładowaniu tychże stron działałby skrypt (tzn czy podliczałby wszystkich gości na stronie neizależnie od tego co zostało załadowane funkcją include (wydaje mi się, ze tak, ale upewnić się nie zaszkodzi)
  1. <?php
  2. $polaczenie=mysql_connect('x','x','x')
  3.    or die('Nieudane połączenie z bazą danych...');
  4.  
  5.    or die('Nieudane wybranie bazy danych...');
  6.    
  7. $czas=mktime();
  8. $ip=$_SERVER['REMOTE_ADDR'];
  9. $staryczas=mktime()-120;
  10.  
  11.  
  12. $zapytanie=mysql_query("DELETE FROM online WHERE czas<'$staryczas'");
  13.  
  14. $link=mysql_query("SELECT ip FROM online WHERE ip='$ip'");
  15. $ile=mysql_num_rows($link);
  16.  
  17. if($ile==0)
  18.    {
  19.    mysql_query("INSERT INTO online VALUES(NULL,'$ip','$czas')");
  20.    }
  21. else
  22.    {
  23.    mysql_query("UPDATE online SET czas='$czas' WHERE ip='$ip'");
  24.    }
  25. $link=mysql_query("SELECT * FROM online");
  26. $ile=mysql_num_rows($link);
  27. $max=file('max.txt');
  28. if($ile>$max[0])
  29.    {
  30.    $plik=fopen('max.txt',w);
  31.    flock($plik,2);
  32.    fputs($plik,$ile);
  33.    flock($plik,3);
  34.    fclose($plik);
  35.    }
  36.  
  37. echo 'Gości online: '.$ile.', ';
  38. echo 'najwięcej osób online: '.$max[0].'';
  39. ?>
i czy takie rozwiązanie ma w ogóle jakikolwiek sens.

Jestem całkowicie poczatkujący w php, więc jesli coś robie źle to chciałbym wiedziec co dokładnie i jak powinno to poprawnie wyglądać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Tak, super-uniwersalny... index.php?strona=index i życzę miłego dnia. Rozwiązania tego typu i owszem, stosuje się w całkiem sporej liczbie projektów, ale umieszczenie tak prymitywnego kodu bez żadnych zabezpieczeń to wręcz zaproszenie złośliwych do włamania bądź rozwalenia strony.

Drav -> zapakuj poszczególne akcje, jakie wykonuje strona, do jednego katalogu, pliki bibliotek itd. czyli wszystko, co powinno wykonywać się na większej ilości podstron, do innych katalogów. Następnie przy ładowaniu sprawdź zmienną $_GET['strona'] czy jak ją tam chcesz nazwać i przepuść ją przez następujący filtr:

1. Jej długość musi mieścić się w określonym przedziale.
2. Musi zawierać wyłącznie znaki alfanumeryczne, tj. litery alfabetu łacińskiego, cyfry i ew. podkreślenia.
3. W szczególności, nie może zawierać znaków ../, ukośników ani kropek.
4. Budujesz z tego nazwę pliku i sprawdzasz, czy plik istnieje. Jeśli tak, ładujesz go, jeśli nie, ładujesz coś predefiniowanego.

Bez tych zabezpieczeń taki skrypt zamieni się w eksplorator kodu Twojej strony i może Ci niesamowicie nabruździć.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 19:16