Beste PHP hulp,

Ik heb hier op phphulp.nl even wat rond gegeken naar een script, alleen heb ik niet hetgene gevonden naarwaar ik zocht. Misschien dat jullie hierop antwoord kunnen geven:

Ik wil namelijk dat doormiddel van een link waarin het ipnummer in zit verwerkt, hij via een script het opegegeven ip nummer blockt doormiddel van een .htaccess bestand.

Voorbeeldje:
Ik heb een link gemaakt: link.php?ip=0.0.0.0
Nu neemt hij dus het ip nummer doormiddel van $_GET['ip'], en moet hij dit dus schrijven in een bestand.

Echter wil het bij mij niet lukken, want na het gebruik van de volgende code geeft de server error 500 aan:

$user = $_GET['user'];
$datum = date("j M Y H:i");

// Bestand openen met oude ipnummers, waarin staat: deny from 0.0.0.0
$file = "Ban-A-User-OldforNew.php";
$fopenr = fopen ($file, "r");
$block = fread ($fopenr, filesize ($file));

$bericht = htmlentities($bericht);
$bericht = nl2br($bericht);
$bericht = stripslashes($bericht);
$file = "test/.htaccess";
$fopenr = fopen ($file, "r");
$msgs = fread ($fopenr, filesize ($file));
$fopenw = fopen($file, "w+");
fwrite($fopenw, "order allow,deny
deny from $user
$block
allow from all");


Kan iemand mij vertellen hoe het kan, alvast enorm bedankt!!!

Met vriendelijke groet,


Peter van Dam
waarom niet met een database?
is veel simpeler en zo eentje hb ik nog wel
... Liever doormiddel van een bestand. Ik wil liever geen gebruik maken van mysql als dat mogelijk is?
waarom wil je daar geen gebruik van maken?
Je maakt een ipban.php met daarin:

<?php
$ips[]= "xx.xx.xx.xx";
$ips[]= "xx.xx.xx.xx";
?>

Vervolgens in je index.php (of waar dan ook):

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$ips = array();
include("ipban.php");

if (in_array($ip, $ips)) {
exit;
}
?>

Dat $ip = $_SERVER['REMOTE_ADDR']; kan uitgebreider, maar je wilt niet perongeluk een 10.x.x.x adres blokkeren ;).

Eventueel kan je er een admin voor schrijven, maar een bestanden openen en aanpassen is net zo makkelijk.
Maar is dit dan wel voldoende geblokkeerd. Want ik heb eerder ooit handmatig een ip blokker in een array gehad, dat niet wilde werken.

Daarom dat ik eigenlijk zo'n .htaccess bestand wil gebruiken hiervoor. Want dan kunnen ze bij geen enkel bestand in de gekozen map...

Want zoals ik het bovenstaande script leest, moet je dus telkens een ip handmatig toevoegen ofnie?

En dat wil ik eigenlijk voorkomen. Want met namelijk 1 klik kunnen blokkeren zou wel handig zijn. Het is namelijk voor een vernieuwde chatroom, waarbij honderden zitten te chatten, en dus ook kunenn gaan rotzooien...

En mysql installeren lijkt me lastig uit te leggen, server en de mensen waarvoor ik het doe zitten in Hollywood, dus beetje ver weg :S

Nogmaals bedankt voor jullie snelle reacties!!!
Je kunt bovenstaand script gebruiken en met .htaccess een handler instellen die voor elke request eerst het php bestand uitvoert.
aha, klinkt interessant... Hoe kan je zoiets dan instellen???
Maar dit script zorgt ervoor dat ik een login box krijg... Dat is helaas niet de bedoeling..

De bezoeker moet van de ip check niks te merken krijgen, alleen moet de "moderator" met een muisklik dus de htaccess kunnen veranderen.

Wat ik op die website lees, is nog een klein beetje wartaal, maar wat ik lees is allemaal over het inloggen...

Kan zoiets niet via deny from enzo?
Ja maar er staat daar wel hoe je op een nette manier een .htaccess uit elkaar trekt. Hoe je de juiste headers meestuurd etc. Nuttige info dus.

Reageren