Avatar billede stagedk Nybegynder
25. november 2006 - 18:31 Der er 13 kommentarer og
1 løsning

ip ban

<?PHP

include "mysql.php";

$ip = $_SERVER['REMOTE_ADDR'];
$bannedip = mysql_query("SELECT * FROM bannedip");
mysql_fetch_assoc($bannedip);

if($ip == $bannedip)
{
echo "BANNED";
else
{
echo "UNBANNED";
}

?>


Når jeg tilføjer en ip i min database, bliver den ved med at sige man er unbanned ?, Hvordan kan det være ?
Avatar billede simplus Nybegynder
25. november 2006 - 18:41 #1
Prøv med:

<?php
include "mysql.php";

$ip = $_SERVER['REMOTE_ADDR'];
$bannedip = mysql_query("SELECT * FROM bannedip WHERE ip = '$ip'");

if(mysql_num_rows($bannedip) == "") {
    echo "Ikke banned";
}else{
    echo "banned";
}
?>
Avatar billede simplus Nybegynder
25. november 2006 - 18:42 #2
Jeg har så taget udgangspunkt i at tabellen bannedip i din database indeholder et felt der hedder `ip` som indeholder en unikt ip
Avatar billede showsource Seniormester
25. november 2006 - 18:42 #3
Hvordan har du gemt ip i DB?
I hver deres row?

$ip = $_SERVER["REMOTE_ADDR"];
$find_ip = mysql_query("SELECT * FROM bannedip WHERE bannedip = '". $ip ."'");

if(mysql_num_rows($find_ip) != 0) {
echo"Banned!";
exit;
}

resten af siden
Avatar billede showsource Seniormester
25. november 2006 - 18:43 #4
Hov, borset fra vi er enige, så er der jo lige det med feltnavn!! :O)
Avatar billede simplus Nybegynder
25. november 2006 - 18:46 #5
Jep, men husk at bruge exit; med omhu!

exit; kan bruges næsten ligeså tit du vil hvis man ikke har noget design, men hvis du har et design så bliver det ikke hentet når exit; kaldes.
Det kan resultere i at designet bliver halvt, eller slet ikke bliver vist.

synes lige jeg vil påminde dig, hvis du ikke allerede vidste det :-)
Avatar billede stagedk Nybegynder
25. november 2006 - 18:47 #6
simplus, du havde ret med dit udgangspunkt, men din kode, virker ikke.
Avatar billede stagedk Nybegynder
25. november 2006 - 18:50 #7
Showsource, er en row med id, en row med ip og en row med grund

det med grund er unødvendigt lige nu, da jeg ikke har lavet videre på scriptet endnu, så det med FROM bannedip WHERE bannedip = det er forkert,
bannedip WHERE ip =
Avatar billede stagedk Nybegynder
25. november 2006 - 18:52 #8
showsource, din gud :D. det virker nu ;), tusend tak, smækker du ikke lige et svar op :P ?
Avatar billede simplus Nybegynder
25. november 2006 - 18:52 #9
Min kode ville virke hvis jeg vidste hvad dine felter i tabellen bannedip hed :-)
Så det bliver du lige nød til at fortælle.

Det koden gør er jo at udtrække alle felter ud der indeholder ens egen ip også banner den dig hvis den fandt noget, ellers ikke.
Avatar billede stagedk Nybegynder
25. november 2006 - 18:57 #10
simplus, din kode var rigtig nok, men den virkede ikke ?
Avatar billede showsource Seniormester
25. november 2006 - 18:58 #11
Synes nu at simplus også skal ha' point!

Og med hensyn til exit,

hvis man holder det i en fil for sig, som så includes, kan man bruge return i stedet for exit, og på den måde stadig bibeholde resten af siden
Avatar billede showsource Seniormester
25. november 2006 - 18:59 #12
mysql_num_rows($bannedip) == ""
kan aldrig være tom, enten nul eller flere
Avatar billede simplus Nybegynder
25. november 2006 - 19:03 #13
stagedk -> min og showsource's kode var ens bortset fra at han gættede rigtigt med hensyn til hvad dit felt i databasen hed.

Point er dog ikke det vigtigste i alle tråde, og showsource hjalp jo også så lad ham få dem. Det er fortjent.

Og jeg lavede også en fejl i mysql_num_rows så jeg lærte også at jeg skal tjekke mine koder lidt mere inden jeg poster dem.
Avatar billede showsource Seniormester
25. november 2006 - 19:16 #14
Ja, det med fejl i kode man poster ........ :O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester