Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Blokowanie dostępu do strony, sprawdzenie poprawności kodu...
Forgoot
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.03.2004
Skąd: Suwałki

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


Witam!
Jako że jestem początkujący proszę Was, abyście powiedzieli czy ten skrypt jest poprawnie napisany, jeśli nie to proszę o ewentualną poprawkę i komentarz "co źle" zrobilem... Może da się ten skrypt rozbudować, dodać "coś", jeśli tak to proszę o podpowiedzi...

  1. <?php
  2. /**************************************************************************
  3.  *  Prosty skrypt zabraniający dostępu do strony określonemu adresowi IP  *
  4.  *  zapisanego w pliku ban.txt.                                           *
  5.  **************************************************************************/
  6.  
  7. $adres = strval($_SERVER['REMOTE_ADDR']); 
  8. $ip_zbanowane = @file("ban.txt"); 
  9.     if($_SERVER['REMOTE_ADDR'] == "$ip_zbanowane")
  10.   {
  11.           /*Kod strony*/ 
  12.     }else{
  13. echo("<b>ERROR!</b> Nie masz uprawnień do oglądania tej strony.<br /> Twój IP: $adres został zbanowany.");
  14.   }
  15.  
  16. ?>


Plik ban.txt wygląda (przykładowo) tak:
Kod
127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.4


Pozdrawiam.

(IMG:http://forum.php.pl/uwaga.gif)
~mike_mech

Ten post edytował Forgoot 27.10.2005, 10:11:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Forgoot
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.03.2004
Skąd: Suwałki

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


1. Czy kod powinien wyglądać tak?? :
  1. <?php
  2.  
  3. /**************************************************************************
  4.  *  Prosty skrypt zabraniający dostępu do strony określonemu adresowi IP  *
  5.  *  zapisanego w pliku ban.txt.                                           *
  6.  **************************************************************************/
  7.  
  8. $adres = strval($_SERVER['REMOTE_ADDR']); 
  9. $ip_zbanowane = @file("ban.txt"); 
  10.    
  11.    function GetClientIP()
  12. {
  13.     $ip = 0;
  14.     
  15.     if( ! empty( $_SERVER[ 'HTTP_CLIENT_IP' ] ) )
  16.     {
  17.         $ip = $_SERVER[ 'HTTP_CLIENT_IP' ];
  18.     }
  19.     
  20.     if( ! empty( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) )
  21.     {
  22.         $ipList = explode( ", ", $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] );
  23.         if( $ip )
  24.         {
  25.             array_unshift( $ipList, $ip );
  26.             $ip = 0;
  27.         }
  28.         foreach( $ipList as $v )
  29.         {
  30.             if( ! eregi( "^(192.168|172.16|10|224|240|127|0.", $v ) )
  31.             {
  32.                 return $v;
  33.             }
  34.         }
  35.     }
  36.  
  37.     return $ip ? $ip : $_SERVER[ 'REMOTE_ADR' ] == $ip_zbanowane;
  38. } 
  39. echo("<b>ERROR!</b> Nie masz uprawnień do oglądania tej strony.<br /> Twój IP: $adres został zbanowany.");
  40.  
  41. ?>



  1. <?php
  2.  
  3. return $ip ? $ip : $_SERVER[ 'REMOTE_ADR' ] == $ip_zbanowane;
  4.  
  5. ?>

użyłem tutaj operatora przypisania, niewiem czy dobrze i we właściwym miejscu...

LUB (drugi sposób, w jaki starałem się do skryptu dopisać Twoją funkcję @mike_mech):

  1. <?php
  2. /**************************************************************************
  3.  *  Prosty skrypt zabraniający dostępu do strony określonemu adresowi IP  *
  4.  *  zapisanego w pliku ban.txt.                                           *
  5.  **************************************************************************/
  6.  
  7. include ("funkcja.php");
  8. $adres = strval($_SERVER['REMOTE_ADDR']); 
  9. $ip_zbanowane = @file("ban.txt"); 
  10.     if( in_array( $_SERVER['REMOTE_ADDR'], $ip_zbanowane ) )
  11.   {
  12.           /*Kod strony*/ 
  13.     }else{
  14. echo("<b>ERROR!</b> Nie masz uprawnień do oglądania tej strony.<br /> Twój IP: $adres został zbanowany.");
  15.   }
  16.  
  17. ?>

Plik funkcja.php wygląda tak:
  1. <?php
  2. /******************
  3. *  funkcja.php    *
  4. *******************/
  5.  
  6. function GetClientIP()
  7. {
  8.     $ip = 0;
  9.     
  10.     if( ! empty( $_SERVER[ 'HTTP_CLIENT_IP' ] ) )
  11.     {
  12.         $ip = $_SERVER[ 'HTTP_CLIENT_IP' ];
  13.     }
  14.     
  15.     if( ! empty( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) )
  16.     {
  17.         $ipList = explode( ", ", $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] );
  18.         if( $ip )
  19.         {
  20.             array_unshift( $ipList, $ip );
  21.             $ip = 0;
  22.         }
  23.         foreach( $ipList as $v )
  24.         {
  25.             if( ! eregi( "^(192.168|172.16|10|224|240|127|0.", $v ) )
  26.             {
  27.                 return $v;
  28.             }
  29.         }
  30.     }
  31.  
  32.     return $ip ? $ip : $_SERVER[ 'REMOTE_ADR' ];
  33. }
  34.  
  35. ?>


Jeśli jest źle to prosze o nakierowanie mnie na właściwą drogę, bo szczerze mówiąc niewiedziałem zbytnio jak to zrobić poprawnie :/

2. Chciałbym też stworzyć skrypt wyświetlający losowe cytaty z pliku tekstowego. Proszę Was abyście podali mi kolejno jakie funkcje trzeba wykorzystać (czy mam zastosować randomizację?), postaram się zaprezentować potem moje "wypociny" (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował Forgoot 28.10.2005, 15:00:14
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: 8.10.2025 - 07:35