Avatar billede denner1989 Nybegynder
19. december 2007 - 12:26 Der er 15 kommentarer og
1 løsning

Blacklist i gæstebog, virker ikke ordentlig

<?php
$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);
$query = mysql_query("SELECT * FROM ip_blok WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($query)==0)
echo "Skriv ..";
else

echo "Din IP adresse er blevet banned fra gæstebogen.<br> Hvis du ikke føler at der er nogen grund til dette, kan du sende en email til <a href='mail.php?id=1'>Denner</a>.";
$sql = mysql_query("SELECT * FROM ip_blok WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
while($row = mysql_fetch_array($sql)) {
echo "<br><br><strong>Banned af</strong>: <a href='user.php?id=". bruger($row[navn]) ."'>$row[navn]</a><br><strong>Grund</strong>: $row[grund]<br>";
exit;
}
?>

I mysql, der er feltet ip_blok. Der står også ip og under ip, min ip adresse.

Problemet er, at den viser "Skriv.." selvom jeg står i mysql.

Hvad kan årsagen være?
Avatar billede nielle Nybegynder
19. december 2007 - 12:50 #1
Prøv med en debug udskrift:

$sql = "SELECT * FROM ip_blok WHERE ip = '".$_SERVER['REMOTE_ADDR']."'";
echo "DEBUG: $sql<br>";
$query = mysql_query($sql);
if (mysql_num_rows($query) == 0)
...

Indeholder din sql det du forventede?
Avatar billede denner1989 Nybegynder
19. december 2007 - 12:53 #2
DEBUG: SELECT * FROM ip_blok WHERE ip = 'minip'

Det var jo også det, den skulle udskrive?
Avatar billede nielle Nybegynder
19. december 2007 - 14:06 #3
Jep (jeg går ud fra atdet er dig som har maskeret IP nummeret)

Hvad får du hvis du kopiere den til din phpMyAdmin?
Avatar billede nielle Nybegynder
29. december 2007 - 07:27 #4
Er du kommet videre med denne her?
Avatar billede denner1989 Nybegynder
31. december 2007 - 00:31 #5
Nej desværre ikke, jeg har ikke haft så meget tid lige på det sidste. Det beklager jeg meget.

Den skriver blot: MySQL returnerede ingen data (fx ingen rækker). (Forepørgsel tog 0.0003 sek)

Men den står der. :S
Avatar billede nielle Nybegynder
31. december 2007 - 07:29 #6
Hvordan ser den kode ud som indsætter i tabellen?
Avatar billede xica Nybegynder
31. december 2007 - 18:22 #7
Hvad mener du helt præcis?
Avatar billede nielle Nybegynder
01. januar 2008 - 13:14 #8
Siden at det IP der skal bannes ser ud til at være i databasen, men løsningen alligevel ikke fungere, så spekulere jeg på at det måske er fordi at der faktisk er kommet et blanktegn ind i starten af passwordet eller måske i slutningen. Disse kan jo ikke ses, men resultatet er unægtelig et noget andet.

Derfor kunne jeg godt tæke mig at se den kode som opretter rækkerne i databasen for at se om der skulle være sket noget i den stil ad den vej.
Avatar billede denner1989 Nybegynder
01. januar 2008 - 14:48 #9
<?php

$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);
mysql_query("INSERT INTO `ip_blok` (`ip`, `navn`, `grund` )
VALUES ('$_POST[ip]', '$_SESSION[brugernavn]', '$_POST[grund]' )") OR DIE (mysql_error());

mysql_close;

?>
Avatar billede nielle Nybegynder
02. januar 2008 - 09:02 #10
Det ser jo fornuftigt nok ud. Men har du også puttet dite eget IP nummer ind i databasen via den form, eller har du indtaster det via din PhpMyAdmin?

Prøv noget i stil med denne her:

$sql = "SELECT ip FROM ip_blok";
$query = mysql_query($sql);

while ($row = mysql_fetch_assoc($query)) {
    echo "DEBUG: [" . $row['ip'] . "]<br>";
}

- og kig så efter om dit IP dukker op i listen., og om der evt. er noget før elle efter IP'et (lav en Vis Kilde på det udskrevne).


PS:

$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);

bør skrives sådan:

$conn = mysql_connect($host, $user, $pass);
mysql_select_db($db, $conn);


PPS:

Jeg har forresten lige tilladt mig at omskrive din oprindelige kode, sådan at du sparet det ene af kaldene til basen:

<?php
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($db, $conn);

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

if (mysql_num_rows($query) > 0) {
    echo "Din IP adresse er blevet banned fra gæstebogen.<br>
        Hvis du ikke føler at der er nogen grund til dette, kan du sende en email til <a href='mail.php?id=1'>Denner</a>.";

    while ($row = mysql_fetch_assoc($sql)) {
        echo "<br><br><strong>Banned af</strong>: <a href='user.php?id=". bruger($row[navn]) ."'>$row[navn]</a><br><strong>Grund</strong>: $row[grund]<br>";
        exit;
    }
} else {
    echo "Skriv ...";
}
?>
Avatar billede denner1989 Nybegynder
02. januar 2008 - 23:19 #11
Smed det ind via min form.

Her er første debug:

<font face="verdana" size="2" color="#555555">
DEBUG: [ xx.xx.xx.xx]<br>

Din løsning under 'PPS:' virkede heller ikke :'((
Avatar billede nielle Nybegynder
03. januar 2008 - 06:58 #12
Så vidt jeg kan se er der et mellemrum for meget foran xx.xx.xx.xx.
Avatar billede denner1989 Nybegynder
03. januar 2008 - 22:22 #13
Ah ja, det kunne jo sige sig selv.

Men nu kommer der følgende fejlmeddelse:

Din IP adresse er blevet banned fra gæstebogen.
Hvis du ikke føler at der er nogen grund til dette, kan du sende en email til Denner.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/virtual/psychokatten.dk/public_html/design/gb_opret.php on line 27

<?php
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($db, $conn);

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

if (mysql_num_rows($query) > 0) {
    echo "Din IP adresse er blevet banned fra gæstebogen.<br>
        Hvis du ikke føler at der er nogen grund til dette, kan du sende en email til <a href='mail.php?id=1'>Denner</a>.";

    while ($row = mysql_fetch_assoc($sql)) {
        echo "<br><br><strong>Banned af</strong>: <a href='user.php?id=". bruger($row[navn]) ."'>$row[navn]</a><br><strong>Grund</strong>: $row[grund]<br>";
        exit;
    }
} else {
Avatar billede nielle Nybegynder
03. januar 2008 - 22:27 #14
Ret:

while ($row = mysql_fetch_assoc($sql)) {

- til:

while ($row = mysql_fetch_assoc($query)) {
Avatar billede denner1989 Nybegynder
03. januar 2008 - 22:58 #15
Tusind tak, læg et svar. :)
Avatar billede nielle Nybegynder
03. januar 2008 - 22:59 #16
Svar :^)
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