Zufällige frage erstellen?
Hey leute,
hab seit einiger zeit einen sehr sehr nervigen Spamer in meinem gb, und nun möchte ich nen Spamschutz reinmachen, der einme zufällige Frage generiert und dazu die passende frage sucht.
Was ich weiss: Man bräuchte datenbanken.
Und wie ich das mit den Antwort erkennen machen kann
Was ich nicht weiß: Zufällige frage aussuchen
Könnt ihr mir helfen?
hab seit einiger zeit einen sehr sehr nervigen Spamer in meinem gb, und nun möchte ich nen Spamschutz reinmachen, der einme zufällige Frage generiert und dazu die passende frage sucht.
Was ich weiss: Man bräuchte datenbanken.
Und wie ich das mit den Antwort erkennen machen kann
Was ich nicht weiß: Zufällige frage aussuchen
Könnt ihr mir helfen?
Also hast Du beispielsweise 200 Fragen und Antworten in einem Array oder einer Datenbank, und suchst zufällig eine Nummer zwischen 1 und 200? Dann brauchst Du doch nur eine Zufallszahl - das geht beispielsweise mit PHP mit
<?php
$fragenummer= rand(1,200);
?>
Wenn der Typ richtig nervt, würde ich an Deiner Stelle aber nicht groß rummachen, sondern einfach seine IP abfragen und für diese IP dann mal eine Weile den Zugang sperren. Aber so, dass er nicht merkt, dass das nur ihm passiert - lass ihn ruhig denken, es sei eine allgemeine Fehlfunktion ...
<?php
$fragenummer= rand(1,200);
?>
Wenn der Typ richtig nervt, würde ich an Deiner Stelle aber nicht groß rummachen, sondern einfach seine IP abfragen und für diese IP dann mal eine Weile den Zugang sperren. Aber so, dass er nicht merkt, dass das nur ihm passiert - lass ihn ruhig denken, es sei eine allgemeine Fehlfunktion ...
d(>_<)b
Naja, eine einzelne IP sperren bringt meist immer nur für den einen Tag oder so was, denn üblicherweise hat man ja jeden Tag eine neue IP ... wenn der Typ öfters aufkreuzt, musst Du vermutlich mehrere IPs sperren. Du könntest Dein Gästebuch beispielsweise auch so einrichten, dass pro Tag eh nur ein Eintrag pro IP gestattet ist (also falls er Dir pro Tag 20 Einträge reinschreibt oder so).
Ich wüsste auch nicht, was Deine Fragen bringen sollen - willst Du die Antworten nur Deinen besten Freunden bekanntgeben, oder weshalb sollen diese Fragen das Spammen verhindern? Vermutlich ist der Spammer ja sowieso jemand aus Deinem Bekanntenkreis - oder wieso taucht der Kerl überhaupt auf Deiner Seite auf?
Ich wüsste auch nicht, was Deine Fragen bringen sollen - willst Du die Antworten nur Deinen besten Freunden bekanntgeben, oder weshalb sollen diese Fragen das Spammen verhindern? Vermutlich ist der Spammer ja sowieso jemand aus Deinem Bekanntenkreis - oder wieso taucht der Kerl überhaupt auf Deiner Seite auf?
d(>_<)b
ip sperren ist blödsinn. wenn der dich zuspammt dann bau ein catpcha ein. IP kann ich ändern mit anonymouse.org oder TOR oder anderen offenen Proxys.
Habs mir mal durchgelesen *gg* die spams. Das sind keine Spams das ist Kritik von leuten die kindisch sind, d.h. sie wollen dir auf diese weise sagen das dein gästebuch mist ... ähm schrott suboptimal ist. Nein jetzt im ernst. Man sollte kein Gästebuch machen wenn man sich noch nicht so auskennt mit der Materie.
sry hab zum testen auch mal was probiert. Ich könnte theoretisch sogar ein script schreiben was deinen Server anfüllt die ganzen 1GB *gg*
eine endlosschleife die sinnlose kommentare in extem kurzer zeit postet.
wenigstens escapest du die eingaben schon.
schau mal da:[url]http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=php+captcha[/url]
aber das hilft auch gegen manuelle spammer nicht. folgende dinge kannst du noch machen:
bei mehr tipps einfach fragen
achja zu den Fragen: Ich halte davon gar nix. aus folgendem grund:
Welche Farbe hat der Himmel
Womit kann man mobil telefonieren:
Wie du siehst gibts immer mehr RICHTIGE antworten, außerdem ist es nicht sprachunabhängig, daher nicht barrierefrei zugänglich.
Habs mir mal durchgelesen *gg* die spams. Das sind keine Spams das ist Kritik von leuten die kindisch sind, d.h. sie wollen dir auf diese weise sagen das dein gästebuch mist ... ähm schrott suboptimal ist. Nein jetzt im ernst. Man sollte kein Gästebuch machen wenn man sich noch nicht so auskennt mit der Materie.
sry hab zum testen auch mal was probiert. Ich könnte theoretisch sogar ein script schreiben was deinen Server anfüllt die ganzen 1GB *gg*
eine endlosschleife die sinnlose kommentare in extem kurzer zeit postet.
wenigstens escapest du die eingaben schon.
schau mal da:[url]http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=php+captcha[/url]
aber das hilft auch gegen manuelle spammer nicht. folgende dinge kannst du noch machen:
- ip blocken nach post.
- tracking cookie setzten und blocken.
- einen hash anhand der konfiguartion des Computers bilden und diesen blocken (https://panopticlick.eff.org/)
- Einstellungen wie java version flash version browser und version auflösung betriebssystem,...usw. je mehr einstellungen desto besser.
- Aus diesen einen String machen und einen MD5-Hash bilden. Dann hast eine Id eines Computers
- Damit er nochmal posten kann muss er dann eine dieser einstellungen ändern.
- Einstellungen wie java version flash version browser und version auflösung betriebssystem,...usw. je mehr einstellungen desto besser.
bei mehr tipps einfach fragen
achja zu den Fragen: Ich halte davon gar nix. aus folgendem grund:
Welche Farbe hat der Himmel
- himmelblau
- hellblau
- blau
Womit kann man mobil telefonieren:
- Mobiltelefon
- Handy
Wie du siehst gibts immer mehr RICHTIGE antworten, außerdem ist es nicht sprachunabhängig, daher nicht barrierefrei zugänglich.
wischipedia - http://wischi.wmw.cc (einfach mal vorbeischaun)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »wischi« (28. Juli 2010, 21:58)
Ich selber verwende auch gerne die Methode, das ich gegen Spambots ihre eigenen Systeme einsetze.
Ich verwende ein für User unsichtbares Feld das aber von Bots ausgelesen wird.
Dieses beschrifte ich noch möglichst prägnant mit "email" oder so, das der Bot es auch sicher ausfüllt.
Die restlichen Felder erhalten zufällig generierte buchstaben und zahlen als namen. (nbojsgz94r32 für name, z.b.)
Bei der Verarbeitung prüfe ich dann ob das email feld ausgefüllt ist, und blocke den post wenn dem so ist.
Zusätzlich findet der Bot unter den standart feldnamen (email, name, comment, etc.) keine felder und füllt diese auch nicht aus.
Das geht natürlich nur wenn ein Bot genutzt wird.
Wenn jemand es per hand einträgt gibt es weitere möglichkeiten.
Cookies sind das einfachste, wobei du natürlich dann auch konsequenterweise alle einträge blocken musst bei leuten die cookies verweigern.
Ich verwende ein für User unsichtbares Feld das aber von Bots ausgelesen wird.
Dieses beschrifte ich noch möglichst prägnant mit "email" oder so, das der Bot es auch sicher ausfüllt.
Die restlichen Felder erhalten zufällig generierte buchstaben und zahlen als namen. (nbojsgz94r32 für name, z.b.)
Bei der Verarbeitung prüfe ich dann ob das email feld ausgefüllt ist, und blocke den post wenn dem so ist.
Zusätzlich findet der Bot unter den standart feldnamen (email, name, comment, etc.) keine felder und füllt diese auch nicht aus.
Das geht natürlich nur wenn ein Bot genutzt wird.
Wenn jemand es per hand einträgt gibt es weitere möglichkeiten.
Cookies sind das einfachste, wobei du natürlich dann auch konsequenterweise alle einträge blocken musst bei leuten die cookies verweigern.
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
Hey,
Also ich hab die variante mit dem Zufall genommen. Habe einfach 11 Codes in eine Tabelle in der Datenbank gemacht und diese per Zufall durch die ID ermittelt. Und das ging auch. (Also die zufällige anzeige der Codes)
Aber wenn ich versuche den Code richtig einzugeben kommt trotzdem das es falsch ist.
Hier ist mein Code:
Und für leute die es mal sehen wollen: Hier.
Hoffentlich wisst ihr die Lösung, weil ich finde das mit den Zufälligen Codes ist eine super art gegen spam.
Also ich hab die variante mit dem Zufall genommen. Habe einfach 11 Codes in eine Tabelle in der Datenbank gemacht und diese per Zufall durch die ID ermittelt. Und das ging auch. (Also die zufällige anzeige der Codes)
Aber wenn ich versuche den Code richtig einzugeben kommt trotzdem das es falsch ist.
Hier ist mein Code:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php
$DB = mysqli_connect("localhost", "", "", "");
srand((double)microtime()*9999999);
$zufall = rand(1,11);
$SQL = "SELECT * FROM spam WHERE id = '$zufall'";
$daten = mysqli_query($DB, $SQL);
$zeile = mysqli_fetch_array($daten);
echo 'Spamschutz: <p><input type="text" name="hidden" size="4" value="'.$zeile["code"].'"/><br/><form action="" method="post"><input type="text" name="code"/><p><input type="submit" value="absenden" name="sub"/></form>';
$Code = $_POST["code"];
$Sub = $_POST["sub"];
$C = $zeile["code"];
if($Sub AND $Code == "$C")
{
echo "Es ist richtig!";
}
if($Sub AND $Code !== "$C")
{
echo "Es ist falsch!";
}
?>
|
Und für leute die es mal sehen wollen: Hier.
Hoffentlich wisst ihr die Lösung, weil ich finde das mit den Zufälligen Codes ist eine super art gegen spam.
oh man... schau dir mal deine letzten if abfragen an.. hoffe du findest den fehler
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
ich meinte nicht den Operator, ich meinte, du sollst dir noch mal anschauen wie man mehrere bedingungen in einer if anweisung verwendet oder kriegst du von $Sub einen true oder false wert zurück?
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Also ich würde es mit Bild machen ein sehr gutes tutorial findest du hier:
http://www.stoppt-den-spam.info/webmaste…rial/index.html
http://www.stoppt-den-spam.info/webmaste…rial/index.html
Mfg
Moee
Moee
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 |
if(isset($_POST['sub'])){ //Prüfe ob button gedrückt wurde
if($_POST['code'] == $zeile['code']){ //prüfe ob beide codes gleich sind
//wenn ja...
echo 'Eingabe richtig';
}else{
//... sonst ...
echo 'Eingabe falsch';
}
}
|
und ungleich prüft man mit !=
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Okay, jetzt gehts
Hab ein wenig am Code rumgebastelt. und das feld wo der Code steht mit in den <form>-Tag genommen und jetzt gehts 
Seht selbst: Klick
Edit: Oh, ich seh grade. Durch F5 drücken geht es trotzdem -.-''
Wisst ihr wie man das schafft das F5 mal nicht geht?
Hab ein wenig am Code rumgebastelt. und das feld wo der Code steht mit in den <form>-Tag genommen und jetzt gehts 
Seht selbst: Klick
Edit: Oh, ich seh grade. Durch F5 drücken geht es trotzdem -.-''
Wisst ihr wie man das schafft das F5 mal nicht geht?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tato« (29. Juli 2010, 20:01)
damit es mit F5 nicht funktioniert solltest du innerhalb einer session speichern, ob das formular bereits erfolgreich abgesendet wurde.
dann einfach überprüfen ob das der fall ist.
jperl
dann einfach überprüfen ob das der fall ist.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Ähnliche Themen
-
Sonstige Programmiersprachen »-
und wieder c++ problem:D
(8. August 2008, 13:42)
-
PHP »-
Zufällige Zahl ausgeben ?
(5. Mai 2004, 19:43)
-
PHP »-
Zufalls ID
(16. April 2004, 12:16)
-
Archiv: Software »-
GIF´s erstellen?
(8. April 2003, 05:40)
-
PHP »-
Styls erstellen
(14. Januar 2003, 23:50)


