Gå til innhold

Hjelp til IP-ban. Nesten ferdig.


Anbefalte innlegg

Skrevet

Hei!

Fann ut at det var kjekt å messe i gjesteboka mi, så eg må nok lage meg eit ip-ban-script. Det er ikkje heilt ferdig, og eg fekk litt problem på slutten. Det er mogleg at eg har litt problem med include.

Eg har to delar i funksjonen. Banne IP og avslå/godta ip. Banninga er eg ferdig med. Det er den siste delen som ikkje funkar som han skal...

 

Alt handlar opp mot databasen "xxx" og i tablen "ipban".

 

Her er funksjonen min:

<?php
function ipban() {
include "sqlinfo.php";
$connection = mysql_connect($sqlhost, $sqlusername, $sqlpassword);
mysql_select_db("xxx", $connection);
$i = $_SERVER['REMOTE_ADDR'];
$q = "SELECT ip FROM ipban WHERE ip = '$i'";
if (mysql_num_rows($q) >= 1) {
 die("Utestengt");
 }
else {
 return 1;
 }
} ?>

 

Når eg skal skjekke om ein brukar ikkje er banna, gjer eg det slik i toppen av fila:

include ("acp\func.php");
ipban();

func.php ligg eitt nivå over index.php. sqlinfo.php ligg på same nivå som func.php.

 

Kva kan vere feil?

Feilmeldingar:

Warning: main(acp\func.php): failed to open stream: No such file or directory in /home/content/'''/'''/'''/index.php on line 3

 

Warning: main(acp\func.php): failed to open stream: No such file or directory in /home/content/'''/'''/'''/index.php on line 3

 

Warning: main(): Failed opening 'acp\func.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/content'''/''''''/index.php on line 3

 

Fatal error: Call to undefined function: ipban() in /home/content/'''/html/index.php on line 4

 

Videoannonse
Annonse
Skrevet

Men hvorfor caller du funksjonen? Hvis du bare har det som er inni funksjonen, blir det parset uansett. :o

(I og med at du ikke gir noen argumenter til funksjonen)

Skrevet

No går alt bra, men eg får denne warningen:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/***/html/acp/func.php on line 8

 

Linje 8:

if (mysql_num_rows($q) >= 1) {

Skrevet

<?php

function ipban() {

include "sqlinfo.php";

$connection = mysql_connect($sqlhost, $sqlusername, $sqlpassword);

mysql_select_db("xxx", $connection);

$i = $_SERVER['REMOTE_ADDR'];

$q = "SELECT ip FROM ipban WHERE ip = '$i'";

$q = mysql_query($q);

if (mysql_num_rows($q) >= 1) {

die("Utestengt");

}

else {

return 1;

}

} ?>

Skrevet

Eg veit, eg var litt for seint ute med post #8 i tråden.

Ja, takk, det virkar bra! :)

 

No skal eg utvikle noko som kan ta vekk bannet utan å måtte gå inn manuelt i databasen for å ta det ut.

Skrevet

$q = "DELETE FROM banned WHERE ip='$ip' LIMIT 1";

 

Det er lurt a ha det i en annen fil, langt vekk fra index.php. Sann at det ikke er enkelt for hackere a fa tak i det og bare sletter sine egne. Husk a sjekke om brukeren er logget for $q blir utfort.

Skrevet (endret)

Det skal nok gå bra, har ikkje tenkt å lage det med det fyrste. Uansett, eg lagar det heilt til eg ikkje får til meir, så spør eg. :)

 

Btw: Opera, ugh, ugh! :)

Endret av Arne

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...