Formulardaten aus Datenfeld an CGI script übergeben
Jürgen
Hi,
ich habe das Problem schon seit Gestern komme leider nicht weiter. Ich habe Gestern gepostet und gehofft das sich jemand einem unwissenden erbarmt es wurde mir auch teilweise super geholfen nur die Übergabe eines Variablen Text (Dateifeld E-Mail Adresse) klappt noch nicht. Weiss nicht entweder ist die Frage zu lächerlich und es wurde deshalb gelöscht oder ich bin zu dämlich und finde das Posting nicht mehr jedenfalls ist mein Posting heute weg keine Ahnung warum.
Deshalb hier noch mal mein Problem:
Ich möchte eine E-mail Adresse die zuvor in einem Formular auf meiner Homepage vom Besucher eingegeben wurde und in einem Java Script geprüft wurde an ein cgi Script (Sendmail)übergeben (dadurch Absender erkannt).
Hier ein Auszug aus dem CGI script:
#!/usr/bin/perl
$Sendmail_Prog = "/usr/sbin/sendmail";
use CGI;
anwenden:
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empfängeradresse
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$fromaddress = $query->param('fromaddress'); # ---> E-Mail-Subject
........
open(MAIL,"$Sendmail_Prog -t") print "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "From: $fromaddress\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
Hier ein Auszug aus dem Java script:
/style>
<link rel="stylesheet" href="css/main.css">
<script language="JavaScript">
function test()
{
var fromaddress = document.forms[0].Email_from.value;
var abc = document.forms[0].Name.value;
if (abc == "")
{
alert("\nPlease enter your name.");
document.forms[0].Name.focus();
return false;
}
Ich blick es einfach nicht wie ich eine Variable direkt an ein script übergebe verflixt.
Vielen Dank Jürgen
Hallo,
$fromaddress = $query->param('fromaddress'); # ---> E-Mail-Subject
....
»» var fromaddress = document.forms[0].Email_from.value;
»» var abc = document.forms[0].Name.value;
»» if (abc == "")
{
alert("\nPlease enter your name.");
document.forms[0].Name.focus();
return false;
}
Ich hab mal beide relevanten Code-segmente zusammenkopiert.
wenn das Dein realer Code ist, dann kanns nicht funktionieren, weil dien Namen nicht zusammenpassen.
CGI funktioniert so, daß beim Absenden die Inhalte der HTML-Formularelemente an den servergeschickt werden.
mit Perl kannst Du dann diese Inhalte wieder auslesen. wichtig dabei ist daß Deine Input-Felder oder was auch immer für ein Formularelement Du gerade verwendest, gleich (genau gleich casesensitiv) benannt sind, wie in Perl.
Also wenn Du ein
<input type="text" name="Email_from" value="">
in Deinem HTML-Code hast, dann kriegst Du den Inhalt in Perl mit
$fromadresse = $query->param('Email_from');
heraus.
Javascript-Variablen wie Dein 'fromadresse' in
var fromaddress = document.forms[0].Email_from.value;
werden _nicht_ mitübertragen.
Also Formular und Script auf namensgleichheit hin überprüfen.
Ich hoffe Du findest es
Klaus
Hi,
würde Dir gerne helfen aber so weit bin ich auch noch nicht,
aber eins habe ich in diesem Forum gelernt:
POSTE_NIE_WIEDER_MEHR_ALS_10_BIS_20_ZEILEN:
Das liest sich keiner durch.
Setze lieber einen Link wo man Dein Script downloden kann.
Gruß Sven