WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 03.09.2001, 20:27   #3
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

#!/usr/bin/perl

#################################################
# #
# POSTFORM: VERSION 1.0 #
# #
# Copyright: NETWAY AG #
# #
#################################################

# Define some constants

$mailprog = '/usr/lib/sendmail';

# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# Stop people from using subshells to execute commands
# Not a big deal when using sendmail, but very important
# when using UCB mail (aka mailx).
# $value =~ s/~!/ ~!/g;

# Uncomment for debugging purposes
# print "Setting $name to $value

";

$FORM{$name} = $value;
}

# Now send mail to $recipient

open (MAIL, "|$mailprog $FORM{'h_mailto'}") || die "Can't open $mailprog!\n";
print MAIL "From: noreply\@domain.xxx\n";
print MAIL "Subject: $FORM{'h_subject'}\n\n";

foreach $key (sort(keys(%FORM)))
{
print MAIL "$key: $FORM{$key}\n\n";
}

#print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n";
#print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n";
#print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
close (MAIL);

if ($FORM{'h_successurl'} ne "") {
print "Location: $FORM{'h_successurl'}\n\n";

} else {
print "Content-type: text/html\n";
print "The message has been sent!

";
print "<A HREF=\"$ENV{'HTTP_REFERER'}\">Back!</A>

";
}



wie man sieht, von netway programmiert
ich bin jetzt grad dabei, es so umzubauen, dass es für mich passt, allerdings hatte ich ständig n internal server error, auch wenn ich das script auf die erste zeile reduziere.

hab dann mal probiert, die variablennamen zu ändern, das geht noch, sobald ich aber eigene variablen einbaue, hab ich den error
wieder

die daten werden von einem formular übertragen.
so ungefähr hab ich zwar eine ahnung wies funkt, allerdings sind mir die errors etwas schleierhaft

ich post halt mein derzeit modifiziertes auch noch rein:



#!/usr/bin/perl

# Define some constants

$mailprog = '/usr/lib/sendmail';

# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# Stop people from using subshells to execute commands
# Not a big deal when using sendmail, but very important
# when using UCB mail (aka mailx).
# $value =~ s/~!/ ~!/g;

# Uncomment for debugging purposes
# print "Setting $name to $value

";

$FORM{$name} = $value;
}

# Now send mail to $recipient

open (MAIL, "|$mailprog $FORM{'mail'}") || die "Can't open $mailprog!\n";
print MAIL "From: $FORM{'senderMail'}\n";
print MAIL "Subject: $FORM{'subject'}\n\n";

print MAIL "$FORM{'text'}\n\n";


#print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n";
#print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n";
#print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
close (MAIL);

if ($FORM{'h_successurl'} ne "") {
print "Location: $FORM{'h_successurl'}\n\n";

} else {
print "Content-type: text/html\n";
print "The message has been sent!

";
print "<A HREF=\"$ENV{'HTTP_REFERER'}\">Back!</A>

";
}
Who-T ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:56 Uhr.


Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag