Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Problem med spam

Erik
Erik

Gradering

#20062

Hejsan, jag gjorde för cirka ett halvår sen en hemsida med en gästbok och den har dragit på sig stora problem med spam.

Hur kan man på ett enkelt sätt förhindra detta eviga spam?

Har gjort en textruta som är type="hidden" men verkar inte hjälpa ett dugg. 

Har även testat med att köra en fråga som: Vad är 5+9.

Men utan resultat.

ID: #20062 | Skapades: 2010-08-10 23:06:10 | Tråden har 8 svar och har lästs 465 gånger.

LP_MAXI
LP_MAXI

Gradering

#20063

Testa med en captcha lösning det kan nog fungera.

http://tinyurl.com/nuxtbp

http://www.lpmaxi.se/
ID: #20063 | Skapades: 2010-08-11 00:16:17

Buffee
Buffee

Gradering

#21108

Jag gör såhär, och det fungerar riktigt bra :)





<select name="spam" style="width: 212px;">


 
<option value="" name="spam">Fråga: 5+5= ?</option>


 
<option value="" name="spam">7,5</option>


 
<option value="ja" name="spam">10</option>


 
<option value="" name="spam">13</option>


 

</select>





och i php har jag

  if(!$spam) {
  echo 'Du skrev in fel svar på frågan 5+5=?. Backa och svara rätt.';

  }

ID: #21108 | Skapades: 2011-08-04 20:38:50

voigtan
voigtan

Gradering

#21109

Nej, det är inte alls bra, inte från ett användares synpunkt. varför har du frågan som ett val? Varför skriver du facit i HTML kod och Option har inget name, det är select-element som har det så plocka bort det, sen har du missat rätt mycket PHP kod om du nu vill tipsar andra, var är variabeln $spam ifrån, min gissning är att det är:

$spam = $_post['spam'] == "ja";
Vilket i sig är ganska missvisande jag läser din if fråga som: "är det inte spam? Visar då meddelandet", vilket känns riktigt konstigt från mitt håll. vettigare namn borde vara $isNotSpam eller något som beskriver vad variablen är.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21109 | Skapades: 2011-08-04 20:51:20

Erik
Erik

Gradering

#21115

Ursäkta att jag inte skrivit min lösning i tråden.

Såhär löste jag spam problemet:

<?
$random = rand(1,10);
$random2 = rand(1,10);

$summ = $random+$random2;
?>

    Vad är <? echo $random."+".$random2 ?>
    <input type="text" name="random" value="<?=$random?>" hidden >
    <input type="text" name="random2" value="<?=$random2?>" hidden>
   
    <input type="text" name="sakerhet"><br>

När man klickat skicka inlägget kommer man till

$summ = $_POST['random']+$_POST['random2'];
if($_GET['add'] == 'gb'){
if($_POST['sakerhet'] == $summ){
if($_POST['cookie'] == 'ja'){
    setcookie("namn", $_POST['namn'], time()+2592000);
    setcookie("email", $_POST['email'], time()+2592000);
}

if($_POST['namn'] == '' OR $_POST['inlagg'] == ''){
        echo "<script language='javascript'>alert('Fyll i alla fälten!');window.location.href='".$_SERVER["HTTP_REFERER"]."'</script>";
} else {
    mysql_query("INSERT INTO gastbok (namn, email, inlagg, datum, ip) VALUES ('".skydd($_POST['namn'])."','".$_POST['email']."','".skydd($_POST['inlagg'])."','".date("M-d H:i")."','".$_SERVER['REMOTE_ADDR']."')") or die (mysql_error());
    header("Location: index.php?p=gb");
}
} else {
    echo "<script language='javascript'>alert('Du passerade inte säkerhetskollen');window.location.href='".$_SERVER["HTTP_REFERER"]."'</script>";
}
}

 

ID: #21115 | Skapades: 2011-08-05 19:49:35

voigtan
voigtan

Gradering

#21116

känns lite farligt att ha fälten i hidden, en bot kan enkelt ändra alla HTML element och ändra random och random2 till 1+1 och börja svärma din gästbok.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21116 | Skapades: 2011-08-05 20:20:15

Erik
Erik

Gradering

#21117

Citerar voigtan:

känns lite farligt att ha fälten i hidden, en bot kan enkelt ändra alla HTML element och ändra random och random2 till 1+1 och börja svärma din gästbok.

Jo, jag tyckte inte det kändes så bra att skriva i hidden men vad skulle man kunna ändra det till? Eftersom databas insättningen ligger i dbins.php alltså en helt annan fil.

ID: #21117 | Skapades: 2011-08-05 21:33:38

voigtan
voigtan

Gradering

#21118

Session som inte gå att läsa av hade löst detta?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21118 | Skapades: 2011-08-06 09:34:51

Erik
Erik

Gradering

#21119

Tack för tipset, tänkte aldrig på en Session ens.

ID: #21119 | Skapades: 2011-08-06 15:38:35
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy