Alventali Geplaatst: 25 november 2006 Geplaatst: 25 november 2006 Zoals de kop al zegt hoe een bepaald IP blokeren op onze website. Htacces al geprobeerd maar dat gaat bij de webhost die we gebruiken niet. Dan word alles geblokkeerd. Het zal vast een kleinigheidje zijn om het werkend te krijgen maar ben nu al 2 dagen aan het klooien om het voor elkaar te krijgen. Dit met het bekende IP van een goed bevriend stel van ons ( om te testen uiteraard) Maar het IP word niet geblokt. Onderstaand 2 php scripts die ik heb gekregen maar krijg deze niet werkend. script 1 <?php $banned = array("IP nummer"); If(in_array($_SERVER['REMOTE_ADDR'], $banned)) Header("HTTP/1.1 403 Forbidden"); ?> sript 2 <?php $banned[0]="IP nummer"; If (in_array($_SERVER['REMOTE_ADDR'],$banned)) { Header("HTTP/1.1 403 Forbidden"); Exit; } ?> Scripts schelen niet veel zit maar 1 verschil in en dat is de [0] achter banned en de accolade's voor header en na exit De site is opgebouwd met frontpage Mijn vriendin wil dit staks uiteindelijk dreamweaver gebruiken.( zij beheerd de site) Maar wil zich daar eerst in verdiepen en heeft nu ff de tijd niet Groetjes AlvVisiosat bi sat met 4 LNB's & een kabel aansluitingVU+ Duo met 2* DVB-S2, en een Vu+ Duo2 met 2* DVB-C
Big fellow Geplaatst: 25 november 2006 Geplaatst: 25 november 2006 Wat gebeurt er dan precies? Vergeet niet dat er niets, maar dan ook helemaal niets, naar de browser gestuurd mag worden voor de header. Dit kan zelfs problemen geven als je sessies gebruikt. Dus als je een header wilt sturen dan moet je er voor zorgen dat de code die dit doet het eerste is wat wordt aangeroepen. Ik heb mij eens suf zitten zoeken in een soortgelijke situatie, toen bleek het om een spatie te gaan die ik per ongeluk voor <?php had staan.... Doe voor de zekerheid in je scripts eens: print_r ($_SERVER); Kijk dan of het IP adres inderdaad degene is die je verwacht.... Ik heb ook even gezocht op php.net en heb deze info gevonden: header functie werkt niet goed? Suc6! Big fellow PS Het is een zeer slechte eigenschap om in een programmeertaal de commando's te schrijven met een Hoofdletter. Ik neem aan dat dit toeval is dat je het post met een hoofdletter aan het begin van elke regel.... “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Alventali Geplaatst: 25 november 2006 Auteur Geplaatst: 25 november 2006 Ik ga er even mee aan de gang. en laat het nog wel weten. Groetjes AlvVisiosat bi sat met 4 LNB's & een kabel aansluitingVU+ Duo met 2* DVB-S2, en een Vu+ Duo2 met 2* DVB-C
Duwgati Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Misschien een overbodige vraag, maar toch: Je hebt de file(s) waarin je dat php script gebruikt toch wel de extensie .php i.p.v. .htm of .html gegeven he?
Alventali Geplaatst: 26 november 2006 Auteur Geplaatst: 26 november 2006 Ja heeft als extensie php mee gekregen. Groetjes AlvVisiosat bi sat met 4 LNB's & een kabel aansluitingVU+ Duo met 2* DVB-S2, en een Vu+ Duo2 met 2* DVB-C
WPW Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Kan je niet een proxy gebruiken waar je snel IP adresen kan bewerken, proxomitron of zo, werkt ook andersom. gr, WPW. -=[Deze ruimte is opzettelijk leeg gelaten]=-
Big fellow Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Ik heb ook even zitten expirementeren met de header functie, en kwam erachter dat er met de nieuwste browsers (IE7 / FF) wat vreemde dingen gebeuren. (Of ik moet eigenlijk zeggen onverwachte dingen...) Dit is mijn test code: Code: <?php header("HTTP/1.1 403 Forbidden"); header("Status: 403 Forbidden"); exit;?> Als ik dit aanroep vanuit firefox krijg ik een lege pagina, zonder status code enzo. Als ik dit aanroep vanuit IE7 met de "friendly error codes" (oid) aan, dan krijg ik netjes een 403 pagina. Als ik echter de "friendly error codes" uitzet, krijg ik ook een lege pagina. Als ik nu voor "exit;" nog een " print "Banned!"; " zet, dan komt die tevoorschijn bij FF en bij IE als de "friendly error codes" uitstaat. Staat deze optie in IE echter aan, dan zie je de "Banned!" niet. De conclusie van het verhaal: Je moet dus een complete pagina versturen in plaats van alleen de header met status code. Dit is trouwens met getest met rfc2616 optie aan en uit in php. Misschien dat je nu verder komt <img src="/forums/images/graemlins/smile.gif" alt="" /> Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
EL PIÑO Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Dat de browsers deze reactie geven klopt overigens wel gewoon. IE poept nog zijn eigen foutmeldingen uit als de content minder is dan ik meen 512 bytes en FF doet dat helemaal níét. In dit geval is de content natuurlijk 0 bytes en zal IE forbidden aangeven terwijl FF een lege pagina geeft, en dit klopt. Je mag er niet op, maar de webserver geeft verder niet in een pagina aan waarom. Dus doet de browser niks of zijn eigen ding. Na jaren zonder, ben ik toch weer van plan een schotel aan te schaffen.
Big fellow Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Ik neem aan dat het inderdaad klopt wat ze doen. Alleen in eerste instantie verwacht je het niet. (Misschien teveel gewend aan die status paginas die IE of een webserver genereren?) Hopelijk helpt dit Alventali met z'n script <img src="/forums/images/graemlins/smile.gif" alt="" /> . Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Duwgati Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Je zegt dat het script niet werkt, maar wat gebeurt er eigenlijk wel? En heb je ook al eens geprobeerd om een eigen 403 pagina te maken en daar naar te verwijzen: Code: header("Location: http://".$_SERVER['HTTP_HOST']."/403.html"); ofheader("Location: ".$_SERVER['DOCUMENT_ROOT']."/403.html");
Alventali Geplaatst: 26 november 2006 Auteur Geplaatst: 26 november 2006 Nee nog niet geprobeerd. wat werkt er niet Het test Ip wat we gebruiken kan gewoon nog steeds op de site komen. En ja we gebruiken hetgoede IP Het test IP is bekend en heeft( bevriende kennis) zelf zijn IP na gekeken en zijn IP komt ook voor in onze statistieken lijst.( dus het zou het juiste Ip adress moeten zijn.) Vandaag weinig tijd gehad om te stoeien met de aangeleverde materie morgen weer ff verder. Groetjes AlvVisiosat bi sat met 4 LNB's & een kabel aansluitingVU+ Duo met 2* DVB-S2, en een Vu+ Duo2 met 2* DVB-C
Big fellow Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Maak een test script van deze code: Code: <?php$banned[0]="IP nummer"; // Hier dus je doel IP invullenif (in_array($_SERVER['REMOTE_ADDR'],$banned)){ header("HTTP/1.1 403 Forbidden"); header("Status: 403 Forbidden"); print "Banned! IP:".$_SERVER['REMOTE_ADDR']; exit;} else { print "<pre>\n server array:\n"; print_r ($_SERVER); print "banned array:\n"; print_r ($banned); print </pre>";}?> Wat krijg je te zien als je dit script aanroept? (Dus alleen dit bovenstaande in je script zetten!) Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Big fellow Geplaatst: 26 november 2006 Geplaatst: 26 november 2006 Als het bovenstaande script nu wel werkt, en je eigen script niet, dan heb ik wel een vermoeden wat het probleem is... Dan heb je waarschijnlijk dit netjes in een functie gezet. Echter de $_SERVER array is niet global. Dus dan moet je in je functie nog even " global $_SERVER; " toevoegen. (Net na de functie opening...) Als het test script wel werkt, en jouw script niet, PM mij dan even jouw script, dan debug ik dat wel... Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Alventali Geplaatst: 27 november 2006 Auteur Geplaatst: 27 november 2006 @ allen alvast hartelij dank voor de hulp tot nu toe. Helaas kan ik er op het moment even niet mee verder. Bedrijf belde vandaag dat ik morgen voor ± 2 weekjes naar Oostenrijk voor ze mag. Stap morgen ochtend op het vliegtuig. Zodra ik thuis ben en er weer verder mee kan gaan laat ik mijn bevindingen wel ff weten. Nogmaals alvast bedankt tot zover. Groetjes AlvVisiosat bi sat met 4 LNB's & een kabel aansluitingVU+ Duo met 2* DVB-S2, en een Vu+ Duo2 met 2* DVB-C
Gast Geplaatst: 30 november 2006 Geplaatst: 30 november 2006 Vergeet ook niet de cache te legen op de andere pc misschien dat je de pagina vanuit de cache te zien krijgt.
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen