<?php
require_once 'ftxCaptcha.php';
$captcha = new ftxCaptcha( 'de' );
/*
* Dieses ist ein "Affenformular"
* das heisst, die Daten werden durch das gleiche Skript
* verarbeitet. Dieses bietet den Vorteil, dass die eingegebenen
* Daten bei Fehleingabe (nicht jeder behrrscht das "Einmaleins" aus dem "FF")
* wieder angezeigt werden können.
*/
$FORM=[]; # Array für die Wiederanzeiege
foreach ( [ 'name', 'nachricht'] as $item ) {
if ( isset( $_POST[ $item ] ) ) {
$FORM[ $item ] = $_POST[ $item ];
} else {
$FORM[ $item ] = "";
}
}
if(
isset( $_POST['ftxAnswer'] )
and
isset( $_POST['ftxHash'] )
and ( $captcha -> validateAnswer( $_POST['ftxAnswer'], $_POST['ftxHash'] ) )
) {
/* Die Anzeige bei gelöstem Captcha habe ich für das Beispiel in der Funktion showMessage (siehe unten) gekapselt */
showMessage( $FORM );
} else {
/* Die Anzeige bei NICHT gelöstem Captcha (siehe unten) */
showForm( $FORM, $captcha );
}
##################################################
function showMessage( $FORM ) {
?><!DOCTYPE HTML>
<html>
<head lang='de'>
<title>Test</title>
<style>
body, html {
margin: 0;
padding:0
}
h1 {
background-color: #dddddd;
margin:0 0 .5rem 0;
padding: .5rem 1rem .5rem 1rem;
}
main {
padding-left: 1rem;
padding-right: 1rem;
}
label.ftxCaptcha {
display:block;
}
label.ftxCaptcha input {
margin-left:1rem;
width:3rem;
}
label.ftxCaptcha testarea {
margin-left:1rem;
width:30rem;
height:5rem;
}
dt {
font-weight:bold;
margin-top: .5rem;
margin-bottom: .5rem;
}
dd {
border: 2px solid #dddddd;
padding:.25rem;
}
</style>
</head>
<body>
<h1>Das Captcha wurde gelöst. Ihre Daten für Sie zur Ansicht:</h1>
<main>
<dl>
<dt>Ihr Name:</dt>
<dt>Ihre Nachricht:</dt>
</dl>
<p>Normalerweise würden die Daten jetzt verarbeitet und mit <code>header('Location: danke.html')</code>zu einer „Danke-Seite“ weitergeleitet um eine Wiederholung der Eingaben mit [F5] zu verhindern.</p>
<ul>
<li><a href="test2.php">Noch ein Versuch?</a></li>
<li><a href="https://code.fastix.org/Projekte/PHP%3AftxCaptcha/">Quelltexte</a></li>
</ul>
</main>
</body>
</html>
<?php
# Ende: function showMessage( $FORM )
}
##################################################
function showForm( $FORM, $captcha ) {
?><!DOCTYPE HTML>
<html>
<head lang='de'>
<title>Test</title>
<style>
body, html {
margin: 0;
padding:0
}
h1 {
background-color: #dddddd;
margin:0 0 .5rem 0;
padding: .5rem 1rem .5rem 1rem;
}
main {
padding-left: 1rem;
}
label.ftxCaptcha {
display:block;
}
label.ftxCaptcha input {
margin-left:1rem;
width:3rem;
}
label.ftxCaptcha input[name=name] {
margin-left:1rem;
width:20rem;
}
label.ftxCaptcha textarea {
width:30rem;
height:5rem;
}
</style>
</head>
<body>
<h1>Test mit „Kontaktformular“</h1>
<main>
<h2>Datenschutz:</h2>
<p><strong>Dieses ist ein Testformular!</strong></p>
<p>Die hier eingegebenen Daten werden nur Ihnen wieder angezeigt, aber sonst weder verarbeitet, noch dauerhaft gespeichert, noch an irgend wem übermittelt.</p>
<h2>In einfacher Sprache:</h2>
<p>Nur Sie können diese Daten sehen, die „Verarbeitung“ besteht im Aufbereiten für diesen Zweck und dem endgültigen Vergessen der Daten.</p>
<p>Rückfragen sind zwecklos. <a href="https://joerg-reinholz.blogspot.com/2019/11/pascal-goffart-und-pjotr-zientalphilipp.html">Auskunftsersuchen nach der DSGVO betrachte ich demnach als „von Anfang rechtsmissbräuchlich“</a>.</p>
<h2>Das Formular</h2>
<form class='ftxCaptcha' method="POST">
<label class='ftxCaptcha'>Ihr Name<input name="name" value="
<?=htmlspecialchars( trim( $FORM[ 'name' ] ), ENT_COMPAT | ENT_HTML5
); ?>"></label>
<label class='ftxCaptcha'>Ihre Nachricht an sich selbst:<br><textarea name="nachricht">
<?=htmlspecialchars( trim( $FORM[ 'nachricht' ] ), ENT_NOQUOTES | ENT_HTML5
); ?></textarea></label>
<?=$captcha -> getForm(); ?>
<button>absenden</button>
</form>
<ul>
<li><a href="https://code.fastix.org/Projekte/PHP%3AftxCaptcha/">Quelltexte</a></li>
</u>
</main>
</body>
</html>
<?php
# Ende: function showForm( $FORM, $captcha )
}
##################################################
?>