Avatar billede kazzie Nybegynder
24. november 2005 - 12:04 Der er 5 kommentarer og
1 løsning

IP banning i gæstebog

Hej.

Jeg er bestemt ikke nogen ørn til php og har derfor blot taget brug af min udbyders standard gæstebog.
I den ser det ud som om, at der er mulighed for  at banne uønskede IP'er.
Koden for gæstebogen er:

<?php
    include("lib.php");
    include("data.php");
    $content = outputFormatedContent(outputPageContent(readDataFromFile(),$messageToPage));
?>
<html>
<head>
    <title>Ørbæk.dk - En historie med billeder om en rigmandssøn's liv på godt og ondt.</title>
    <meta name="description" content="Ørbæk.dk - En historie med billeder om en rigmandssøn's liv på godt og ondt.">

      <meta name="keywords" content="">
        <style>body{ scrollbar-arrow-color: #FF00FF; scrollbar-3dlight-color:
        #FFCCFF; scrollbar-highlight-color: #FFDDFF; scrollbar-face-color:
        #FF99CC; scrollbar-shadow-color: #CC77CC; scrollbar-darkshadow-color:
        #CC6699; scrollbar-track-color: #FF99CC; }</style>
<style type="text/css">
<!--
a:link {text-decoration: none}
a:visited {text-decoration: none}
a:active {text-decoration: none}
a:hover {text-decoration: underline}
.smalltext {font: 8pt "Verdana","Arial Cyr", "Arial","Tahoma","Helvetica", sans-serif; color:silver}
.text {font: 8pt "Verdana","Arial Cyr", "Arial","Tahoma","Helvetica", sans-serif; color:#000000}
.#000000text {font: 8pt "Verdana","Arial Cyr", "Arial","Tahoma","Helvetica", sans-serif; color:#000000}
#line {color: #000000}
textarea {font-size: 8pt; font-family: "Verdana",Arial,sans-serif; color: #000000; background: white; border-style: ridge; width: 230px}
input {font-size: 8pt; font-family: "Verdana",Arial,sans-serif; color: #000000}
input.field {border-style: ridge; width: 170px; background: white}
input.button { border-style: outset; width: 230px; cursor: hand; background: white}
/*body { scrollbar-face-color: #000000; scrollbar-shadow-color: #200000; scrollbar-highlight-color: #000000; scrollbar-3dlight-color: #000000; scrollbar-darkshadow-color: #000000; scrollbar-track-color: #488a96; scrollbar-arrow-color: #000000}*/
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#880088" link="#993366" vlink="#CC99FF" alink="#993300">

<table border="0"  width="100%">
  <tr><!-- Row 1 -->
    <td width="150" valign="top">
   
<script type='text/javascript'>

function Go(){return}

</script>
<script type='text/javascript' src='../menu_var.js'></script>
<script type='text/javascript' src='../menu_com.js'></script>
<noscript>Your browser does not support script</noscript>
   
   
    </td><!-- Col 1 -->
    <td background="/images/bg.jpg" valign="top">
   
<p><b>G&aelig;stbogen

<p><dir>Har du ikke skrevet endnu ???
<br>Bare skriv herunder ...
<p>Men har du skrevet, skriv da igen.

<p>
<table border="0" cellpadding="0" cellspacing="0" align="center" height="100%">
<tr>
    <td valign="top" width="230"><font face="Century Schoolbook">
    </td>
        </tr>
<tr>
    <td valign="top" width="230">
        <table width="230" border="0" cellpadding="0" cellspacing="0">
        <form action="write.php" method="post">
        <tr>
            <td width="50" class="text"><b>Nick: </font></td>
            <td width="10"><spacer width="10" height="1" type="block"></td>
            <td width="170"><input type="text" size="20" name="nick" maxlength="50" class="field"></td>
        </tr>
        <tr>
            <td class="text"><b>Homesite:</b> </td>
            <td><spacer width="10" height="1" type="block"></td>
            <td><input type="text" size="20" name="url" maxlength="50" value="http://" class="field"></td>
        </tr>
        <tr>
            <td class="text"><b>E-mail:</b> </td>
            <td><spacer width="10" height="1" type="block"></td>
            <td><input type="text" size="20" name="email" maxlength="50" class="field"></td>
        </tr>
        <tr>
            <td colspan="3" class="text"><b>Din hilsen:</b></td>
        </tr>
        <tr>
            <td colspan="3" align="right"><textarea name="message" rows="9" cols="30" wrap="vitual" style="font-size: 10pt; font-family: Arial,sans-serif"></textarea></td>
        </tr>
        <tr>
            <td colspan="3" align="right"><input type="submit" value="send" class="button"></td>
        </tr>
        </form>
        </table>
    </td>
    <td width="10"><spacer height="1" width="10" type="block"><br>&nbsp;</td>
    <td valign="top" width="520" class="text2">
<?php
    if (numberOfPages("$PHP_SELF") != null)
    {
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td bgcolor="white">
        <table width="100%" border="0" cellpadding="2" cellspacing="1">
        <tr>
            <td bgcolor="white" style="cursor:nw-resize" class="#000000text"><?php print numberOfPages("$PHP_SELF","<span class=\"text\">page: </span>") ?></td>
        </tr>
        </table>
    </td>
</tr>
</table>
<br>
<?php
    }
?>

<?php
    $i = 0;
    while($i < sizeof($content)-4)
    {
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td bgcolor="white">
        <table width="100%" border="0" cellpadding="2" cellspacing="1">
<?php
// name and email as link >>
        $i=$i+2;
        if ($content[$i] != "")
        {
?>        <tr>
            <td class=text bgcolor="white" style="cursor:hand" onMouseOver="this.style.background='white'" onMouseOut="this.style.background='white'" onClick="window.location.href='mailto:<?php print $content[$i+2] ?>'"><a href="mailto:<?php print $content[$i+2] ?>"><?php print $content[$i] ?></a></td>
        </tr>
<?php
        }
// name and email as link <<
?>
<?php
// url >>
        $i++;
        if ($content[$i] != "")
        {
?>        <tr>
            <td class=text bgcolor="white" style="cursor:hand" onMouseOver="this.style.background='white'" onMouseOut="this.style.background='white'" onClick="window.location.href='<?php print $content[$i] ?>'"><a href="<?php print $content[$i] ?>"><?php print $content[$i] ?></a></td>
        </tr>
<?php
        }
// url <<
?>
<?php
// message >>
        $i=$i+2;
        if ($content[$i] != "")
        {
?>        <tr>
            <td class=text bgcolor="white"><?php print divideWord($content[$i], $maxWordLength); ?></td>
        </tr>
<?php
        }
// message <<
?>
<?php
// date and time >>
        $i++;
        if ($content[$i] != "")
        {
?>        <tr>
            <td class=text bgcolor="white" style="cursor:nw-resize" onMouseOver="this.style.background='white'" onMouseOut="this.style.background='white'">[<?php print $content[$i]; $i++?>]</td>
        </tr>
<?php
        }
        $i++;
// date and time <<
?>
        </table>
    </td>
</tr>
</table>
<br>
<?php
    }
?>
<tr>
    <td class="text" valign="bottom"><br><?php print check(); ?></td>
    <td width="10"><spacer height="1" width="10" type="block"><br>&nbsp;</td>
    <td valign="bottom" align="right"><div><span class="text"><a href="http://www.oerbek.dk/passwd/admin.php" target="_blank">©&nbsp;</a></span><a href="mailto:kazzie@ofir.dk" class="#000000text"></a>&nbsp;<a href="http://www.oerbek.dk/" target="_blank" class="text">http://www.oerbek.dk</a></div></td>
</tr>
</table>

    </td><!-- Col 2 -->
  </tr>
</table>

        </body>
      </meta>
    </meta>
  </head>
</html>

Håber nogen kan hjælpe mig, med hvor jeg kan ændre noget, således at jeg kan banne uønskede IP'er.
Avatar billede kazzie Nybegynder
24. november 2005 - 12:08 #1
Vil lige nævne i farten, at der i en anden fil, som hører til gæstebogen har fl. kode, og det måske er der, jeg skal ændre noget. Jeg ved det ikke.

<?php
/*
*    $Id: lib.php ,v 1.09 2001/04/10 23:48:00 oerbek Exp $
*
*    (c)2002, Copyright, henrik
*/

/**
*    @author henrik <henrik@oerbek.dk>
*    @version 1.0
*/

/**
*    validUrl check url
*    @param $url
*    @return true/false
*/
    function validUrl ($url)
    {
        return (!ereg('^http://',$url));
    }

/**
*    validEmail check e-mail
*     @param $email
*    @return true/false
*/
    function validEmail($email)
    {
        return (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$adr));
    }

/**
*    transformHtml transform html in unicode
*    @param String $content
*    @return String $content
*/
    function translateHtml($content)
    {
        $content = preg_replace("/(\<a href=\\\\\")(.*)(\\\\\">)(.*)(\<\/a\>)/U","\[a href=\\2\]\\4\[/a\]", $content);
        $content = preg_replace("/(\<b\>)(.*)(\<\/b\>)/U","\\2", $content);
        $content = preg_replace("/(\<i\>)(.*)(\<\/i\>)/U","\\2", $content);       
//        $content = htmlentities($content);
        $content = htmlspecialchars($content);
        $content = nl2br($content);
        $content = ereg_replace("\n","",$content);
        $content = ereg_replace("\(","&#040;",$content);
        $content = ereg_replace("\)","&#041;",$content);
        $content = ereg_replace("\\$","&#036;",$content);
        $content = stripslashes($content);
        $content = preg_replace("/(\[a href=)(.*)(\])(.*)(\[\/a\])/U","<a href=\\2>\\4</a>", $content);
        $content = preg_replace("/(\[b\])(.*)(\[\/b\])/U","<b>\\2</b>", $content);
        $content = preg_replace("/(\[i\])(.*)(\[\/i\])/U","<i>\\2</i>", $content);
        return $content;
    }

/**
*    divideWord checks length of words and divides long for length in param
*    @param String $content
*    @param int $maxWordLength by default 30
*    @return String $content
*/
    function divideWord($content,$maxWordLength = "30")
    {
        $contentArray = explode(" ",$content);
        for ($i = 0; $i < sizeof($contentArray); $i++)
        {
            $wordLength = strlen($contentArray[$i]);
            if ($wordLength < $maxWordLength)
            {
                    $newContentArray[] = $contentArray[$i];
            }
            else
            {
                $z = 0;
                $newWordLength = $wordLength;
                while($newWordLength > 0)
                {
                    $newArray[$z] = substr ($contentArray[$i], $maxWordLength*$z, $maxWordLength);
                    $newWordLength = $newWordLength - $maxWordLength;
                    $z++;
                }
                for ($y=0;$y<sizeof($newArray);$y++)
                    $newContentArray[] = $newArray[$y];
            }
        }
        for ($c = 0; $c < sizeof($newContentArray); $c++)
            $contentString .= $newContentArray[$c]." ";
        return $contentString;
    }

    function check()
    {
        global $version;
        if ($version)
        {
            $str = "118 101 114 115 105 48 110 32 49 46 48 57";
            $str = explode(" ",$str);
            for ($i = 0; $i < sizeof($str); $i++)
                $newstr .= chr($str[$i]);
            return $newstr;
        }
    }

/**
*    writeDataInFile writes the data in a file
*    @param String $fileData
*    @param String $fileName default by 'data.inc'
*/
    function writeDataInFile($fileData,$fileName = "../guestbook/data.inc")
    {
        if(!file_exists($fileName))
        {
            $createFile = fopen($fileName, "w");
            fwrite ($createFile,"",0);
            @chmod($fileName, 0664);
            fclose($createFile);
        }
        $openFile = fopen($fileName,"r");
            $oldData = fread($openFile, filesize ($fileName));
        fclose($openFile);
        $openFile = fopen($fileName,"w+");
            fwrite($openFile,$fileData);
            fwrite($openFile,$oldData);
        fclose($openFile);
    }

/**
*    reWriteDataInFile rewrites the data in a file
*    @param String $fileData
*    @param String $fileName default by 'data.inc'
*/
    function reWriteDataInFile($fileData,$fileName = "../guestbook/data.inc")
    {
        if(!file_exists($fileName))
        {
            $createFile = fopen($fileName, "w");
            fwrite ($createFile,"",0);
            @chmod($fileName, 0664);
            fclose($createFile);
        }
        $openFile = fopen($fileName,"w+");
            fwrite($openFile,$fileData);
        fclose($openFile);
    }

/**
*    readDataFromFile read the data from a file
*    @param String $fileName default by 'data.inc'
*/
    function readDataFromFile($fileName = "../guestbook/data.inc")
    {
        if(!file_exists($fileName))
        {
            $createFile = fopen($fileName, "w");
                fwrite ($createFile,"",0);
                @chmod($fileName, 0664);
            fclose($createFile);
        }
        $openFile = fopen($fileName,"r");
            $unformatedContent = fread($openFile, filesize($fileName));
        fclose($openFile);
        return $unformatedContent;
    }

/**
*    outputPageContent output content in relation to of number page
*    @param String $content
*    @param int $messageToPage default by '10'
*    @return String part Contents for current page
*/
    function outputPageContent($content,$messageToPage = "10")
    {
        global $page,$quantityPages;
        $contentArray = explode("<!--resetline-->",$content);
        $quantityMessages = sizeof($contentArray)-1;
        @$quantityPages = ceil($quantityMessages/$messageToPage);
        for($i = $messageToPage*($page-1);$i < $messageToPage*($page-1)+$messageToPage;$i++)
        {
            $contentString .= $contentArray[$i]."xxxxx";
        }
        return $contentString;
    }

/**
*    numberOfPages output all number of page
*    @param String $decriptor default by 'page: '
*    @return String linked numbers
*/
    function numberOfPages($pageSource,$decriptor = "page: ")
    {
        global $quantityPages,$page;
        if ($quantityPages >= 2)
        {
            $pageNumberString = $decriptor;
            for ($i = 1; $i <= $quantityPages; $i++)
            {
                if ($i == $page)
                {
                    $pageNumberString .= "$i ";
                }
                else
                {
                    $pageNumberString .= "<a href=".$pageSource."?page=$i>$i</a> ";
                }
            }
            return $pageNumberString;
        }
        else
            return $pageNumberString = null;
    }

/**
*    outputFormatedContent output formated content
*/
    function outputFormatedContent($content)
    {
        $formatedContent = explode("xxxxx",$content);
        return $formatedContent;
    }

/**
*    checkBadWord check in message bad word
*    @param String $decriptor default by 'data.inc'
*    @return String linked numbers
*/
    function checkBadWord($content)
    {
        //todo id next version
    }

?>
Avatar billede showsource Seniormester
24. november 2005 - 12:58 #2
Kan ikke lige se noget med ipbanning.
Men hvis din side ligger på en apacheserver, og du kan bruge .htaccess, kan flg. gøre det i en .htaccess

Order Deny,Allow
Deny from 127.0.0.1 123.456.789.10

Altså, mellemrum mellem hver ip du vil banne
Avatar billede kazzie Nybegynder
24. november 2005 - 15:38 #3
vil det sige, at jeg skal oprette en fil som hedder .htaccess eller ??
Avatar billede showsource Seniormester
24. november 2005 - 18:39 #4
Jow!
Og er du på win, og bruger notepad til at lave din fil, så når du skal gemme filen som .htaccess, så vælg først "Alle filer" og brug " omkring navnet, ".htaccess", ellers kan du ikke gemme uden at bruge et "fornavn"
Avatar billede kazzie Nybegynder
28. november 2005 - 03:16 #5
Jeg takker ... det lader til at fungere efter hensigten, i hvert tilfælde har jeg ikke modtaget flere spambeskeder i min gæstebog ...

Hvorledes giver jeg dig dine fortjente point ?
Avatar billede showsource Seniormester
28. november 2005 - 05:08 #6
Det kan du når jeg lægger et svar! :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