Habe Formular erstellt. Aber wie absenden?

Hi,
Mein Problem ist Folgendes:
Ich bin dabei eine Homepage zu erstellen und brauche dafür auch ein Kontaktformular. Dieses habe ich auch mit Dreamweaver erstellt. Mein Problem ist, Ich weiß nicht wie ich mein formular dazu bringe sich abzuschicken^^
Am Besten wäre es, dass es mir via Mail zugeschickt wird.
Doch da

 mailto:[email protected] 

ja wegen diverser Probleme nicht in Frage kommt, gibt es wie ich weiß andere Möglichkeiten.

Wie ich gelesen habe, muss man auf eine CGI-Datei (oder ähnliches) verweisen.
Meine Frage… Wie mache ich das!? Und vorallem… Wo müssen diese Dateien auf meinem Server hin?

Ich habe mir Erklärungen auf verschiedenen Seiten angesehen, hab das ganze aber immernoch nicht verstanden.

Hier ist ersteinmal mein Code den ich bis jetzt habe:

#Inhalt

Die Datei „selfmail.pl“ (liegt im Ordner „sides“, wo eben alle seiten meiner Homepage liegen, falls das falsch ist bitte sagen^^) beinhaltet diesen Code:

#!/usr/bin/perl

$Sendmail\_Prog = "/usr/lib/sendmail";
$mailto = '[email protected]';

use CGI;

$query = new CGI;
@names = $query-\>param;

$delimiter = $query-\>param('delimiter'); 
$returnhtml = $query-\>param('return'); 
$subject = $query-\>param('subject'); 

$subject =~ s/\s/ /g;

$mailtext = "";
foreach(@names) {
 $name = $\_;
 @values = "";
 @values = $query-\>param($name);
 if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
 foreach $value (@values) {
 $mailtext = $mailtext.$name;
 $mailtext = $mailtext.$delimiter;
 $mailtext = $mailtext.$value."\n";
 }
 }
}

open(MAIL,"|$Sendmail\_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

print "Location: $returnhtml\n\n";

Hierzu würde ich auch noch gerne wissen, was es eigentlich genau mit diesem Sendmail aufsich hat. Diese Datei habe ich noch nicht erstellt.

Vielleicht hilft euch das noch weiter: Wenn man zurzeit auf „Submit“ klickt, kann man die Datei „Selfmail“ herunterladen. (warum auch immer)

Ich wäre sehr froh, wenn mir jemand bei diesem Problem(en) helfen könnte. Ich habe schon vieles versucht mir selber beizubringen… aber diesen teil habe ich nicht wirklich verstanden, desshalb hoffe ich dass ihr mir helfen könnt.
Und es ist meine erste Homepage, wesshalb ich noch nicht altzuviel Ahnung vom Thema habe.

Zu meinem Webspace:
Ich habe php5.0 zur verfügung (falls es hier weiterhilft^^) und MySQL und Perl habe ich auch:smile:

Falls noch Informationen fehlen, bitte einfach bescheid sagen, damit ich ergänzen kann:wink:

Hi,

du hast da zwei Fehlerchen drin, die dein Skript für Spammer ausnutzbar macht. Zum einen fehlt die Option -oi bei sendmail (ohne wird ein einzelner Punkt in einer Zeile als Mailtrenner angesehen), sodass man durch Manipulation der Parameter beliebige weitere Mails versenden könnte; zum anderen übernimmst du $subject auch ungeprüft, so dass man darüber auch den Mailheader manipulieren kann, um z.b. Cc hinzuzufügen.

Wenn du ein gutes, fertiges Formmail haben willst, empfehle ich
http://nms-cgi.sourceforge.net/scripts.shtml
Da haben sich mal ein paar Leute, die wirklich Ahnung haben, hingesetzt und Formmailer und andere Utilities von Matt’s Script Archive komplett neu und sicher geschrieben.

Ansonsten würde ich dir noch empfehlen, deklariere deine Variablen mit my(). Um das immer einzuhalten und um auch nützliche Warnungen zu bekommen, solltest du in jedem Skript stehen haben:
use strict;
use warnings;

http://wiki.perl-community.de/cgi-bin/foswiki/view/W…

Soo… Ersteinmal Danke für die Hilfe.
Ich habe mich noch ein wenig umgeschaut und benutze nun das angehängte Script. Mein Problem: Ich weiß nicht an welche E-Mail Adresse ich das senden kann. Mein Webspace anbieter stellt keine e-mail funktion zur verfügung. Also habe ich es mit einer von web.de versucht, doch daraufhin wurde diese gesperrt wegen Verdacht auf Spam=(
Was kann ich da tun? Und ist das Script so auch ok oder sind noch Fehler drin!?

Wäre dankbar für antworten:wink:

<?php //Empfänger<br />$mail\_to="meine [email protected]";
//

$from\_name=$\_POST['fromname'];
$from\_mail=strtolower($\_POST['frommail']);
$mail\_subject=$\_POST['mailsubject'];
$mail\_text=$\_POST['mail\_text'];

$send=$\_POST['s'];

if(trim($from\_name)=="") $err\_text.="Bitte geben Sie Ihren Namen an.
";
if(trim($from\_mail)=="")
 $err\_text.="Bitte geben Sie Ihre E-Mail an.
";
else
 if(!ereg("^[\_a-z0-9-]+(\.[\_a-z0-9-]+)\*@[a-z0-9-]+(\.[a-z0-9-]+)\*(\.[a-z]{2,6})$",$from\_mail))
 $err\_text.="Bitte geben Sie eine gültige E-Mail-Adresse an.
";
if(trim($mail\_subject)=="") $err\_text.="Bitte geben Sie einen Betreff ein.
";
if(trim($spamschutz)!="50") $err\_text.="Falscher Spamcode.
";

// Zu langen Text abschneiden
if(strlen($mail\_text)\>1000) {
 $mail\_text=substr($mail\_text,0,1000)."... (Text wurde gekürzt!)";
}
$from\_name=str\_replace(chr(34),"''",$from\_name);
$mail\_subject=str\_replace(chr(34),"''",$mail\_subject);
$from\_name=stripslashes($from\_name);
$from\_mail=stripslashes($from\_mail);
$mail\_subject=stripslashes($mail\_subject);
$mail\_text=stripslashes($mail\_text);

$Nickname=stripslashes($Nickname);
$Games=stripslashes($Games);
$Birthdate=stripslashes($Birthdate);
$xFire=stripslashes($xFire);
$Country=stripslashes($Country);
$Pw=stripslashes($Pw);
$History=stripslashes($History);

$spamschutz=stripslashes($spamschutz);

if(($send=="1") && (isset($err\_text))) {
 echo " **Fehler:**
";
 echo "$err\_text ";
}

if(($send!="1") || (isset($err\_text)))
{
?\>

Your Name:
Your E-Mail:
Subject:
NicknameGamesBirthdatexFireCountryWished PwHistoryText:
(max. 1.000 Zeichen)<?php echo $mail_text; ?>
Spamschutz: 5 + 45 =

<?php } else {
$header="From: $from\_name \n"; $header.="Reply-To: $from\_mail\n"; $header.="Content-Type: text/plain"; $mail\_date=gmdate("D, d M Y H:i:s")." +0000"; $send=0; $mail\_text="Name: $name $Nickname \n Games: $Games \n Clanhistory: $History \n xFire: $xFire \n Country: $Country \n E-Mail: $mail \n Sonstiges: $mailtext"; if(@mail($mail\_to,$mail\_subject,$mail\_text,$header)) { echo "Ihre Anfrage wurde erfolgreich versand"; echo " [Zurück zum Formular](%255C%2522%2522.%2524_SERVER%255B'PHP_SELF'%255D.%2522?from_name=%2524from_name&from_mail=%2524from_mail%255C%2522) "; }else{ echo " **Beim Versenden der E-Mail ist ein Fehler aufgetreten!**"; echo " [Zurück zum Formular](%255C%2522%2522.%2524_SERVER%255B'PHP_SELF'%255D.%2522?from_name=%2524from_name&from_mail=%2524from_mail&mail_subject=%2524mail_subject&mail_text=%2522;) "; } } ?\>