Arne Skrevet 24. april 2007 Skrevet 24. april 2007 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
Alex Moran Skrevet 24. april 2007 Skrevet 24. april 2007 Du må bruke / istedenfor \, som i eksempelet til mats-dani.
Ståle Skrevet 24. april 2007 Skrevet 24. april 2007 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)
Arne Skrevet 24. april 2007 Forfatter Skrevet 24. april 2007 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) {
mske Skrevet 24. april 2007 Skrevet 24. april 2007 if (mysql_num_rows($q) =>1) { Godt mulig det ikke har noe å si, men er verdt et forsøk..?
Ståle Skrevet 24. april 2007 Skrevet 24. april 2007 forst ma du gjore et mysql_query() av $q sa tar du mysql_num_rows() av queryen
Arne Skrevet 24. april 2007 Forfatter Skrevet 24. april 2007 Nei, Magne, då vert det "unexpected T_DOUBLE_ARROW".
Ståle Skrevet 24. april 2007 Skrevet 24. april 2007 <?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; } } ?>
Arne Skrevet 24. april 2007 Forfatter Skrevet 24. april 2007 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.
Ståle Skrevet 24. april 2007 Skrevet 24. april 2007 $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.
Arne Skrevet 25. april 2007 Forfatter Skrevet 25. april 2007 (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 25. april 2007 av Arne
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå