Formmailer Programm funktioniert einfach nicht

  • #1
U

Ugen

Bekanntes Mitglied
Themenersteller
Dabei seit
07.01.2002
Beiträge
343
Reaktionspunkte
0
Hallo Zusammen.

Ich habe nun schon mehrere PHP-Formmailer installiert und getestet, aber es läuft einfach nicht. Nach dem SENDEN wird zwar auf das PHP-Prog. zugegriffen, aber es erscheint die Fehlermeldung:

Serverfehler!
Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.

Fehlermeldung:
Premature end of script headers: formmail.php

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500


Was kann das bedeuten? Bin leider nicht so firm in der Sache. Einen LINK kann ich nicht anbieten da ich alles wieder deinstalliert habe aus lauter Wut.

Kann mir jemand sagen wie das Handling überhaupt ist bei solchen Scripten? Ich meine, wie muss die PHP-Datei lokal editiert werden, wie soll sie übertragen werden usw. Eben wichtige Dinge meine ich. Vielleicht mache ich DA schon einen Fehler.

DANKE vielmals!

UWE
 
  • #2
ÜBRIGENS: Der Server (LINUX) kann und erlaubt ALLES fremde was ich rüber kopiere.
 
  • #3
Kannst du vielleicht mal das Script posten? Was meinst du damit, dass der Server alles fremde erlaubt ???

- Ulli -
 
  • #4
Na ja, habe mich vielleicht etwas geschwollen ausgedrückt mit dem fremde. Ich meine damit, dass ich eigene CGIs usw. dort verwenden kann. Ich habe alle Möglichkeiten die geboten werden auf dem Server.

Hier sind die zwei Scripte die ich einsetzen möchte (entweder/oder):


1. PLANETMAIL:
===========

<?php
###########################################################
#
# (c) PlaNet Concept e.K., Lars Odermath, 2002
#
###########################################################
#
# :: planetMail :: Version vom 27.11.2002
#
# COPYRIGHT NOTICE
# Copyright 2002 PlaNet Concept e.K.
# All Rights Reserved.
# EMail: [email protected]
# URL :
#
# :: planetMail :: darf von jedem kostenlos benutzt und geändert werden,
# solange dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
#
# Mit dem Einsatz dieses Skripts akzeptieren Sie, daß PlaNet Concept e.K.,
# Lars Odermath, von jeglicher Haftung und Gewährleistung hinsichtlich des
# Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt! (Mit anderen Worten: Bitte fragen Sie uns,
# bevor Sie versuchen, mit unserem Script Geld zu verdienen.)
#
# Um dieses Skript über das Internet oder ein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher unsere Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten
# bleiben.
#
###########################################################
# CONFIGURATION
###########################################################
###########################################################
// Zu Testzwecken
// 1 => Der Inhalt der eMail wird in eine Textdatei geschrieben (wenn Sie offline testen)
// 0 => Die eMail wird verschickt
$offline = 0;


// Geben Sie hier ein gültige eMail-Adresse von sich an
// (Dies ist bei manchen Providern voraussetzung, um Spamming zu verhindern)
$email_from = xyz@ihre_domain.de;


// eMail-Adresse des Versenders als Absenderadresse nutzen (um direkt anworten zu können)
// 1 => Ja
// 0 => Nein
$senders_email = 1;
// Geben Sie nachfolgend den Namen des Formularfeldes an, in das der Absender seine
// eMail-Adresse einträgt (Voreinstellung ist: eMail || BEACHTEN SIE GROSS- & KLEINSCHREIBUNG!!!!).
// Die Eingabe ist nur dann notwendig, wenn Sie die vorangehende Option auf 1 setzen!
$name_of_email = eMail;


// DEFAULT-EINSTELLUNGEN
// Diese gelten dann, wenn Sie in dem Formular keine entsprechenden hidden-fields
// verwenden (name=mailto | name=subject | name=redirect).
// Hidden-fields haben Vorrang vor den Default-Einstellungen!!!
// Soll KEINE Kopie der eMail an eine zweite Adresse geschickt werden, so löschen Sie die Dummy-eMail-Adresse
// kopie@ihre_domain.de, so daß nur noch die beiden Hochstriche stehen bleiben ().
// Ansonsten geben Sie dort bitte eine gültige eMail-Adresse ein.
// Genauere Informationen finden Sie in der README.txt
$send_dat = array
(dat1 => array(xyz@ihre_domain.de, kopie@ihre_domain.de, Kontakt über Internet,/planetmail/danke.htm),
#dat2 => array(, , , ),
#dat3 => array(, , , ),
);


// Felder aus dem Formular, die NICHT mit der eMail übertragen werden sollen.
// TIPP: Verwenden Sie grafische Buttons als Absendeknopf, so werden die Koordinaten
// der Klickstelle mit der eMail verschickt. Um diesen (unschönen) Effekt zu umgehen,
// geben sie für den grafischen Button name=senden ein.
$ignore_fields = array('send_index','Submit','senden_y');

###########################################################
# Ende der Configuration (AB HIER SOLLTE NICHTS MEHR GEÄNDERT WERDEN!!!!!!!!!!!)
###########################################################

$send_index = $HTTP_POST_VARS['send_index'];

// Prüfung, welches array zu senden verwendet werden soll
if ($send_index!=) {
$st=$send_index;
} else {
$st=dat1;
}
$mailto = $send_dat[$st][0];
$mail_cc = $send_dat[$st][1];
$subject = $send_dat[$st][2];
$redirect = $send_dat[$st][3];

// Weiterleitung auf eine neues Seite nach Absenden
Header(Location: .$redirect);

// Datum (+deutsche Tage)
$name_tag[0] = Sonntag;
$name_tag[1] = Montag;
$name_tag[2] = Dienstag;
$name_tag[3] = Mittwoch;
$name_tag[4] = Donnerstag;
$name_tag[5] = Freitag;
$name_tag[6] = Samstag;
$num_tag = date( w);
$day =$name_tag[$num_tag];
$year = date( Y);
$n = date( d);
$month = date( m);
$time = (date(H:i));

// Datum einfügen
$mts = :: Gesendet am $day, den $n.$month.$year - $time Uhr ::<br><br>;

// Formularfelder auslesen und in die eMail einsetzen
// Zu ignorierende Felder werden NICHT eingesetzt
while (list($nam,$val) = each($HTTP_POST_VARS)) {
if (in_array($nam, $ignore_fields)) continue;
$mts .= :: $nam ::<br>$val<br><br>;
}
$mts = str_replace(<br>, \n, $mts);

$mts = strip_tags($mts);
$mts = stripslashes($mts);

// Absender-eMail-Adresse
if ($senders_email==1) {
$email_from = $HTTP_POST_VARS[$name_of_email];
}

$header=From: $email_from;

// Kopie schicken
if (!empty($mail_cc)) {
$header .= \n;
$header .= Cc: $mail_cc;
}

// email zum testen in ein Textfile schreiben...
if ($offline==1) {
$testmail=fopen(email.txt,w+);
fwrite($testmail,$mts);
fclose($testmail);
}
if ($offline==0) {
// ...eMail verschicken
mail ($mailto,$subject,$mts,$header);
} else {
// Fehlermeldung, wenn die eMail nicht geschickt werden konnte
echo Es ist ein Fehler aufgetreten!\n;
echo Bitte versuchen Sie es erneut...;
}
?>





2. Und hier das zweite Script:
=====================

<?
/*
############################################################################
#
# (c) Feindt Computerservice, 2001
#
############################################################################
#
# Formmailer V.1.0
# COPYRIGHT NOTICE
# Copyright 2001 Feindt Computerservice
# All Rights Reserved.
# EMail: [email protected]
# URL :
#
# Formmailer darf von jedermann kostenlos benutzt und geändert werden, solange
# dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben. Mit
# dem Einsatz dieses Skripts akzeptieren Sie, daß Feindt Computerservice von jeglicher
# Haftung und Gewährleistung hinsichtlich des Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# schriftliche Genehmigung ausdrücklich untersagt.
#
# Um dieses Skript über das Internet oder irgendein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher unsere Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
###############################################################################

Dieses Script kann in bestehende PHP-Seiten problemlos eingebaut werden.
Einfach alles markieren und kopieren. Aber denkt an die obenstehenden Bedingungen.
*/

/*Variablen werden umgewandelt*/
/*weitere Felder nach ähnlichem Muster verwenden*/
$name = $_POST['name'];
$nachricht = $_POST['nachricht'];
$mail = $_POST['mail'];

/*Hier werden alle Daten eingegeben*/
/*An wen soll die Anfrage gerichtet sein?*/
$webmaster = [email protected];

/*Welche E-Mail-Adresse soll als Absender eingegeben werden?*/
$absender = [email protected];


/*Wie soll die Mail aussehen, die an den webmaster gerichtet ist? Formularfelder werden wie folgt eingefügt $NameDesFeldes*/
/*Betreff*/ $betreffwebmaster = Dies ist der Betreff;
/*Textkörper*/ $koerperwebmaster = $name ($mail) hat über die Webseite von Domain.de folgende Nachricht hinterlassen:
$nachricht;

/*wie soll die Mail aussehen, die an den Absender gerichtet ist?*/
/*Betreff*/ $betreffabsender = Dies ist der Betreff;
/*Textkörper*/ $koerperabsender = herzlichen Dank für Deine Nachricht an das Team von Domain.de \n Du hast folgende Nachricht versandt:\n $nachricht\n;

/*Was soll nach dem Absenden des Formulares geschehen.
1. Verweis auf andere HTML- bzw. PHP-Seiten (bei $action eine 1 eintragen)
2. Anzeige direkt in der danke.php (bei $action eine 2 eintragen)*/
$action = 1;

/*Es soll auf eine andere Datei verwiesen werden*/
$sUrlMailFalsch =
$sUrlFelderLeer =
$sUrlMailVersendet =


/*Direkte Anzeige der Fehler in der danke.php
Welche Fehlermeldung soll ausgegeben werden, wenn die E-Mail-Adresse falsch eingegeben wurde? Bitte mit HTML-Tags arbeiten,
es können auch Klassen für CSS zugewiesen werden*/
$mailfalsch = <p class=ueber1>Fehler</p><p>Leider ist die E-Mail-Adresse falsch</p><p>Bitte kontrolliere noch einmal die Eingabe und sende das Formular erneut ab.;

/*Welche Fehlermeldung soll ausgegeben werden, wenn nicht alle Pflicht-Felder ausgefüllt sind?*/
$felderleer = <p class=ueber1>Fehler</p><p>Die Nachricht konnte nicht versandt werden, da nicht alle Felder ausgefüllt wurden</p>;

/*Wie soll der Text aussehen, wenn die E-Mail versendet wurde?*/
$abgesandt = <p class=ueber1>Danke,</p><p>wir haben die Nachricht versandt und werden uns evtl. noch einmal melden.</p>;

/*Sind alle Felder ausgefüllt? für jedes Feld das ausgefüllt sein muß, muß hier ein entsprechender Eintrag gemacht werden*/
if ($name == || $mail == || $nachricht ==)
/*##############################################################################
#Bitte ab hier nichts mehr ändern. Alle Angaben sind im oberen Teil zu machen#
##############################################################################*/
{
/*nein*/
if ($action == 1)
header(location:.$sUrlFelderLeer);
else echo $felderleer;
}
else
{
/*ja*/
/*Ist die E-Mail-Adresse richtig eingegeben?*/
if (ereg(^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$, $mail))
{
/*E-Mail-Adresse ist richtig*/
mail($webmaster,$betreffwebmaster,$koerperwebmaster\n\n--------------\nKostenlose Formmailer bei $mail\n);

/*Soll der Absender eine Kopie erhalten?*/
if ($kopie == ja)
{
mail($mail,$betreffabsender,$koerperabsender\n\n--------------\nKostenlose Formmailer bei $absender\n);
if ($action == 1) header(location:.$sUrlMailVersendet);
else echo $abgesandt;
}
else
{
if ($action == 1) header(location:.$sUrlMailVersendet);
else echo $abgesandt;
echo $abgesandt;
}
}
else
{
/*nein*/
if ($action == 1) header(location:.$sUrlMailFalsch);
else echo $mailfalsch;
}
}
?>


Ich hatte mal etwas gehört, dass man diese Scripte nur mit einem DOS-Editor bearbeiten soll oder so ähnlich. Vielleicht kennt sich jemand aus und kann mir das Wichtigste mitteilen. Wäre super!
DANKE!!!

Uwe
 
  • #5
Hmmm, die Scripte sehen für mich ok aus, scheint ein Fehler des Servers zu sein (Apache?). Ist der korrekt konfiguriert? ist PHP korrekt konfiguriert? Vor allem im Zusammenhang mit dem Webserver? Wie sieht's mit den Berechtigungen für das Script aus (soweit ich weiss darf es nicht executable, also z.B. im cgi-bin-Verzeichnis, sein)?

Unix und Windows benutzen unterschiedliche Zeichenketten als Zeilenumbruch. Das sollte aber in diesem Fall wurscht sein, da ein Zeilenumbruch gar nicht von PHP interpretiert wird. Du kannst das Script ohne weiteres z.B. mit dem Windows Notepad bearbeiten und dann per FTP oder so hochladen...

- Ulli -
 
  • #6
Sind die Weiterleitungs URLS richtig eingegeben  ???

Script 1 (ca. Zeile 65)
Code:
$send_dat = array
(dat1 => array(xyz@ihre_domain.de, kopie@ihre_domain.de, Kontakt über Internet,/planetmail/danke.htm),

Script 2 (ca. Zeile 62)
Code:
$sUrlMailFalsch = [url]http://domain.de/mailfalsch.html;[/url]
$sUrlFelderLeer = [url]http://domain.de/felderleer.html;[/url]
$sUrlMailVersendet = [url]http://domain.de/mailversendet.html;[/url]

sonst läuft das Script ins Leere, bzw. der HEADER Befehl bringt Fehler !!

Ich hatte mal etwas gehört, dass man diese Scripte nur mit einem DOS-Editor bearbeiten soll oder so ähnlich. Vielleicht kennt sich jemand aus und kann mir das Wichtigste mitteilen. Wäre super!

Dem Script ist es vollkommen Wurscht von welchem Editor es bearbeitet wird.
Hauptsache die Syntax stimmt  ;D

gruss conny
 
  • #7
Ja, der Server ist richtig konfiguriert.
Doch, das Script liegt im CGI-BIN Verzeichnis. Wo soll ich es hinkopieren?

Ja, die URLs sind ebenso richtig eingegeben. Habe hier nur die ORIGINAL-Version veröffentlicht.

Hat jemand Erfahrung mit gleichwertigen Scripten? Vielleicht sollte ich mal ein anderes probieren.

DANKE!
 
  • #8
Doch, das Script liegt im CGI-BIN Verzeichnis. Wo soll ich es hinkopieren?
Egal wohin, nur nicht in den CGI-BIN.

P.S.: Denke dann daran die Pfade anzupassen.
 
  • #9
Irgendwohin, wo es keine Execute-Rechte bekommt! z.B. in den Ordner den Apache für die Homepage benutzt, der hat Leserechte und wenn du das Script dahin kopierst erhält es die gleichen Rechte. Oder du änderst die Rechte per Hand im cgi-bin Ordner nur für das PHP-Script....

- Ulli -
 
  • #10
Okay, ich werde es versuchen. Melde mich dann wieder.

DANKE einstweilen an alle.
 
  • #11
Alles klar - habe das Script in mein HTML Verzeichnis kopiert und siehe da - es läuft.
Ich danke euch sehr für eure Hilfe! SUPER!!!


Vielen Dank!

UWE
 
Thema:

Formmailer Programm funktioniert einfach nicht

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben