Arne Skrevet 24. april 2007 Del 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 Lenke til kommentar
Mats Danielsen Skrevet 24. april 2007 Del Skrevet 24. april 2007 Prøv og bruk include("apc/func.php"); Lenke til kommentar
Alex Moran Skrevet 24. april 2007 Del Skrevet 24. april 2007 Du må bruke / istedenfor \, som i eksempelet til mats-dani. Lenke til kommentar
Ståle Skrevet 24. april 2007 Del 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) Lenke til kommentar
Arne Skrevet 24. april 2007 Forfatter Del 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) { Lenke til kommentar
mske Skrevet 24. april 2007 Del Skrevet 24. april 2007 if (mysql_num_rows($q) =>1) { Godt mulig det ikke har noe å si, men er verdt et forsøk..? Lenke til kommentar
Ståle Skrevet 24. april 2007 Del Skrevet 24. april 2007 forst ma du gjore et mysql_query() av $q sa tar du mysql_num_rows() av queryen Lenke til kommentar
Arne Skrevet 24. april 2007 Forfatter Del Skrevet 24. april 2007 Nei, Magne, då vert det "unexpected T_DOUBLE_ARROW". Lenke til kommentar
Ståle Skrevet 24. april 2007 Del 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; } } ?> Lenke til kommentar
Arne Skrevet 24. april 2007 Forfatter Del 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. Lenke til kommentar
Ståle Skrevet 24. april 2007 Del 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. Lenke til kommentar
Arne Skrevet 25. april 2007 Forfatter Del 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 Lenke til kommentar
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å