Diskussion:Affenformular

message: Bei mehreren automatisierten Botläufen wurde der folgende Weblink als nicht verfügbar erkannt. Bitte überprüfe, ob der Link tatsächlich down ist, und korrigiere oder entferne ihn in diesem Fall!
* http://perlwelt.horus.at/Beispiele/CGI/AffenFormular/
** In Affenformular on Sat Jan 14 12:30:55 2006, 403 Forbidden
** In Affenformular on Tue Jan 17 12:49:20 2006, 403 Forbidden
** In Affenformular on Sat Jan 21 17:48:05 2006, 403 Forbidden
--Zwobot 17:48, 21. Jan 2006 (CET)
replies: text: Habe den Link rausgenommen, aber leider noch kein anderes brauchbares Beispiel in Perl gefunden. --ThomasMielke Talk 19:27, 21. Jan 2006 (CET)
replies: text: Habe hier ein anderes Beispiel eingestellt: http://wiki.perl-community.de/cgi-bin/foswiki/view/Wissensbasis/AffenFormular c a p f a n < a t > g m x . d e (nicht signierter Beitrag von 79.206.121.112 (Diskussion | Beiträge) 16:03, 27. Sep. 2009 (CEST)
thread_title:  Toter Weblink 

message: Aus dem Einleitungsabschnitt wird mir nicht deutlich, wozu das eigentlich gut sein soll. --mst 15:29, 15. Sep 2006 (CEST)
replies: text: Habe die Einleitung etwas überarbeitet. So besser? --ThomasMielke Talk 15:55, 15. Sep 2006 (CEST)
replies: text: ja, der Gültigkeitstest ist ein nicht unwesentliches Detail :-) Gruß, mst 16:06, 15. Sep 2006 (CEST)
replies: text: Da hast Du wohl recht. Man sollte sich seine Artikel ab und zu ruhig noch einmal mit etwas Abstand durchlesen und versuchen, dabei die Betriebsblindheit abzuschalten ;-) --ThomasMielke Talk 16:15, 15. Sep 2006 (CEST)
replies: text: Habe noch einen Satz hinzugefügt ("Vorteil:..."). Stefan@freimark.de 12:04, 6. Dez. 2006 (CET)
thread_title:  wozu? 

message: Was hat das mit einem Algorithmus zu tun? Sieht eher nach einer Art Design-Pattern aus. --Chiccodoro 15:56, 31. Mär. 2008 (CEST)
thread_title:  Kategorie Algorithmus? 

message: Das sehe ich ähnlich wie mein Vorredner!
Ich tendiere als Basiscode eher zu:
<?php
## Datenübernahme
if(!isset ($_POST['textfeld']) or !is_string($_POST['textfeld')) ## es könnte unerlaubterweise auch ein Array sein
{
    $_POST['textfeld'] =;
}
## hier ggf. Datenprüfung einfügen
## ...
## und Fehlerwerte setzen
## Datenausgabe per HTML vorbereiten
$_htmlout['textfeld'] = htmlspecialchars($_POST['textfeld']);
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
    <input type="text" name="textfeld" value="<?php echo $_htmlout['textfeld']; ?>">
    <input type="submit" name="speichern" value="eintragen">
</form>
Der nimmt nämlich auch auf den Erst-Request, der üblicherweise per GET ohne Parmeter kommt, Rücksicht.
Der im aktuellen Beispiel veröffentlichten Code kann hingengen NICHT per GET als Affenformular funktionieren.
Grüße
Tom vom Berg (nicht signierter Beitrag von Bitman (Diskussion | Beiträge) 18:25, 7. Okt. 2009 (CEST)
thread_title:  falsche Parameterbehandlung 

message: Habe mal die wahrscheinliche ethymologische Herkunft des Artikelnamens als Link angefügt. mfg Captainsurak 00:01, 4. Okt. 2009 (CEST)
thread_title:  Infinite Monkey Theorem 

message: Das aktuelle Beispiel ist immer noch nicht korrekt. Als Optionen nach der Validierung stehen Weiterleitung oder Ausgabe der Fehler als Liste zur Verfügung. Aber: Die Liste würde einen kompletten Dokumentkopf vor der Ausgabe benötigen, die Weiterleitung dagegen darf keinen Dokumentkopf (genauer: keinerlei Ausgabe) vor dem Aufruf gesetzt sehen. Ausgabe des Headers vor der Liste geht auch nicht, weil dann im Initfall der Header vor dem Form fehlt oder im Refill-Fall doppelt vorkommt.
Fazit:
<?php
// Eingabeprüfung - Verarbeitung nur bei abgesendetem Formuler starten
if (!empty($_POST)) {
 
    $fehler = array();
 
    // Inhaltsprüfungen
    
    if(empty($_POST['textfeld'])) {
        $fehler['textfeld'] = 'Textfeld darf nicht leer sein';
    }
    // weitere Prüfungen hier einfügen
 
 
    if (empty($fehler)) {
        // Verarbeitung war erfolgreich
        // Weiterleiten beispielsweise zu einer Dankesseite
        header("Location: http://example.com/danke.php");
        exit;
    }
}
?>
<html>
  <head>
    <title>Affenformular</title>
  </head>
  <body>
    <?php
    if (! empty($fehler)) {
    
        // Ausgabe der gesammelten Fehlermeldungen
        
        echo "\n";
        foreach ($fehler as $feldname => $meldung) {
            printf("%s\n", htmlspecialchars($meldung));
        }
        echo "\n";
    }
    ?>
    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
        <input type="text" name="textfeld"
            value="<?php echo isset($_POST['textfeld']) ? htmlspecialchars($_POST['textfeld']) : ; ?>" />
        <input type="submit" name="submit" value="Absenden" />
    </form>
  </body>
</html>
wäre mein Vorschlag --nik --85.178.224.204 22:13, 28. Apr. 2010 (CEST)
replies: text: das mag ja (bis auf den fehlenden Doctype) richtig sein - aber das führt imho zu weit, und im Artikel steht ja in dem Satz vor dem Beispiel auch, dass das nur die notwendigen Codeschnipsel sind - davon dass das eine vollständige Seite ist steht da nichts. --Tobiask 17:05, 30. Apr. 2010 (CEST)
thread_title:  PHP-Code Beispiel 2