Blödes PHP Problem - Kontaktformular

S

sebcra

Aktives Mitglied
Thread Starter
Dabei seit
04.07.2003
Beiträge
388
Reaktionspunkte
1
Moin,

das folgende Script (mail.class.php) für ein Kontaktformular läuft auf 1&1 perfekt. Die Nachricht wird also erfolgreich versendet. Auf Strato funktioniert es nicht!

Kann mir jemand sagen woran dies liegt? Ich bin so ein Honk in solchen Sachen :)

In der Kontakt.php ist das Formular mit "method=post" angegeben ...

Hier nun die mail.class.php:

<?php


//Festlegen der Anrede

switch ($anrede)
{
case '1':
$t_name="name";
$t_firma="Firma";
$t_strasse="Straße/Hausnummer";
$t_ort="PLZ/Ort";
$t_telefon="Telefon";
$t_fax="Fax";
$t_email="eMail";
$t_text="Ihre Nachricht";
$e_name="Bitte geben Sie Ihren Namen ein!";
$e_strasse="Bitte geben Sie Ihre Straße ein!";
$e_ort="Bitte geben Sie Ihren Ort ein!";
$e_telefon="Bitte geben Sie Ihre Telefonnummer ein!";
$e_email="Bitte geben Sie Ihre E-Mail-Adresse ein!";
$e_text="Bitte geben Sie Ihre Nachricht ein!";
$success="Vielen Dank! Ihre Nachricht wurde an uns erfolgreich versandt!";
break;

default:
$t_name="name";
$t_firma="Firma";
$t_strasse="Straße/Hausnummer";
$t_ort="PLZ/Ort";
$t_telefon="Telefon";
$t_fax="Fax";
$t_email="eMail";
$t_text="Ihre Nachricht";
$e_name="Bitte geben Sie Ihren Namen ein!";
$e_strasse="Bitte geben Sie Ihre Straße ein!";
$e_ort="Bitte geben Sie Ihren Ort ein!";
$e_telefon="Bitte geben Sie Ihre Telefonnummer ein!";
$e_email="Bitte geben Sie Ihre E-Mail-Adresse ein!";
$e_text="Bitte geben Sie Ihre Nachricht ein!";
$success="Vielen Dank! Ihre Nachricht wurde an uns erfolgreich versandt!";
break;
}


//Überprüfung, ob Mail versand oder nicht
switch ($vs)
{
case '1':
//----------------------------------------
$send="1";
echo "<table border=0 cellpadding=0 cellspacing=0 class=\"fehler\"><tr><td colspan=2><ul><br>";
if ($name==""){ echo $e_name . "<br>"; $send="0"; $vs_1 = "0";}
if ($strasse==""){ echo $e_strasse . "<br>"; $send="0"; $vs_1 = "0";}
if ($ort==""){ echo $e_ort . "<br>"; $send="0"; $vs_1 = "0";}
if ($telefon==""){ echo $e_telefon . "<br>"; $send="0"; $vs_1 = "0";}
if ($email==""){ echo $e_email . "<br>"; $send="0"; $vs_1 = "0";}
if ($text==""){ echo $e_text . "<br>"; $send="0"; $vs_1 = "0";}
switch ($send)
{
case '1':

//Mailtext generieren
$to = $w_email;
$subject = "Neue Nachricht durch das Kontaktformular\r\n\r\n";
$m_text = "Anfrage über das Kontaktformular ( $w_url )\r\n\r\n";
$m_text .= "Auswertung des Formulars: \r\n\r\nName: $name \nFirma: $firma \nStraße: $strasse \nWohnort: $ort \nTelefon: $telefon \nTelefax: $fax \nE-Mail: $email\r\n\n\nFolgender Text wurde versendet:\r\n\r\n";
$m_text .= $text;

//Absender generieren
$from = "From: " . $name . "\n";

//Mail generieren und versenden
mail($to,$subject,$m_text,$from);
echo $success . "<br>";
$vs_1 = "0";
break;
default:break;
}
echo "<br><a href=\"javascript:history.back();\">zurück</a>";
echo "</ul></td></tr>";
//----------------------------------------
break;

default:
break;
}
?>
 
Was für eine Fehlermeldung taucht denn auf? Bzw was tut das Script (nicht) ?
 
wenn man das kontaktformular versendet, lädt sich die seite neu und die nachricht wird nicht verschickt ... keine fehlermeldung ... php ist definitv aktiv in dem hosting paket.

seb.
 
hm, es kann sein das Strato PHP anders konfiguriert hat, und dort REGISTER_GLOBALS auf "off" sind, d.h. das eine übergebene Variable nicht einfach mit ihrem Namen angesprochen werden kann, z.B. $bineinePOSTvar
Also ich würd erstmal versuchen die ganzen POST-Variablen anders zu schreiben: $_POST['var'] statt $var.
 
der strato hotline mann hat gesagt, dass es irgendwas mit der übergabe der variablen zu tun hat ... meinst ihr also, dass ich alle variablen (jede) so schreiben soll: $_POST['var']?

seb.
 
genau ... wie es mys auch schon veranschaulicht hat :)
Wichtig: NUR die Variablen ändern, die auch wirklich übergeben werden (also vom Kontaktformular jetzt in diese PHP Datei), NICHT die anderen.
 
also nur die übergeben, die direkt den eingabefeldern zugeordnet sind (nicht die fehlermeldungen etc.)?

seb.
 
jo genau :) Auch bei Eingabefelder die "hidden" sind (also z.B. <input type=hidden name=feld value=inhalt>

im Script wird die Var dann mit $_POST['feld'] angesprochen.
 
okay .. werde ich direkt mal probieren und dann spädda berichten :)

danke schon mal für die mund zu mund beatmung ...

seb.
 
okay ...

also das formular überträgt schon mal ... allerdings kommen die daten aus dieser zeile nicht an:

$_POST["m_text"] .= "Auswertung des Formulars: \r\n\r\nName: $name \nFirma: $firma \nStraße: $strasse \nWohnort: $ort \nTelefon: $telefon \nTelefax: $fax \nE-Mail: $email\r\n\n\nFolgender Text wurde versendet:\r\n\r\n";


was muss ich da ändern, damit es versendet wird?

$_POST["xyz"] gibt in diesem fall eine fehlermeldung

seb.
 
Was ist denn dieser m_text ? So wie es ausschaut ist es doch nur eine Zusammenfassung aller eingegebener Variablen oder? In dem Falle einfach nur

$m_text .= "Auswertung des Formulars: \r\n\r\nName: ".$_POST['name']." \nFirma: ".$_POST['firma']." \nStraße: ".$_POST['strasse']." \nWohnort: ".$_POST['ort']."\nTelefon: ".$_POST['telefon']."\nTelefax: ".$_POST['fax']."\nE-Mail: ".$_POST['email']."\r\n\n\nFolgender Text wurde versendet:\r\n\r\n";
 
Tausend Dank an Thommy!

Du hast mir echt massiv viel geholfen!!! Das Formular funzt jetzt perfekt!

Sag Bescheid, wenn ich mich irgendwie revengieren kann!

Gruß aus Hamburg,
seb.
 
ja kein Problem... Kontodaten schick ich dir dann per PN ja? :D Schon gut, das gute Gefühl jemanden geholfen zu haben reicht mir (normalerweise :D)
 
Zurück
Oben Unten