<?php
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
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  );
}
exit;

##################################################
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>
			<dd><?=htmlspecialchars( trim( $FORM[ 'name' ] ), ENT_NOQUOTES | ENT_HTML5 ); ?></dd>
			<dt>Ihre Nachricht:</dt>
			<dd><?=str_replace("\n", "<br>", htmlspecialchars( trim( $FORM[ 'nachricht' ] ), ENT_NOQUOTES | ENT_HTML5 ) ); ?></dd>
		</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  )
}
##################################################
?>
