Jürgen Dolfner: PHP Webmail geht in Mozilla nicht - wieso?

hi leute!

habe ein php script, dass als feedback formular dient. unter opoera 7 habe ich es getestet - geht 1a. nun wollte ich es unter mozilla 1.3 machen - geht nicht. bringt die fehlermeldung: formular enthielt keine daten (interne script fehlermeldung).

könnt ihr mir weiterhelfen? (sorry für das lange script ;)

jürgen

scipt:
------->

<?php

$mailto = "simon.gude@gmx.de";
$default_subject = "Feedback von www.cy-man.de";
$friendly_sender = 1;
$show_starttext = 1;
$line_break = 1;
$add_header = 1;

// Ende Einstellungen

if(!$name && !$emailad && !$subject && !$text) showhtml("include/no_data.inc");

// Pruefen, ob alle Formular-Felder ausgefuellt wurden

if($name == "") showhtml("include/no_name.inc");

if($emailad == "") showhtml("include/no_emailad.inc");

if($text == "") showhtml("include/no_text.inc");

// Betreff pruefen und ihn ggf. mit Quoted-Printable codieren (IMAP-Modul muss vorhanden sein)

if($subject == "") $subject = $default_subject;

$subject = stripslashes($subject);

if(function_exists("imap_8bit"))
{
 $subject_tmp = imap_8bit($subject);
 if($subject_tmp != $subject)
 {
  $subject = preg_replace("/ /","_",$subject_tmp);
  $subject = preg_replace("/"/","=22",$subject);
  $subject = "=?iso-8859-1?Q?$subject?=";
 }
}

// Pruefen, ob eingegebene E-Mail-Adresse gueltig ist

if(!preg_match("/^([a-zA-Z0-9]{1,}([.]?|[-]?|[_]?))*([a-zA-Z0-9]{1,}([_]?))@([a-zA-Z0-9]{1,}([.]?|[-]?))*[a-zA-Z0-9]{1,}.{1}[a-zA-Z]{2,6}$/",$emailad)) showhtml("include/invalid_emailad.inc");

// Datum herausfinden

$datum = getdate();

// Wochentage uebersetzen

if($datum[weekday] == "Monday") $wochentag = "Montag";
elseif($datum[weekday] == "Tuesday") $wochentag = "Dienstag";
elseif($datum[weekday] == "Wednesday") $wochentag = "Mittwoch";
elseif($datum[weekday] == "Thursday") $wochentag = "Donnerstag";
elseif($datum[weekday] == "Friday") $wochentag = "Freitag";
elseif($datum[weekday] == "Saturday") $wochentag = "Samstag";
elseif($datum[weekday] == "Sunday") $wochentag = "Sonntag";

// Stunden, Minuten und Sekunden ggf. eine fuehrende Null hinzufuegen

if($datum[hours] < 10) $stunden = "0$datum[hours]";
else
$stunden = $datum[hours];

if($datum[minutes] < 10) $minuten = "0$datum[minutes]";
else
$minuten = $datum[minutes];

if($datum[seconds] < 10) $sekunden = "0$datum[seconds]";
else
$sekunden = $datum[seconds];

// E-Mail zusammensetzen

if($show_starttext != 0) $starttext = "$name ($emailad) schrieb am $wochentag, dem $datum[mday].$datum[mon].$datum[year], um $stunden:$minuten:$sekunden:\n\n";

$mailtext = "$starttext$text";
$mailtext = stripslashes($mailtext);

// if($line_break != 0 && is_int($line_break)) $mailtext = wordwrap($mailtext,$line_break);

// Header der E-Mail

if($friendly_sender != 0) $header = "From: $emailad\n";

if($add_header != 0)
{
 $header .= "Reply-To: $emailad\n";
 $header .= "Content-Type: text/plain; charset="iso-8859-1"\n";
 $header .= "Content-Transfer-Encoding: 8bit\n";
 $header .= "MIME-Version: 1.0\n";
 $header .= "X-Mailer: patShaping Form E-Mail 2.1\n";
 $header .= "X-Sender-IP: [$REMOTE_ADDR]";
}
else
$header .= "Reply-To: $emailad";

// E-Mail versenden
// Wenn die E-Mail nicht versendet werden kann, wird eine Fehlermeldung ausgegeben

@mail($mailto,$subject,$mailtext,$header) || showhtml("include/send_error.inc");

showhtml("include/mail_sent.inc");

// E-Mail wurde versendet und Erfolgsmeldung ausgegeben

// Funktion zeigt eine HTML-Datei an und beendet das Skript

function showhtml($file)
{
 include($file);
 exit;
}

?>

  1. Hi,

    formular enthielt keine daten (interne script fehlermeldung).
    könnt ihr mir weiterhelfen? (sorry für das lange script ;)

    anstatt ein komplettes Script zu posten, nenne uns lieber nur den relevanten Teil, also das maximal gekürzte Script, in dem sich der Fehler noch reproduzieren lässt, sowie die Ergebnisse Deiner Problemanalyse. Dem von Dir geposteten Script lässt sich nicht mal entnehmen, durch was diese Meldung ausgegeben wird. Sehr viel Code, sehr wenig Nutzen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. hi,

    // Wochentage uebersetzen

    if($datum[weekday] == "Monday") $wochentag = "Montag";
    elseif($datum[weekday] == "Tuesday") $wochentag = "Dienstag";
    elseif($datum[weekday] == "Wednesday") $wochentag = "Mittwoch";
    elseif($datum[weekday] == "Thursday") $wochentag = "Donnerstag";
    elseif($datum[weekday] == "Friday") $wochentag = "Freitag";
    elseif($datum[weekday] == "Saturday") $wochentag = "Samstag";
    elseif($datum[weekday] == "Sunday") $wochentag = "Sonntag";

    ach, herrlich. *träneausdemaugewisch*

    ich find's immer wieder arg belustigend zu sehen, wie gerne die leute doch zu so einer umständlichen lösung greifen...

    und das hier

    // Stunden, Minuten und Sekunden ggf. eine fuehrende Null hinzufuegen

    if($datum[hours] < 10) $stunden = "0$datum[hours]";
    else
    $stunden = $datum[hours];
    ...

    ist natürlich fast genauso genial...

    gruss,
    wahsaga