Inte ett spam så långt ögat når sedan jag lade till den visuella bekräftelsen, och detta är fyra dagar sedan. Under den tiden skulle jag annars ha fått minst 40 spam, så jag betraktar detta som ett fungerande säkerhetstillägg
Därför lägger jag nu upp en liten guide för er som är intresserade av att stoppa spam i Advanced Guestbook . Om jag inte anger någon mapp i beskrivningen, så betyder det forumets och gästbokens rot (det bör vara samma om du installerat enligt beskrivningen i originalgästboken).
OBS! Någon modig får gärna testa att göra förändringen i sin gästbok enligt denna guide, så att man kan se om denna guide är korrekt skriven...
Öppna:
addentry.php
Hitta:
Kod: Markera allt
$userdata = session_pagestart($user_ip, PAGE_INDEX);
Efter, lägg till:
Öppna:
admin/addentry.php
Hitta:
Efter, lägg till:
Kod: Markera allt
if($_POST["rand"] != $_SESSION["new_string"]) {
message_die(GENERAL_ERROR, "Säkerhetskoden är inte korrekt ifylld. Gå tillbaka till ditt meddelande och korrigera.");
}
Den svenska texten texten i koden ovan ska du översätta till det språk du använder i din gästbok!
Öppna:
admin/templates/form.tpl
Hitta:
Kod: Markera allt
<tr>
<td class="row1"><span class="gen"><font face="$VARS[font_face]"><b>$LANG[FormName]: *</b></font></span></td>
<td class="row2"><span class="gen"><input type="text" name="gb_name" size="42" maxlength="30"></span></td>
</tr>
Efter, lägg till:
Kod: Markera allt
<tr>
<td class="row1">
<p><span class="gen"><font face="$VARS[font_face]"><b> Säkerhetskod:*
<br>
</b><font size="1">Ange koden exakt som du ser den. Den är känslig
för stora/små bokstäver, noll har ett diagonalt streck
genom sig. </font></font></span></p>
</td>
<td class="row2"><span class="gen"><img src="guestbook_confirm.php" border="1">
<br>
<br>
<input name="rand" size="5" maxlength="5">
</span></td>
</tr>
Den svenska texten texten i koden ovan ska du översätta till det språk du använder i din gästbok!
Kopiera följande kod och klistra in den i en texteditor (notepad el dyl):
Kod: Markera allt
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: image/png");
session_start();
$WIDTH = 50;
$HEIGHT = 18;
$im = ImageCreate($WIDTH, $HEIGHT);
$string = md5(rand(0,9999));
$_SESSION["new_string"] = substr($string, 17, 5);
$colorFront = ImageColorAllocate($im, 0x96, 0x00, 0x0C);
$colorBack = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
$colorBack2 = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
ImageFill($im, 0, 0, $colorBack2);
ImageString($im, 3, 8, 2, $_SESSION["new_string"], $colorFront);
ImagePNG($im);
ImageDestroy($im);
?>
Spara filen som guestbook_confirm.php i gästbokens (och forumets) rot.
Om du vill kan du ändra på vilka färger kodrutan ska ha genom att ändra på färgkoderna i denna del, färgkoderna är grupperade i sifferkombinationer om två och två:
Kod: Markera allt
$colorFront = ImageColorAllocate($im, 0x96, 0x00, 0x0C);
$colorBack = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
$colorBack2 = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
Spara och stäng alla filer och ladda upp dem på din server. Klart!
Om ni testar detta, så "måste" ni rapportera här hur det gick, så jag vet att detta fungerat
/MN