code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:ftxCaptcha -> test2.php
md5:d19171a84b90c3dfacbb8b9c551fa2a2
sha1:3019cbe44784281330ec5b2d6f0a8ddbd2dca0d7
Download-Link:Download
  1. <?php
  2. error_reporting( E_ALL );
  3. ini_set( 'display_errors', 1 );
  4. require_once 'ftxCaptcha.php';
  5. $captcha = new ftxCaptcha( 'de' );
  6.  
  7. /*
  8.  * Dieses ist ein "Affenformular"
  9.  * das heisst, die Daten werden durch das gleiche Skript
  10.  * verarbeitet. Dieses bietet den Vorteil, dass die eingegebenen
  11.  * Daten bei Fehleingabe (nicht jeder behrrscht das "Einmaleins" aus dem "FF")
  12.  * wieder angezeigt werden können.
  13. */
  14. $FORM=[]; # Array für die Wiederanzeiege
  15. foreach ( [ 'name', 'nachricht'] as $item  ) {
  16.         if ( isset( $_POST[ $item ] ) ) {
  17.                 $FORM[ $item ] = $_POST[ $item ];
  18.         } else {
  19.                 $FORM[ $item ] = "";
  20.         }
  21. }      
  22.  
  23. if(
  24.    isset( $_POST['ftxAnswer'] )
  25.    and isset( $_POST['ftxHash'] )
  26.    and ( $captcha -> validateAnswer( $_POST['ftxAnswer'], $_POST['ftxHash'] ) )
  27. ) {
  28.    /* Die Anzeige bei gelöstem Captcha habe ich für das Beispiel in der Funktion showMessage (siehe unten) gekapselt */
  29.    showMessage( $FORM  );  
  30. } else {
  31.         /* Die Anzeige bei NICHT gelöstem Captcha (siehe unten) */
  32.    showForm( $FORM, $captcha  );
  33. }
  34.  
  35. ##################################################
  36. function showMessage( $FORM  ) {
  37. ?><!DOCTYPE HTML>
  38. <html>
  39. <head lang='de'>
  40. <title>Test</title>
  41. <style>
  42.  
  43. body, html {
  44.         margin: 0;
  45.         padding:0
  46. }
  47.  
  48. h1 {
  49.         background-color: #dddddd;
  50.         margin:0 0 .5rem 0;
  51.         padding: .5rem 1rem .5rem 1rem;
  52. }
  53.  
  54. main {
  55.         padding-left: 1rem;    
  56.         padding-right: 1rem;
  57. }
  58.  
  59. label.ftxCaptcha {
  60.         display:block;
  61. }
  62.  
  63. label.ftxCaptcha input {
  64.         margin-left:1rem;
  65.         width:3rem;
  66. }
  67.  
  68. label.ftxCaptcha testarea {
  69.         margin-left:1rem;
  70.         width:30rem;
  71.         height:5rem;
  72. }
  73.  
  74. dt {
  75.         font-weight:bold;
  76.         margin-top: .5rem;
  77.         margin-bottom: .5rem;
  78. }
  79.  
  80. dd {
  81.         border: 2px solid #dddddd;
  82.         padding:.25rem;
  83. }
  84.  
  85. </style>
  86. </head>
  87. <body>
  88.         <h1>Das Captcha wurde gelöst. Ihre Daten für Sie zur Ansicht:</h1>
  89.         <main>
  90.                 <dl>
  91.                         <dt>Ihr Name:</dt>
  92.                         <dd><?=htmlspecialchars( trim( $FORM[ 'name' ] ), ENT_NOQUOTES | ENT_HTML5 ); ?></dd>
  93.                         <dt>Ihre Nachricht:</dt>
  94.                         <dd><?=str_replace("\n", "<br>", htmlspecialchars( trim( $FORM[ 'nachricht' ] ), ENT_NOQUOTES | ENT_HTML5 ) ); ?></dd>
  95.                 </dl>
  96.                 <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>
  97.                 <ul>
  98.                         <li><a href="test2.php">Noch ein Versuch?</a></li>
  99.                         <li><a href="https://code.fastix.org/Projekte/PHP%3AftxCaptcha/">Quelltexte</a></li>
  100.                 </ul>
  101.         </main>
  102. </body>
  103. </html>
  104. <?php
  105. # Ende:  function showMessage( $FORM  )
  106. }      
  107.  
  108. ##################################################
  109.  
  110. function showForm( $FORM, $captcha  ) {
  111. ?><!DOCTYPE HTML>
  112. <html>
  113. <head lang='de'>
  114. <title>Test</title>
  115. <style>
  116.  
  117. body, html {
  118.         margin: 0;
  119.         padding:0
  120. }
  121.  
  122. h1 {
  123.         background-color: #dddddd;
  124.         margin:0 0 .5rem 0;
  125.         padding: .5rem 1rem .5rem 1rem;
  126. }
  127.  
  128. main {
  129.         padding-left: 1rem;    
  130. }
  131.  
  132. label.ftxCaptcha {
  133.         display:block;
  134. }
  135.  
  136. label.ftxCaptcha input {
  137.         margin-left:1rem;
  138.         width:3rem;
  139. }
  140.  
  141. label.ftxCaptcha input[name=name] {
  142.         margin-left:1rem;
  143.         width:20rem;
  144. }
  145.  
  146. label.ftxCaptcha textarea {
  147.         width:30rem;
  148.         height:5rem;
  149. }
  150.  
  151. </style>
  152. </head>
  153. <body>
  154.         <h1>Test mit „Kontaktformular“</h1>
  155.         <main>
  156.                 <h2>Datenschutz:</h2>
  157.                 <p><strong>Dieses ist ein Testformular!</strong></p>
  158.                 <p>Die hier eingegebenen Daten werden nur Ihnen wieder angezeigt, aber sonst weder verarbeitet, noch dauerhaft gespeichert, noch an irgend wem übermittelt.</p>
  159.                 <h2>In einfacher Sprache:</h2>
  160.                 <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>
  161.                 <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>
  162.                 <h2>Das Formular</h2>
  163.                 <form  class='ftxCaptcha' method="POST">
  164.                         <label class='ftxCaptcha'>Ihr Name<input name="name" value="<?=htmlspecialchars( trim( $FORM[ 'name' ] ), ENT_COMPAT | ENT_HTML5 ); ?>"></label>
  165.                         <label class='ftxCaptcha'>Ihre Nachricht an sich selbst:<br><textarea name="nachricht"><?=htmlspecialchars( trim( $FORM[ 'nachricht' ] ), ENT_NOQUOTES | ENT_HTML5 ); ?></textarea></label>
  166.                         <?=$captcha -> getForm(); ?>
  167.                         <button>absenden</button>
  168.                 </form>
  169.                 <ul>
  170.                         <li><a href="https://code.fastix.org/Projekte/PHP%3AftxCaptcha/">Quelltexte</a></li>
  171.                 </u>
  172.         </main>
  173. </body>
  174. </html>
  175. <?php
  176. # Ende:  function showForm( $FORM, $captcha  )
  177. }
  178. ##################################################
  179. ?>
  180.