• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

perl formularfelder nicht ausgeben

antiheld2000

New member
1. ich kann überhaupt kein perl.
2. deswegen ich am verzweifeln.
also: habe eine seite mit formular feldern. die werden per perl & sendmail verschickt. dafür gibt es ein bestehendes script von nem kollegen, den es quasi nicht mehr gibt. deswegen kenn ich keinen der mir helfen kann.
kann mir jemand nach nem kurzen blick auf die angehängte datei sagen, wie ich die ausgabe leer gelassener felder unterdrücke??

bitte!!!
gruss antiheld
 

Anhänge

  • aktion.zip
    870 Bytes · Aufrufe: 4
also ich kenn mich mit perl ned so aus, aber probier doch mal dies:
Code:
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
 {
  ($name, $value) = split(/=/, $Feld);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s/<!--(.|\n)*-->//g;
[b]  if ($value != "")
  {[/b]
    $Formular[$i] = $name;
    $i = $i + 1;
    $Formular[$i] = $value;
    $i = $i + 1;
[b]  }[/b]
 }

falls der Vergleich mit einem Leerstring nicht klappt, dann kannst Du ja mal ein strlen ($value) != 0 oder so probieren.. sollte das gleiche bewirken
 
schon mal danke, geht nich, aber muss das ganze nicht auch eher an dieser stelle erfolgen, da dort ja die email zusammen gesetzt wird:
for($i=0;$i<=$max-2;$i=$i+2)
{
print MAIL "----------------------------------------\n";
print MAIL "$Formular[$i]:\n";
print MAIL "$Formular[$i+1]\n";
print MAIL "----------------------------------------\n";
print MAIL "\n";
}
close(MAIL);
 
also es gibt zwei Stellen, an denen das möglich ist:
1. dort wo das Array zusammengebaut wird
2. dort wo die Ausgabe des Arrays gemacht wird

mein Versuch setzte bei 1 ein, denn wozu Elemente ins Array nehmen, wenn sie nachher nicht ausgegeben werden sollen??

ahhh grad mal in ein Perl Buch geschaut... das heißt "ne"!!! also
if ($value ne "") .....

hmm komische Sache das... ich weiß schon, warum ich Perl nicht mag ;)
 
TREFFER!!!!

danke! das war´s. ich weiss auch warum ich perl nicht mag: hab null ahnung davon und da ich immer nur bereits fertige scripte eines ehemaligen kollegen sezieren darf, komm ich da auch nie so richtig hinter.... egal...

danke
antiheld
 
ähm... nochmal was dazu

weisste zufälligerweise auch, wenn ich ein feld habe, das einen spezifischen namen hat, wie ich das da raus lassen kann?

hintergrund: das form wird mit nem image submitted, und dann haut perl in die mail das rein:

Absenden.x:
23

Absenden.y:
12

das würd ich auch gerne kicken, weiss aber natürlich nich wie, also, wenn´s dir, oder jemand anderem aus der pistole geschossen kommt, nurher damit ;)
 
also spontan würd ich sagen:
if (($name ne "Absenden.x") && ($name ne "Absenden.y") && ($value ne ""))
 
Zurück
Oben