• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Professionelles Affenformular?

Zupi

Mitglied
Hallo.

Seite: PHP-Kurs.com - PHP programmieren lernen

Auf dieser Seite wird ja genau erklärt, wie man ein Affenformular erstellt. Ich habe mir das angeschaut und auch nachgebaut (allerdings mit $_POST). Wenn ich die Daten übergebe, sieht das ca. so aus:

PHP:
$username = $_POST["username"];
$name= $_POST["name"];
$alter= $_POST["alter"];
$strasse= $_POST["strasse"];

Ich habe bei meinem Formular aber insgesamt 37 Felder. Die alle einzeln zu übergeben, ist Arbeit und schwachsinnig. Ein erfahrener Programmierer hat mir mal gesagt, dass ich alle in ein Array packen soll, und dann auf Vollständigkeit überprüfen soll. Wenn sie nicht vollständig sind, muss ich diese ja wieder ausgeben (teilweise ja auch mit Benutzerangaben).

Wie mache ich das (Speichern in ein Array und alles Überprüfen, ggf. alle wiederausgeben und die Angaben vom Benutzer behalten?

Danke
 
Da habe ich mich total verlesen, deswegen habe ich meinen Beitrag gelöscht!
 
Zuletzt bearbeitet:
Ein erfahrener Programmierer hat mir mal gesagt, dass ich alle in ein Array packen soll
Dann war das auch kein erfahrener Programmierer. Du hast schon das Array $_POST, also warum in ein anderes Array umschreiben?
PHP:
  $completed = true;

  array_walk($_POST, create_function('&$val', '$val = trim($val);'));

  foreach ($_POST as $value)  
  {
      if (empty($value))
      {
         $completed = false;
         break;
      }
  }

if (! $completed)
  echo "Nicht alle Felder ausgefüllt";
 
So ein Filter durchlauf lässt sich relative einfach über eine Rekursive Funktion lösen.

Hier ein Beispiel zum filtern je nach den nach was du alles filtern willst:
PHP:
<?
function filter ($request)                                    // kleine Automatische Filter Funktion
{
  foreach($request as $key => $value)
  {
    if (is_array($request[$key]))
    {
      filter($request[$key]);                                 // Rekusiver Aufruf
    }else{
              // Hier kannst du bestimmen nach was gefiltert werden soll eben alles was du möchtest 
           $inhalt[$key] = htmlentities($value);     
         }
  }
  if (isset($inhalt))                                         // Wenn Werte vorhanden dann zurückgeben
  {
    return $inhalt;
  }else{ return null; }
}

$data = filter($_POST);                           // Aufruf der Filter Funktion

// $data enthält nun alle $_POST Inhalte nach der Filterung

Mfg Splasch
 
Achja... Natürlich. Wurde auch nicht gefragt. htmlentities ist einer von tausenden möglichen "Filtern". Mal ganz davon abgesehen, dass htmlentities nichts nützt, wenn man weiß, was man tut und sich auf htmlspecialchars stützt.
 
Zurück
Oben