Gå til innhold

Banne flere ip'r fra siden min


Anbefalte innlegg

Denne kommandoen banner en spesiell ip:

<?php 
$ip = "xx.xxx.xx.xx"; 

$banmelding = "Du er bannet fra denne siden ."; 

if (($_SERVER['REMOTE_ADDR'] == $ip)) { 
echo "<p>$banmelding</p>"; 
exit(); 
} 

?> 

Hvordan banner jeg flere fra en .txt fil ?

Noe slikt ?:

<?php 

$ip = "banned.txt"; 


$banmelding = "Du er bannet fra denne siden ."; 


if (($_SERVER['REMOTE_ADDR'] == $ip)) { 
echo "<p>$banmelding</p>"; 
exit(); 
} 

?> 

 

:hmm:

Endret av ggp
Lenke til kommentar
Videoannonse
Annonse

Tror kanskje at dette muligens funker.

<?php
$iparray = file('ip.txt');
if(in_array($_SERVER['REMOTE_ADDR']."\n", $iparray))
{
die("Du er bannet fra siden");
}
?>

 

edit: bomma litt noen steder :p

 

edit2: ok torbjørn, skumleste bare gjennom manualen. Sånn, tro om det funker.

Endret av LoS
Lenke til kommentar

Hmm :hmm:

Den koden virket ikke, er du sikker på den er 100% correct ?

<?php
$iparray = file('banned.txt');
if(in_array($_SERVER['REMOTE_ADDR']."\n", $iparray))
{
die("Du er bannet fra siden");
}
?>

Endret av ggp
Lenke til kommentar

Grunnen til at det ikke virka ggp, er at du gikk inn fra http://localhost/filnavnet ? Da vil nemlig ipen din være '127.0.0.1'

<?php
$iparray = file('banned.txt');

print_r($iparray);
echo 'Din nåværende ip: ' . $_SERVER['REMOTE_ADDR'];

if(in_array($_SERVER['REMOTE_ADDR'], $iparray))
{
   echo ' <p>Du er banna fra sida</p> ';
}
else
{

   echo ' <p>Du har tillatelse til å se sida!</p> ';

}
?>

Lenke til kommentar

Jeg fikk fikset problemet, det var bare scripte som ikke virket skikkelig ...

Har et nytt problem, jeg har en fwrite() som skriver til banned.txt ved å skrive ip'en til personen som skal bli bannet... Men personen blir ikke bannet fordi når scriptet mitt skrivert til banned.txt kommer det et mellomrom etter ip addressen, og dette gjør at personen IKKE blir bannet...

 

Her er banne scriptet:

<?php
$iparray = file('banned.txt');

if(in_array($_SERVER['REMOTE_ADDR)'], $iparray))
{
die("You have been banned from the forum ...");
}
?>

Her er upload scriptet som skriver til banned.txt:

<?php
$ip = $_POST['ip'];
$filename = "../../../../../banned.txt";
$somecontent = "$ip";

if (is_writable($filename)) {

if (!$handle = fopen($filename, 'a')) {
      echo "Cannot open file ($filename)";
      exit;
}

if (fwrite($handle, "$somecontent \n") === FALSE) {
    echo "Cannot write to file ($filename)";
    exit;
}

echo '';

fclose($handle);

} 
else 
{
echo "The file $filename is not writable";
}
?>

 

Hva er galt/ hvordan kan jeg fikse det ?

Lenke til kommentar

 if (fwrite($handle, "$somecontent \n") === FALSE) {

 

Ser du nøye på dette, ser du at det er et mellomrom etter $somecontent, før linjeskift kommer ("\n").

if (fwrite($handle, $somecontent . "\n") === FALSE) {

Btw: Variabler trengs ikke quotes

 

Og foresten, hva er vitsen med å sjekke om ei fil er skrivbar to ganger?

if (is_writable($filename))
// OG
if(fwrite($handle, $somecontent . "\n") === FALSE)

:ermm:

Endret av dabear
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...