Christoph Schnauß: unerwartetes Leerzeichen

Beitrag lesen

hallo Forum ;-)

ich habe ein unerwartetes Problem mit einem kleinen Perl-Script, das auf Formulareingaben reagiert. Es soll auf die bekannte Art mit if-else prüfen, ob einige Formularfelder ausgefüllt sind, bei korrekter Eingabe alles in einer Datei speichern und bei leer gelassenen Formularfeldern eine Fehlermeldung produzieren, an der das Eingabeformular nochmals unten dranhängt  -  also eigentlich etwas sehr Simples. Mein Script tut das auch alles ganz brav.

Wenn jetzt jemand aber seinen Fehler wiederholt, also bei dem vom Script generierten Formular wieder ein eigentlich gefordertes Eingabenfeld freiläßt, wird das nicht als Fehler erkannt, weil das Script aus mir unverständlichen Gründen sämtliche Eingabenfelder mit einem unsichtbaren Leerzeichen vorbelegt.

Die entsprechenden Codezeilen sehen so aus:
im Eingabeformular (HTML) steht
  <td width="15%>  <b>Name</b></td>
  <td><input type="text" name="name" size="50"></td>
  </tr><tr>
  <td>  Mail:</td>
  <td><input type="text" name="mail" size="50"></td>
  </tr>
und mein Script fragt:
  if (!$cgi->param('name')) {
  print <<ENDE;
  <tr><td><h3>Fehler: Es wurde kein Absendername angegeben</h3>
  Anonyme Eintragungen sind nicht zulässig  ;-)</td>
  </tr></table>
  <form method="post" action="$cgi_url">
  <table width="95%" style="position: absolute; top: 130px; left: 20px;"><tr>
  <td colspan="2"><hr /></td></tr>
  ENDE
   print $cgi->Tr($cgi->td({-width =>'15%',$cgi->b('Name')),
                  $cgi->td({-width =>'85%'},"<input type="text" name="name" size="50" value="",
                  $cgi->param('name'),"">",
                  )),
usw.

Es hängt irgendwo an der Stelle mit der Wertübergabe:
  value="",$cgi->param('name'),""
Das brauche ich aber, falls der Benutzer alles korrekt gemacht hat (es sind mehrere if-Abfragen, die ich hier jetzt nicht alle aufgeschrieben habe, und es könnte ja beispielsweise eine Namensangabe gemacht worden sein, aber was anderes falsch).

Weiß jemand eine Lösung?

Grüße aus Berlin

Christoph S.