RE: Anti-Spam Maßnahmen - NetHunter - 16.04.2012
Dazu hatte ich mich auch schonmal ausgelassen. Siehe Beitrag #22.
RE: Anti-Spam Maßnahmen - destrokk - 13.06.2012
Ich buddel das Thema mal wieder aus =)
Und zwar funktioniert auch alles super, aber ich habe bei mir einen Bug festgestellt und irgendwie finde ich den Fehler nicht. Es handelt sich dabei um den Code für die Registrierung.
Wenn man das Spambot-Feld vergisst einzugeben, kommt, dass das Feld nicht richtig ausgefüllt wurde. Aber es wird nich angezeigt, dass das Feld "Spambot" nicht richtig ausgefüllt wurde, sondern das Feld "Spielername".
Das Feld "Spielername" gibt es in meinem Forum als eigenes Profilfeld. Allerdings hat es die ID6 und das von dem Spambot die ID11.
Ich bin auch nochmal alles durchgegangen, aber irgendwie.. finde ich das Problem nicht.
Abschnitt aus der member-register
Code: <fieldset class="trow2">
<legend><strong>Spamschutz!</strong></legend>
<table cellspacing="0" cellpadding="4">
<!-- start: member_register_customfield -->
<tbody><tr>
<td><span class="smalltext">Bitte <strong>"Ich bin
kein Bot"</strong> in die Textbox eintragen. Ohne
Anführungszeichen!<br />Die Eingabe ist notwendig um
automatisierte Registrierungen zu vermeiden.</span></td>
</tr>
<tr>
<td><input type="text" value="" size="0" class="textbox"
id="fid11" name="profile_fields[fid11]" /><div id="fid11_status"
style="display: none;"></div></td>
</tr>
<!-- end: member_register_customfield -->
</tbody></table>
</fieldset>
Abschnitt aus der inc/datahandlers/user.php
Code: // Then loop through the profile fields.
while($profilefield = $db->fetch_array($query))
{
$profilefield['type'] = htmlspecialchars_uni($profilefield['type']);
$thing = explode("\n", $profilefield['type'], "2");
$type = trim($thing[0]);
$field = "fid{$profilefield['fid']}";
if($profile_fields['fid11'] != 'Ich bin kein Bot' && (basename($_SERVER['PHP_SELF']) == "member.php"))
Weiß vielleicht jemand Rat?
RE: Anti-Spam Maßnahmen - NetHunter - 13.06.2012
Dir fehlt die set_error Zeile in inc/datahandlers/user.php
Code: // Then loop through the profile fields.
while($profilefield = $db->fetch_array($query))
{
$profilefield['type'] = htmlspecialchars_uni($profilefield['type']);
$thing = explode("\n", $profilefield['type'], "2");
$type = trim($thing[0]);
$field = "fid{$profilefield['fid']}";
if($profile_fields['fid11'] != 'Ich bin kein Bot' && (basename($_SERVER['PHP_SELF']) == "member.php"))
{
$this->set_error('bad_profile_field_values', array($profilefield['name']));
}
RE: Anti-Spam Maßnahmen - destrokk - 20.06.2012
Huhu, danke für die Antwort. Da habe ich wohl nicht alles richtig kopiert, als ich es hier gepostet habe. Die Error-Zeile ist vorhanden, habe eben nochmal geschaut. Gehen tut's aber leider dennoch nicht.
Also der Abschnitt sieht insgesamt halt so aus:
Code: // Then loop through the profile fields.
while($profilefield = $db->fetch_array($query))
{
$profilefield['type'] = htmlspecialchars_uni($profilefield['type']);
$thing = explode("\n", $profilefield['type'], "2");
$type = trim($thing[0]);
$field = "fid{$profilefield['fid']}";
if($profile_fields['fid11'] != 'Ich bin kein Bot' && (basename($_SERVER['PHP_SELF']) == "member.php"))
{
$this->set_error('bad_profile_field_values', array($profilefield['name']));
}
// If the profile field is required, but not filled in, present error.
RE: Anti-Spam Maßnahmen - der unwissende - 28.07.2012
(28.09.2011, 21:49)NetHunter schrieb: So, vergessen wir alles was in Beitrag 47 steht. Alles auf Anfang.
Neues globales Template nh_spamprotect mit folgenden Inhalt erstellen:
Code: <tr>
<td class="trow1" valign="top"><strong>Sicherheitsfrage</strong></td>
<td class="trow1">
<legend><strong>Spamschutz!</strong></legend>
<table cellspacing="0" cellpadding="4">
<tr>
<td><span class="smalltext">Bitte <strong>"Ich bin kein Bot"</strong> in die Textbox eintragen. Ohne Anführungszeichen!<br />Die Eingabe ist notwendig um automatisierte Beitragserstellungen zu vermeiden.</span></td>
</tr>
<tr>
<td><input type="text" value="" size="0" class="textbox" id="captchain" name="captchain" /><input type="hidden" name="captchapostplus" value="Ich bin kein Bot" id="captchapostplus" /></td>
</tr>
</table>
</td>
</tr>
Diesen Code:
Code: if($mybb->input['captchain'] != 'Ich bin kein Bot' && !$mybb->user['uid']) {
error('Du hast die Sicherheitsfrage leider falsch beantwortet!<br /><a href="javascript:history.back()">Zurück</a>');
}
einmal in newthread.php über der Zeile
Code: // One or more errors returned, fetch error list and throw to newthread page
und außerdem in newreply.php über der Zeile
Code: // One or more errors returned, fetch error list and throw to newreply page
einbauen.
Diesen Code:
Code: if($mybb->user['uid'] == 0) {
eval("\$nh_spamprotect = \"".$templates->get("nh_spamprotect")."\";");
}
einmal in newthread.php über der Zeile:
Code: eval("\$newthread = \"".$templates->get("newthread")."\";");
und außerdem in newreply.php über der Zeile:
Code: eval("\$newreply = \"".$templates->get("newreply")."\";");
einbauen.
Für die Schnellantwortbox.
Finde in showthread.php
Code: eval("\$quickreply = \"".$templates->get("showthread_quickreply")."\";");
Darüber einfügen:
Code: if($mybb->user['uid'] == 0) {
eval("\$nh_spamprotect = \"".$templates->get("nh_spamprotect")."\";");
}
Zu guter letzt im Template newreply und newthread unter {$captcha} die neue Variable {$nh_spamprotect} einbauen.
Für die Schnellantwortbox zusätzlich in showthread_quickreply, ebenfalls unter {$captcha}
Damit sollte alles wie gewünscht funktionieren.
hallo leute,ich habe alles wie beschrieben eingebaut.die frage und das eingabefeld werden auch angezeigt,bei antworten und auch bei der schnellantwort.leider kann man trotzdem posten ohne eine eingabe.es kommt auch keine meldung,dass das feld leer ist oder eine falsche eingabe gemacht wurde.was könnte das problem sein?für eure hilfe bedanke ich mich im voraus.
gruss
der unwissende
RE: Anti-Spam Maßnahmen - Jockl - 28.07.2012
Hast Du eine URL zu Deinem Forum? Ich schätze mal, dass es sich nicht um das Forum handelt, das bei Dir als Homepage angegeben ist, da dort Gäste gar nicht posten dürfen...
RE: Anti-Spam Maßnahmen - der unwissende - 28.07.2012
hallo jockl,nett von dir das du dich mal wieder um mich kümmerst.aber doch,das ist dieses forum.ich habe momentan die schreibrechte für gäste wieder gesperrt.sonst ist sofort wieder alles zugemüllt.als ich den code probiert hatte,hatte ich natürlich gästen die schreibrechte eingeräumt.
gruss
der unwissende
RE: Anti-Spam Maßnahmen - Jockl - 28.07.2012
Naja, so lässt sich halt nur schlecht nachvollziehen, was evtl. schief läuft....
Alles andere ist raten, was Du bei der Umsetzung ggf. nicht korrekt umgesetzt hast.
RE: Anti-Spam Maßnahmen - der unwissende - 28.07.2012
vielen dank für deine mühe,jockl.diese kategorie habe ich jetzt für gäste frei gegeben.wenn du vielleicht mal schauen möchtest.
http://verkehrt.eu/forumdisplay.php?fid=38
ich danke dir schon mal im voraus
gruss
der unwissende
RE: Anti-Spam Maßnahmen - Jockl - 28.07.2012
Bist Du Dir sicher, dass Du die Code-Änderungen in den PHP-Dateien vorgenommen hast und diese auch wirklich gespeichert wurden?
|