Markus Thomas: zu doof für "hallo welt"???????

Beitrag lesen

Hallo Alex (oder Andreas)!

Ändere Dein Script so ab:

#!/usr/bin/perl

use CGI qw(param);

print "Content-type: text/html\n\n" ;

$produkt = param("Produkt");
$preis = param("Preis");

print <<EOF ;

<head><title>CGI Results</title></head>

<form name="form1" method="post" action="/cgi-bin/mailto.cgi">
 <input type="hidden" name="Produkt" value="$produkt">
 <input type="hidden" name="Preis" value="$preis">
  <font color="#FF0000" face="Arial, Helvetica, sans-serif" size="4">Bestellformular</font>
  <p> Name:
    <input type="text" name="Name">
    Vorname:
    <input type="text" name="Vorname">
  </p>
  <p>
    <input type="submit" name="Abschicken" value="weiter">
    <input type="reset" name="Abschicken2" value="Zurücksetzen">
  </p>
</form>
<p> </p>
<h1 align="center"> </h1>
EOF

exit ;

------------------------------------

-> value="'.param("Produkt").'">

Das ist in diesem Kontext falsch. Der Operator . dient dazu, Zeichenketten zu verknüpfen. Du muss ihn also benutzen, wenn du eine print-Anweisung hast, da Du dort den Textstring mit der Variablen verknüpfst.
Also: print 'Einiges an Text'.$variable.'noch mehr Text';
Statt ' kannst du auch " verwenden, aber dann am Anfang und Ende gleich.

Wenn Du jedoch print <<EOF verwendest, kannst Du dort die Variablen direkt verwenden, s.o. .

Gruss

Markus