An input Feld Wert übergeben

berlinkw

Mitglied
moin moin
Erst mal kurz das Script.
PHP:
error_reporting(E_ALL);
if(empty($_POST['weiter']) && empty($_POST['speichern']))
{
  echo 'erster aufruf';
  echo '<form action="test.php" method="post">';
  echo '<input type="text" name="name" value="'.$_POST['name'].'"><br>';
  echo '<input type="submit" name="weiter" value="weiter">';
  echo '</form>';
}

if(isset($_POST['weiter']))
{
  echo 'zweiter aufruf';
  echo '<form action="test.php" method="post">';
  echo '<input type="text" name="name" value="'.$_POST['name'].'"><br>';
  echo '<input type="submit" name="zurück" value="ZURÜCK">';
  echo '<input type="submit" name="speichern" value="SPEICHERN">';
  echo '</form>';
}

if(isset($_POST['speichern']))
{
  echo 'dritter aufruf';
}

Nun meine Frage.
Beim ersten Aufruf des Formulars kommt es zu einer Fehlermeldung.
„Undefined index: name in“
Im Grunde ist mir das klar weil ja noch keine Wert vorhanden ist zu diesem Zeitpunkt
Wie kann ich das umgehen?
Muss ich jedes Mal per z.b. if isset prüfen ob die Variable name vorhanden ist?

gruß berlinkw
 
Meinst du das in etwa so?

if(empty($_POST['name']))
{
$name = "";
}
else
{
$name = $_POST['name'];
}

Bei 30 Feldern ist das einiges an schreibarbeit :)
Hatte gehoft das es eine einfachere Variante gibt.

gruß berlinkw
 
du kannste es natürlich auch immer wenn du diese Variable im Code brauchst Abfragen, ich weiss halt nicht wie oft du diese brauchst, ev. ises dann weniger Schreibarbeit;)
 
Nun meine Frage.
Beim ersten Aufruf des Formulars kommt es zu einer Fehlermeldung.
„Undefined index: name in“
Im Grunde ist mir das klar weil ja noch keine Wert vorhanden ist zu diesem Zeitpunkt
Wie kann ich das umgehen?
Muss ich jedes Mal per z.b. if isset prüfen ob die Variable name vorhanden ist?

gruß berlinkw

Theoretisch ja, Könntest du auch so machen ohne Notice:
PHP:
  echo '<input type="text" name="name" value="'.(!isset($_POST['name'])?'default':$_POST['name']).'"><br>';

Wenn das wirklich die einzigen Error`s sind könntest du auch einfach das Error Reporting ausschalten. Weil schlimm sind diese Notices nicht, solang du die Texte nur in Input-Boxen schreibst. Default kannst du auch leer lassen Oder "name hier eintragen" reinschreiben, und sobald man es anklickt es verschwinden lassen
 
Zuletzt bearbeitet:
@engelb
Super
So find ich das am besten.
Und ja es ist die einziege Fehlermeldung.
Die Weitere Verarbeitung der Daten kommt ja erst beim dritten Aufruf und da spielt es keine Rolle ob da was drin steht oder nicht.
Besten Dank noch mal.

Gruß berlinkw
 
Zurück