kostenloser Webspace werbefrei: lima-city


Brauche Spamschutz bei Registrierung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a099

    a099 hat kostenlosen Webspace.

    Ich habe seit einiger Zeit das Problem, dass meine Seite mit Anmeldungen zugespammt wird, die aber danach nicht aktiviert werden. Das verbraucht auch mein mail Kontingent. Und da meine Ahnung in PHP oder JS oder .htaccess nicht wirklich gut ist frage ih euch ob mir das irgendwer machen könnte.

    Mein Code (register.tpl.php)
    <?php include( $templates.'header.tpl.php' ); ?>
    
    <form action="<?php echo Config::$absolutePath; ?>register" method="post">
    	<fieldset>
    		<legend>Create Account</legend>
    		
    		<?php if( isset($messages['nameInUse']) ) { ?>
    			<div class="warn">This Username is allready registered!</div>
    		<?php } ?>
    		
    		<?php if( isset($messages['nameInvalid']) ) { ?>
    			<div class="warn">Your name must be at least 2 characters long an may not have any special characters!</div>
    		<?php } ?>
    		
    		<?php if( isset($messages['passToShort']) ) { ?>
    			<div class="warn">Your password must be at least 6 characters long!</div>
    		<?php } ?>
    		
    		<?php if( isset($messages['passNotEqual']) ) { ?>
    			<div class="warn">Your both passwords are not equal!</div>
    		<?php } ?>
    		
    		<?php if( isset($messages['emailInUse']) ) { ?>
    			<div class="warn">There is already a registered user with this E-Mail address!</div>
    		<?php } ?>
    		
    		<?php if( isset($messages['wrongEmail']) ) { ?>
    			<div class="warn">Your E-Mail address seems to be invalid!</div>
    		<?php } ?>
    		
    		
    		<dl class="form">
    			<dt>Name:</dt>
    			<dd>
    				<input type="text" name="name" value="<?php echo htmlspecialchars($_POST['name']); ?>"/> 
    				Only letters and numbers; at least 2 characters long
    			</dd>
    			
    			<dt>E-Mail:</dt>
    			<dd>
    				<input type="text" name="email" value="<?php echo htmlspecialchars($_POST['email']); ?>"/> 
    				Must be valid!
    			</dd>
    			
    			<dt>Password:</dt>
    			<dd>
    				<input type="password" name="pass" class="pass"/>
    			</dd>
    			
    			<dt>(Repeat)</dt>
    			<dd>
    				<input type="password" name="pass2" class="pass"/>
    			</dd>
    		
    			<dt>&nbsp;</dt>
    			<dd>
    				<input type="submit" name="register" class="button register" value="Register" />
    			</dd>
    		</dl>
    	</fieldset>
    </form>
    
    <?php include( $templates.'footer.tpl.php' ); ?>


    Dankeschön im Vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Derzeit kannst du das relativ leicht mit einfachen Matheaufgaben in Textform unterbinden.

    Beispiel: eins plus drei das Ergebnis als zahl in eine Textbox eintragen lassen und überprüfen. Wenn falsch abgehlehnt, wnen korrekt Registrierung erfolgt.


    Liebe Grüße
  4. Autor dieses Themas

    a099

    a099 hat kostenlosen Webspace.

    marvinkleinmusic schrieb:
    Derzeit kannst du das relativ leicht mit einfachen Matheaufgaben in Textform unterbinden.

    Beispiel: eins plus drei das Ergebnis als zahl in eine Textbox eintragen lassen und überprüfen. Wenn falsch abgehlehnt, wnen korrekt Registrierung erfolgt.


    Liebe Grüße


    Wie ich schon sagte bin ich schlecht darin falls du mir also dabei helfen könntest wäre ich sehr dankbar!
  5. Hallo :wave:

    a099 schrieb:
    Wie ich schon sagte bin ich schlecht darin falls du mir also dabei helfen könntest wäre ich sehr dankbar!


    Text Feld mit name="captcha"

    if ($_POST['captcha'] != $ergebnis)

    { die();}

    mfg :wave:
  6. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    Ich gehe davon aus, dass ein Spamschutz dich gegen Spambots schützen soll (soll ja auch "echte" Besucher geben, die spammen).
    Du findest eigentlich mit der Google-Suche php class captcha oder php class antispam jede Menge vorgefertigte Abfragevarianten im Netz.
    Hier
    http://sevenx.de/blog/php-formular-spamschutz-und-validierung-spam-emails-verhindern-auch-ohne-captcha/
    gibt es eine schön erklärte Variante einschließlich Demo und Download, die etwas anders funktioniert, aber nach meinen persönlichen Erfahrungen auch sehr wirksam ist.

    Beitrag zuletzt geändert: 5.8.2014 23:38:59 von mein-wunschname
  7. a099 schrieb:
    Ich habe seit einiger Zeit das Problem, dass meine Seite mit Anmeldungen zugespammt wird, die aber danach nicht aktiviert werden. Das verbraucht auch mein mail Kontingent. Und da meine Ahnung in PHP oder JS oder .htaccess nicht wirklich gut ist frage ih euch ob mir das irgendwer machen könnte.

    Mein Code (register.tpl.php)

    Du bist nicht der Einzige mit einem derartigen Problem.

    Du sagst, Du hättest wenig Ahnung und verlinkst eine Template-Datei. Das läßt mich vermuten (hab jetzt keine Lust, deine Domains nach Passendem zu durchsuchen), daß Du ein CMS oder Ähnliches nutzt.
    Wenn dem so ist, wäre die beste Anlaufstelle, die dazu passende Community. Für die meisten Systeme gibt es Plugins, die den Spamschutz deutlich verbessern.Spamschutz funktioniert zwar am besten, wenn man individuelle Lösungen einsetzt, aber es ist keineLösun, wenn Spam dadurch vermieden wird, daß die Website wegen Bastelfehlern offline ist. ^^

    Hier kann man dir eh nur wirklich weiterhelfen, wenn man nicht weiß, was Du auf deiner Website einsetzt. voloya hat zwar eine prinzipiell gute Lösung gepostet, aber an der Umsetzung wirst Du bei einem CMS vermutlich erst mal scheitern. Die zu lösende Rechenaufgabe sollte sich ja zufällig ergeben und dafür wirst Du mehrere Dateien modifizieren müssen.

    Eigentlich möchte ich gar nicht wissen, welches System Du einsetzt. Wenn ich sehe, daß Texte fest im Template verdrahtet sind, sträuben sich mir die Nackenhaare. :slant:


  8. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    fatfreddy schrieb:
    Das läßt mich vermuten (hab jetzt keine Lust, deine Domains nach Passendem zu durchsuchen), daß Du ein CMS oder Ähnliches nutzt.
    Wenn dem so ist, wäre die beste Anlaufstelle, die dazu passende Community.



    Es handelt sich wohl um Picturelicious. Da hat man ohnehin genug zu tun, sich mit dem Foto-Spam zu beschäftigen. Selbst wenn man Anmeldespam verhindert ist die Seite ganz schnell voll mit "netten" Fotos. Die Demo-Website des Programms liefert schon mal einen kleinen Eindruck.
  9. hier mal ein einfaches Beispiel:

    Datei: index.php
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title>CAPTCHA-Test</title>
     </head>
    <body>
    <H3>CAPTCHA-Test</H3>
    <form action="check.php" method="post">
     <img src="captcha.php" width="70" height="25" alt="" style="vertical-align: middle;">
     <input type="text" name="captcha" size="6">
     <input name="submit" type="submit" value="los">
    </form>
    </body>
    </html>


    Datei: captcha.php
    <?php
    ## CAPTCHA ##
    
    // Session starten
    session_start();
    
    // Größe des Bildes
    $size_x = 70;
    $size_y = 25;
    
    // Erzeuge eine Zufallszahl
    $zufallszahl = mt_rand("100000", "999999");
    
    // Zufallszahl der Session-Variablen übergeben
    $_SESSION["captcha_code"] = $zufallszahl;
    
    // Erstelle das Bild mit der angegebenen Größe!
    $bild = imageCreate($size_x, $size_y);
    
    // Erstelle einen weißen Hintergrund
    imageColorAllocate($bild, 255, 255, 255);
    
    // Zufallsfarbe (RGB) erstellen
    $farbe1 = mt_rand("0", "175");
    $farbe2 = mt_rand("0", "175");
    $farbe3 = mt_rand("0", "175");
    
    // Verteile die Farben
    $rahmen = imageColorAllocate($bild, 0, 0, 0); // Rahmenfarbe
    $farbe  = imageColorAllocate($bild, $farbe1, $farbe2, $farbe3); // Textfarbe
    
    // Hole die Zahlen der Punkte zum Zeichnen
    $alle_punkte = ($size_x * $size_y)/15;
    
    // Zeichne viele Punkte mit der selben Farbe des Textes
    for ($zaehler = 0; $zaehler < $alle_punkte; $zaehler++) {
    
     // Erzeuge die Zufallspositionen der Punkte
     $pos_x = mt_rand("0", $size_x);
     $pos_y = mt_rand("0", $size_y);
    
     // Zeichne die Punkte
     imageSetPixel($bild, $pos_x, $pos_y, $farbe);
    };
    
    // Zeichne den Rahmen
    imageRectangle($bild, 0, 0, $size_x-1, $size_y-1, $rahmen);
    
    // Koordinaten der Position von der Zufallszahl
    $pos_x = 8; // links
    $pos_y = 5; // oben
    
    // Zeichne die Zufallszahl
    imageString($bild, 5, $pos_x, $pos_y, $zufallszahl, $farbe);
    
    // Sende "browser header"
    header("Content-Type: image/png");
    
    // Sende das Bild zum Browser
    echo imagePNG($bild);
    
    // Lösche das Bild
    imageDestroy($bild);
    ?>


    Datei: check.php
    <?php
    // Session starten
    session_start();
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title></title>
     </head>
    <body>
    
    <?php
    // Captcha überprüfen
    if (($_SESSION["captcha_code"] !=0) AND ($_POST["captcha"] == $_SESSION["captcha_code"])) {
      echo "Richtig";
    }
    else {
     echo "Falsch";
    }
    
    // Session löschen
    unset($_SESSION['captcha_code']);
    ?>
    
     - <a href="index.php">Noch einmal!</a>
    
    </body>
    </html>


    Einfach mal testen und an Deine eigenen Bedürfnisse anpassen!
    :spammer:
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!