webForumDet fria alternativet

Har jag otur....

Webbutveckling

6 svar · 686 visningar · startad av Sussi54

Medlem sedan feb. 200826 inlägg
Frågan#1

Jag har haft en gästbok på min hemsida i PHP script. Tyvärr tar pokerspam över sidan.
Har jag otur eller......

Medlem sedan aug. 20002 272 inlägg
#2

Nej det är ingen otur..alla som inte skyddar sin gästbok får problem med detta.

Medlem sedan feb. 200826 inlägg
#3

Undviker man detta genom att de som skriver får koda innan de skickar sitt inlägg?

Medlem sedan aug. 20039 340 inlägg
#4

Det är ett sätt. Ett mycket enkelt sätt är t ex att skriva "Skriva tretvåett med siffror" som då alltså ska bli 321. Har skyddat bra på en sida som jag driver.

Medlem sedan feb. 200826 inlägg
#5

<HTML>
<HEAD>
<TITLE>Min gästbok</TITLE>
</HEAD>
<BODY>
<H2>Här kan Du tycka till:</H2><div align="right"><a href="index.html"><img src="tunn pil.jpg" border="0"alt="Startsidan"></a></div>
<form action="<?echo $PHP_SELF?>" method="POST">
<textarea cols=40 rows=5 name=note wrap=virtual></textarea>
<input type=submit value="Skicka">
</form>
<?
if(isset($note))
{

$note = htmlspecialchars($note);
$note = nl2br($note);	
   	$fp = fopen("gastbok/notes.txt","a");	
   	fputs($fp,$note.'\<br\>\<br\>');	
   	fclose($fp);

}
?>
<h2>Skrivet i gästboken:</h2>

<?
if (file_exists ("gastbok/notes.txt")) {
readfile("gastbok/notes.txt");
}
?>

</BODY>
</HTML>

Var ska jag skriva 321? Tack för hjälpen :)

Medlem sedan sep. 20025 506 inlägg
#6

<form action="<?echo $PHP_SELF?>" method="POST">
<textarea cols=40 rows=5 name=note wrap=virtual></textarea>
Var god skriv tretvåett med siffror i den här rutan: <input type="text" name="check" value="">
<input type=submit value="Skicka">
</form>
<?
if(isset($note) && $_POST['check'] == 321)
{

$note = htmlspecialchars($note);
$note = nl2br($note);	
   	$fp = fopen("gastbok/notes.txt","a");	
   	fputs($fp,$note.'\<br\>\<br\>');	
   	fclose($fp);

}
?>

Nåt sånt borde funka, sen kan man förstås göra det lite mer avancerat så att man istället slumpar ut vilka siffror man vill ha, annars kanske nån bot lär sig vad som måste stå i ett fält.

Medlem sedan aug. 20039 340 inlägg
#7

Jag passade på att ändra ett par saker till. Jag bytte ut $note mot $_POST['note']) som är det gängse sättet att få fram värdet på formulärelement idag. Jag flyttade även kodblocket till början av sidan, vilket krävs för att man ska kunna skriva ut saker beroende på hur den koden körs.
Övriga ändringar fetmarkerade.

<?PHP
if(isset($_POST['note'])) 
{ 

	[b]if ($_POST['spamverification'] == '312')[/B]
		$note = htmlspecialchars($_POST['note']);
		$note = nl2br($note); 
		$fp = fopen("gastbok/notes.txt","a"); 
		fputs($fp,$note.'<br><br>'); 
		fclose($fp);
	[b]}else{
		$spamerror = "Du fyllde i verifikationskoden fel. Vänligen försök igen.";
		$repost = $_POST['note'];
	}[/b]
}
?>

<HTML>
<HEAD>
<TITLE>Min gästbok</TITLE>
</HEAD>
<BODY>
<H2>Här kan Du tycka till:</H2><div align="right"><a href="index.html"><img src="tunn pil.jpg" border="0"alt="Startsidan"></a></div>
<form action="<?echo $PHP_SELF?>" method="POST">
[b]<?PHP
if($spamerror){
	echo "<div style=\"background-color: rgb(255, 128, 128)\">$spamerror</div>"
}
?>[/b]
<textarea cols=40 rows=5 name=note wrap=virtual>[b]<?PHP echo $repost; ?>[/b]</textarea><br />
[B]Skriv in TreEttTvå med siffror här: <input name="spamverification" type="text" />[/B]
<input type=submit value="Skicka">
</form>

<h2>Skrivet i gästboken:</h2>

<? 
if (file_exists ("gastbok/notes.txt")) {
readfile("gastbok/notes.txt");
} 
?>

</BODY>
</HTML>
257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)