Avatar billede gizmo234 Nybegynder
22. februar 2006 - 21:51 Der er 10 kommentarer og
1 løsning

Blokere en ip fra gæstebogen?

Hej.
Jeg er ved at lave en gæstebog, og jeg vil gerne have det sådan, så jeg kan blokere en person fra gæstebogen, hvis han bliver ved med at skrive noget dumt. Jeg har allerede et hidden felt i formen, så jeg får personen som skriver beskedens IP ind i databasen.

Hvordan gør man så man kan skrive en IP ind, og så er den IP blokeret fra at kunne skrive noget i GB tabellen i min database?
Avatar billede Bjarne Novice
22. februar 2006 - 22:32 #1
Du kan lave en tabel med sortlistede ip'er. Så tjekker du helt enkelt om ip'en findes i din tabel, hvis ikke så vises formen. hvor man skriver indlæg:

if($ip_fra_tabel != $_SERVER['REMOTE_ADDR']) {
//formen som gør det muligt at skrive indlæg
}
Avatar billede jakobdo Ekspert
22. februar 2006 - 22:42 #2
Jeg har lavet et lille ban-system her:
http://www.codebreaker.dk/exp/650478.php
Avatar billede gizmo234 Nybegynder
22. februar 2006 - 22:45 #3
Lyder som det helt rigtige, men har lige lidt spørgsmål

Således ser min side ud lige nu:

<?
$connection = mysql_connect("***","***","***");
mysql_select_db("***", $connection);

$query = mysql_query("SELECT * FROM gb ORDER BY id DESC");
while($vis = mysql_fetch_array($query)) {

echo"

if($ip != $_SERVER['REMOTE_ADDR']) {

//formen til at indsætte data i gæstebogen
}
"; }
?>

Den kommer med denne fejl:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in gb_opret.php on line 11

Linie 11 er: if($ip != $_SERVER['REMOTE_ADDR']) {

Hvad er der galt?

Altså tabellen som ip'erne som er blokeret ligger i, hedder ip.

Hvad så hvis der er flere ip'er som er blokeret? Kan den godt finde ud af det alligevel så?
Avatar billede jakobdo Ekspert
22. februar 2006 - 22:46 #4
Du bør lave et tjek ala:
$query = mysql_select("SELECT id FROM ip WHERE ip = $_SERVER['REMOTE_ADDR'] LIMIT 1");
if(mysql_num_rows($query)==0)
echo "Du må ikke komme ind her...";
else
echo "Velkommen og skriv løs!";
Avatar billede gizmo234 Nybegynder
22. februar 2006 - 22:55 #5
Jakobdo: Den version kan jeg faktisk se mening i, men den kommer med en fejl.
Her er min kode:

<?php
$connection = mysql_connect("****","****","****");
mysql_select_db("****", $connection);
$query = mysql_select("SELECT id FROM ip_blok WHERE ip = $_SERVER['REMOTE_ADDR'] LIMIT 1");
if(mysql_num_rows($query)==0)
echo "Du må ikke komme ind her...";
else
echo "Velkommen og skriv løs!";

?>

Jeg har kaldt tabellen for ip_blok, og lavet 2 felter: ID og ip. Og så har jeg sat min ip ind under ip feltet, så jeg faktisk ikke burde kunne skrive i gæstebogen. Men den kommer med følgende fejl:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in gb_opret2.php on line 5

Linie 5 er
$query = mysql_select("SELECT id FROM ip_blok WHERE ip = $_SERVER['REMOTE_ADDR'] LIMIT 1");
Avatar billede jakobdo Ekspert
23. februar 2006 - 07:46 #6
Prøv at ret til:
$query = mysql_select("SELECT id FROM ip_blok WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");
Avatar billede gizmo234 Nybegynder
23. februar 2006 - 16:14 #7
med denne linie:

$query = mysql_select("SELECT id FROM ip_blok WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");

Skriver den:
Fatal error: Call to undefined function: mysql_select() in gb_opret2.php on line 5

Linie 5 er den linie som du lige kom med, jakobdo.
Avatar billede jakobdo Ekspert
23. februar 2006 - 16:16 #8
mysql_query og ikke: mysql_select :o)
Avatar billede gizmo234 Nybegynder
23. februar 2006 - 22:30 #9
Ja, se nu virker det :) Det er bare super.

En lille rettelse, er dog at der er blevet byttet rundt på hvornår man er banned, og hvornår man ikke er banned. Da min ip var inde under blocked, stod der velkommen at skriv, og da den ikke var der, fik jeg at vide at jeg ikke var velkommen ;) Bare en lille rettelse til andre folk, hvis de får brug for samme kode :)

Men det fungerer bare. Tusinde tak Jakobdo! Kommer du lige med et svar? :)
Avatar billede jakobdo Ekspert
24. februar 2006 - 09:48 #10
Svar!
Avatar billede jakobdo Ekspert
24. februar 2006 - 12:51 #11
Takker for point!
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