Beiträge von Arne Drews

    Zur Frage: Im Mailing-Skript einfach auch session_start(); verwenden und Du hast Zugriff auf die Session-Variablen.

    Nur mal als Anregung: Bevor ich mit IF-Ketten arbeite, nutze ich bspw. die Array-Funktionen von PHP:

    PHP
    $languages = array_filter([
        'de',
        $_GET['language'] ?? null,
        $_SESSION['language'] ?? null
      ]);
    
    
    $_SESSION['language'] = end( $languages );
    include_once '_include/lang/' . $_SESSION['language'] . '.php';

    Bei mir habe ich noch eine Routine drin, die anhand des User-Agent die primäre Sprache versucht herauszufinden. Das Ergebnis packe ich mit in das array_filter().
    Hinterher habe ich in $languages nur gültige Werte und übernehme den letzten Eintrag in die Session. Das setzt natürlich voraus, dass die Elemente im array_filter() nach Prio aufsteigend sortiert sind, damit der letzte die höchste hat.


    EDIT: Korrigiert von array_map() auf array_filter()

    Das ist dann in der Tat merkwürdig, aber imho kein grundsätzlicher Bug von Thunderbird, denn bei mir macht er das einwandfrei in allen Postfächern.
    Aber wie Du schon sagtest, wenn das alles ist, kann man vermutlich damit leben.

    Zitat

    Status 1 sollte positiv sein!?

    Das denke ich mir, dass du das so meinst, aber Du machst es genau umgekehrt:


    Was meinst Du denn, was da passiert?!

    Dann führe den Code blockweise aus und setze Testausgaben, fang bspw. damit an:


    Gibt er ohne Fehler 5 aus, ist bis dahin vermutlich alles ok.
    Passiert hier schon nichts, hast Du bereits in dem Block Fehler...

    Du hast den Code selber wieder angepasst... Ich habe keine Lust, in jedem Beitrag den kompletten Code wieder zu überprüfen.
    Nimm den korrigierten Code aus #14, kopiere den 1:1 und gebe Feedback, welche Fehler dann kommen. Dann kann man das Step by Step angehen.
    Wenn Du jedesmal wieder selber was reinfriemelst, finden wir nie heraus, wo die Fehler genau liegen

    Na zumindest kommen jetzt Fehler!
    Ich hatte den Code vorhin nochmal überarbeitet. Musst Du nochmal versuchen.

    Zitat

    Ja die 'kleinen' Fehler hätte ich noch rausgeschmirgelt...

    Sag mal, nimmst Du uns auf den Arm?!
    Erstens sind das keine kleinen Fehler! und zweitens können auch die dazu führen, dass nichts geht! Wenn Du so arbeitest, ist jede Hilfe verschwendete Zeit...

    Ne hält es nicht... Je nach PHP Version ist E_ALL nicht dasselbe, wie -1. Nur -1 ist in allen PHP-Versionen konstant und liefert wirklich ALLE Fehler!
    Davon mal abgesehen, hat die Konstante E_ALL einen Wert von 32767, was ini_set() veranlasst dies in ein true zu casten.

    Versuch diesen Code mal:

    PHP
    $contact_form = new Contact_Form($_POST, $admin_email, $message_min_length);
    $contact_form->sendRequest();


    EDIT: Zudem vermute ich, dass die E-Mail Adresse hiernach immer leer sein wird:

    PHP
    $string = preg_replace( $regex, '', $this->email );
    return empty( $string );

    Weiterhin ist sowas unnötig ( und zudem noch falsch ):

    PHP
    $oMailer->Username = '".$this->admin_email."';


    das ist das gleiche, wie das hier:

    PHP
    $oMailer->Username = $this->admin_email;

    , außer, dass Du den Interpreter mehr forderst, weil er versucht eine Zeichenkette zu parsen, die gar nicht da ist.


    EDIT2: Ich habe den Code oben nochmal etwas korrigiert. Teste und poste evtl. Fehler

    Setz mal ganz an den Anfang das ErrorReporting ein:

    PHP
    error_reporting ( -1 );
    ini_set ( 'display_errors', true );


    Dann sollten auch Fehler kommen, bspw. gibt es kein

    PHP
    returnfalse;

    ...obwohl, ich sehe gerade, das ist im JS-Block. Die Fehler findest Du in der Entwickler-Konsole Deines Browsers (F12)

    Ja nun... Wenn man es richtig machen will. darf man so ein Schwein nicht frei rumlaufen lassen...
    Wenn Du die Zeit nicht hast, es richtig zu machen, solltest Du aber hier auch nicht fragen, ob Dir jemand hilft.

    Du musst beim Versenden von E-Mails so vieles bedenken, was in dem Script einfach nicht beachtet wird.
    All diese Dinge übernehmen Mailerklassen für Dich. Ich schenk Dir mal zwei Links: PHPMailer ( und ein funktionierendes Tutorial ).

    Feel free to learn...

    btw., ich will ja nichts böses unterstellen, aber ich könnte mir vorstellen, dass sich hinter der DB-Klasse die mysql-Erweiterung verbirgt, das wäre dann auch was für Auswechselbank.