Sicherheits Logo

Sicherheitscode eingeben:  Captcha
Datenschutz  Einwilligung DSGVO
Download

index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Captcha Logo</TITLE>
 
<META content="MSHTML 5.50.4134.600" name=GENERATOR></HEAD>
<body bgcolor=#000000 text=#000000>
 
<TR>
          <TD colSpan=3>
            <P align=center><FONT  color=#ff0000
            face="Arial Rounded MT Bold" size=6>Sicherheits Logo<BR>
       </FONT></P></TD></TR>
 
<form enctype="multipart/form-data" action="mail.php" method="post">
<!--<input type="hidden" name="recipient" value="aaa@bbb.cc"> <!--Empfänger-->
  <!--<input type="hidden" name="subject" value="Feedback"> usw... -->
 
<table cellSpacing=10 cellPadding=10 align="center" width="80%" bgColor=#FEEAA9 border=0>
<tr><td><FONT
      face=Verdana,Helvetica,Arial size=2>Sicherheitscode eingeben:&nbsp;</FONT>
    <img style="margin: 0px 5px -5px 0px;" src="captcha.php?RELOAD=" 
alt="Captcha" title="Klicken, um das Captcha neu zu laden"
onclick="this.src+=1;document.getElementById('captcha_code').value='';"
width=85 height=23 /><input name="code" size="5" value="" type="text"></font></td></tr> <tr> <td> <FONT face=Verdana,Helvetica,Arial size=2>Datenschutz&nbsp;</FONT> <input type="checkbox" name="Datenschutz" value="Ja"
onmousedown="releasing(this)" /><FONT face=Verdana,Helvetica,Arial size=2> Einwilligung DSGVO</FONT></td></TR> <tr> <td> <input type="submit" id="status" name="status" value="Feedback abschicken" disabled /> </td></tr> </table> </form> </body> <SCRIPT LANGUAGE="JavaScript"> function releasing(chk) { var btn = document.getElementById('status'); if (chk.checked){ btn.disabled = true; } else { btn.disabled =false; } } </script> </html>
 

captcha.php
<?php
//  SESSION-ERSATZ:
// IP-Adresse und Temp-Datei ermitteln.
$ip = strtr(getenv("REMOTE_ADDR"),":","_"); // Ersetzt : durch _
$filename="tmp/".$ip.".inc";
 
// Zeichen ohne Verwechselungsgefahr.
$zeichen = "A B C D E F G H J K L M N Q R T U V W X Y 2 3 4 5 8";
 
// erstellen eines Arrays
$arrzeichen = explode(" ", $zeichen);
 
// mischen des Arrays
shuffle ( $arrzeichen );
 
// die ersten 6 Zeichen
$text = array_slice($arrzeichen, 0, 5);
 
// ZufallsCoce in einer Datei speichern. (SESSION-ERSATZ)
$tmp = "<?php
\$text=\"$text[0]$text[1]$text[2]$text[3]$text[4]\";
?> "; // Leerzeichen ist wichtig!
$datei=fopen("$filename","w-");
fwrite($datei,$tmp);
fclose($datei);
 
// Header: Mitteilen, dass es sich um ein Bild handelt und
// dass dieses nicht im Cache gespeichert werden soll.
header('Expires: Mon, 26 Jul 1990 05:00:00 GMT');
header("Last-Modified: ".date("D, d M Y H:i:s")." GMT");
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Content-type: image/png');
 
$bild = ImageCreateFromPNG ("captcha.png");
 
// Farben definieren
$farbe_w = ImageColorAllocate ($bild, 255, 255, 255);
$farbe_b = ImageColorAllocate ($bild, 0, 0, 0);
 
// die verwendete Schrift-Datei arial.ttf muss auf dem Server
 
// Schriftgröße, Winkel, X-Pos, Y-Pos, Farbe, Schrift, Inhalt
ImageTTFText ($bild, 13, 20, 8,  18, $farbe_b, "arial.ttf", $text[0]);
ImageTTFText ($bild, 14, 0, 23, 22, $farbe_b, "arial.ttf", $text[1]);
ImageTTFText ($bild, 12, -10, 39, 15, $farbe_b, "arial.ttf", $text[2]);
ImageTTFText ($bild, 13, 10, 57, 17, $farbe_b, "arial.ttf", $text[3]);
ImageTTFText ($bild, 11, -20, 69, 20, $farbe_b, "arial.ttf", $text[4]);
// Ausgabe im Format PNG
ImagePng ($bild);
 
// Speicher wieder freigeben
ImageDestroy ($bild);
?>
 

mail.php
<?PHP
 
 
//***********************************************************//
function send_mail()
{
   //     global $form
       // Hier die E-Mail verarbeitung !!!
      // mail(...);
         return true;
}
 
//***********************************************************//
function captcha()
{
      global $form;
      // IP-Adresse und Temp-Datei ermitteln.
      $ip = strtr(getenv("REMOTE_ADDR"),":","_"); // Ersetzt : durch _
      $filename="tmp/".$ip.".inc"; 
// Unterordner "tmp" im gleichen Verzeichnis. if (file_exists("$filename")){ include "$filename"; $codeX = $text; } if ($codeX == ""){ // Fehlerbehandlung Session-Datei. $form['code']= ""; } if ($codeX != $form['code']){ return false; } else { $form['code']= ""; // Code löschen. unlink($filename); // Session-datei löschen. return true; } } //*******************************************************************// function decode_vars() { if (isset($_REQUEST)) $request = '_' . getenv('REQUEST_METHOD'); else $request = 'HTTP_' . getenv('REQUEST_METHOD') . '_VARS'; global $$request; if (count($$request) > 0) { while (list($key, $val) = each($$request)) { if (is_array($val)) $val = implode(', ',$val); $output[$key] = stripslashes($val); } return $output; } else return array(); } //****************************************************************// function output_html($body){ print $body; // Hier wird die html Seite entworfen. } // ************************** Anfang des PHP Scriptes !!! ***********// $form = decode_vars(); // $_POST['...']; if (count($form) > 0) { if (captcha()) { // Sicherheitscode abfragen. if (send_mail()) { // Mailfunktion wird aufgerufen ! print " Ihe E-Mail wurde verschickt! (Nur Beispiel)<br />\n"; // Hier eine Seite "E-Mail abgeschickt" aufrufen. } }else{ $output .= "<div class=\"title\">Folgende Fehler wurden gefunden:</div> <div class=\"crit\">Der Sicherheitscode ist falsch!</div> <div class=\"returnlink\">Bitte benutzen Sie den <a href=\"javascript: history.back();\">Zur&uuml;ck</a> Knopf,
um die Fehler zu korrigieren."
; output_html($output); } } ?>