Ergebnis 1 bis 10 von 10
  1. #1
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    php Kontaktformular funktioniert nicht mehr

    Hallo zusammen,

    ich habe heute per Zufall mit der Inhaberin der Website festgestellt, dass das Kontaktformular auf http://www.floh-undzeckentropfen.de/kontakt.html nicht mehr funktioniert.
    Am 30.04. war das alles kein Problem. Fehlermeldung erfolgt keine, Nachricht verschwindet im Nirvana.

    Eigentlich wollte ich das kostenlose Zertifikat installieren. Damit warte ich aber jetzt noch. Auf meinem Test-Server bei einem anderen Hoster ist es kein Problem, läuft dort reibungslos.
    Es wäre Klasse, wenn da mal jemand draufschauen könnte. PHP ist nicht mein Ding.

    Im Voraus schon mal vielen Dank!

    Gruß, Klaus
    Geändert von Klaus H. (12.05.2018 um 12:28 Uhr) Grund: Typofehler

  2. #2
    Reseller Avatar von wecotec
    Registriert seit
    04.03.2014
    Beiträge
    2.602

    AW: php Kontaktformular funktioniert nicht mehr

    Kannst Du bzw. Dein Kunde vielleicht mal schauen ob die Mails von dem Formular nicht im SPAM-Ordner landen?

    Wenn die Mail aus dem Formular per mail()-Befehl gesendet wird kann das sehr schnell vorkommen. Hast Du die Möglichkeit das Formular zu konfigurieren? Oder kannst Du die entsprechende PHP-Datei mal hier posten?

  3. #3
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    AW: php Kontaktformular funktioniert nicht mehr

    Zitat Zitat von wecotec Beitrag anzeigen
    Kannst Du bzw. Dein Kunde vielleicht mal schauen ob die Mails von dem Formular nicht im SPAM-Ordner landen?
    Danke Markus für die schnelle Antwort. Werde ich beim Auftraggeber anstoßen.

    Zitat Zitat von wecotec Beitrag anzeigen
    Wenn die Mail aus dem Formular per mail()-Befehl gesendet wird kann das sehr schnell vorkommen. Hast Du die Möglichkeit das Formular zu konfigurieren? Oder kannst Du die entsprechende PHP-Datei mal hier posten?
    Gerne, erfolgt später, da ich gerade außer Haus muss. Melde mich wieder.

    Gruß, Klaus

  4. #4
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    AW: php Kontaktformular funktioniert nicht mehr

    Zitat Zitat von wecotec Beitrag anzeigen
    Hast Du die Möglichkeit das Formular zu konfigurieren? Oder kannst Du die entsprechende PHP-Datei mal hier posten?
    Das wäre der Code dazu :

    <?php

    global $errorStrings;
    global $errors;

    // CONFIG
    // Redirect pages
    $successPage = ""; // Relative path for page to redirect to on success
    $errorPage = ""; // Relative path for page to redirect to on error, error numbers will be in a GET variable

    // E-Mail
    $recipient = "bestellung@floh-undzeckentropfen.de"; // Address to deliver form to
    $subject = ""; // Subject of the E-Mail
    $from = ""; // From address if server requires it or if E-Mail address is optional
    $name = ""; // The name of the sender, if required

    $useRecipientList = "0"; // Should the recipient be matched against options?
    $recipientList = array(

    );

    // Server
    $allowsOtherDomains = TRUE;

    // Variables
    $input_vars = array(
    'nameField3' => array(
    'title' => 'nameField3',
    'required' => '0'
    ),
    'emailField' => array(
    'title' => 'emailField',
    'required' => '1',
    'type' => 'from',
    'filter' => 'email'
    ),
    'phoneField' => array(
    'title' => 'phoneField',
    'required' => '0'
    ),
    'subjectField' => array(
    'title' => 'subjectField',
    'required' => '1',
    'type' => 'subject'
    ),
    'messageArea' => array(
    'title' => 'messageArea',
    'required' => '1'
    ),
    'nameField' => array(
    'title' => 'nameField',
    'required' => '1',
    'type' => 'firstName'
    ),
    'nameField2' => array(
    'title' => 'nameField2',
    'required' => '0',
    'type' => 'surname'
    )
    );

    // Error strings
    $errorStrings = array(
    0 => 'Undefinierter Fehler',
    1 => 'Kein Formular abgeschickt',
    2 => 'Ungültige E-Mail-Adresse',
    3 => 'E-Mail konnte nicht zugestellt werden',
    4 => 'sendForm91675', // No real error message for this
    );

    // FUNCTIONS
    // void appendError(int $errorNum [, string $errorString])
    // Append error for processing at the end
    function appendError($errorNum, $errorString = NULL)
    {
    global $errorStrings;
    global $errors;
    global $customErrorNum;
    if (!$errors)
    $errors = array();
    if (!$customErrorNum)
    $customErrorNum = 0;

    if ($errorNum > 0 && array_key_exists($errorNum, $errorStrings))
    $message = $errorStrings[$errorNum];
    elseif ($errorString)
    $message = $errorString;
    else
    $message = $errorStrings[0];

    if ($errorNum == 0)
    {
    $errors["c$customErrorNum"] = $message;
    $customErrorNum++;
    }
    else
    {
    $errors[$errorNum] = $message;
    }
    }

    // PROCESSING
    // Input
    // Determine if a form has been submitted and whether it was via POST or GET
    $input_type = INPUT_POST;
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    $input_type = INPUT_POST;
    elseif ($_SERVER['REQUEST_METHOD'] === 'GET')
    $input_type = INPUT_GET;
    else
    appendError(1);

    // Are we in safe mode?
    $safeMode = ini_get('safe_mode');
    // safe_mode can be 'On' or true
    $safeMode = ($safeMode == 'On' || $safeMode == true);

    $recipientId = 0;

    // Before we go anywhere, was the form submitted by a human?
    if (($input_type == INPUT_POST && !empty($_POST['sendForm91675']) ||
    ($input_type == INPUT_GET && !empty($_GET['sendForm91675']))))
    {
    // Probably not
    appendError(4);
    }

    if (!$errors)
    {
    $firstName = false;
    $surname = false;
    $parameters = "";

    // A form has been submitted, iterate over the expected fields to
    // produce a message body
    $emailBody = '';
    foreach($input_vars as $key => $var)
    {
    $field = NULL;
    if (filter_has_var($input_type, $key) && ($input_type == INPUT_POST ? !empty($_POST[$key]) : !empty($_GET[$key])))
    {
    // If the field exists and isn't empty, sanitize the contents for security
    if (array_key_exists('filter', $var))
    {
    switch ($var['filter'])
    {
    case 'email':
    $sanitized = filter_input($input_type, $key, FILTER_SANITIZE_EMAIL);
    if (filter_input($input_type, $key, FILTER_VALIDATE_EMAIL))
    {
    $field = $sanitized;
    if ($var['type'] == 'recipient')
    {
    $recipient = $field;
    $field = '';
    }
    elseif ($var['type'] == 'from' && $allowsOtherDomains)
    $from = $field;
    }
    else
    appendError(2);
    break;
    case 'integer':
    $sanitized = filter_input($input_type, $key, FILTER_SANITIZE_NUMBER_INT);
    if (!empty($sanitized))
    {
    if ($var['type'] == 'recipient')
    $recipientId = $sanitized;
    else
    $field = $sanitized;
    }
    break;
    default:
    $field = filter_input($input_type, $key, FILTER_SANITIZE_MAGIC_QUOTES);
    }
    }
    else
    {
    $group = filter_input(INPUT_POST, $key, FILTER_SANITIZE_MAGIC_QUOTES, FILTER_REQUIRE_ARRAY);
    if(is_Array($group))
    {
    for($i = 0; $i < count($group); $i++)
    {
    $field .= "$group[$i]";
    if($group[$i+1])
    $field .= ", ";
    }
    if(count($group) > 1)
    $field = "[$field]";
    }
    else
    $field = filter_input($input_type, "$key", FILTER_SANITIZE_MAGIC_QUOTES);
    }

    if ($field && array_key_exists('type', $var))
    {
    if ($var['type'] == 'firstName')
    {
    $firstName = $field;
    }
    elseif ($var['type'] == 'surname')
    {
    $surname = $field;
    }
    elseif ($var['type'] == 'subject')
    {
    $subject = $field;
    continue;
    }
    }
    }
    elseif (array_key_exists('required', $var) && $var['required'])
    {
    // The field doesn't exist or is empty but is required
    appendError(0, "$key is a required field");
    }

    if ($field)
    {
    // Add the field to the message body
    $emailBody .= $var['title'] . ": $field\n";
    }
    }
    }

    // Sending
    if (!$errors)
    {
    // If we haven't had any errors up to this point, try to send the E-Mail
    if ($firstName || $surname)
    {
    if ($firstName && $surname)
    $name = $firstName . " " . $surname;
    elseif ($firstName)
    $name = $firstName;
    else
    $name = $surname;
    }

    if ($useRecipientList && isset($recipientList))
    if (count($recipientList) > $recipientId && $recipientId >= 0)
    $recipient = $recipientList[$recipientId];

    $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
    if ($name)
    $fromHeader = "From: \"$name\" <$from>\r\n";
    else
    $fromHeader = "From: $from\r\n";

    if (!$allowsOtherDomains)
    $parameters = "-f$from";

    if ($safeMode)
    $mailSuccess = mail($recipient, $subject, "$emailBody", $headers . $fromHeader);
    else
    $mailSuccess = mail($recipient, $subject, "$emailBody", $headers . $fromHeader, $parameters);

    if (!$mailSuccess)
    {
    // Attempt to send from an address of the same domain as the server
    if ($name)
    $fromHeader = "From: \"$name\" <no-reply@" . $_SERVER['HTTP_HOST'] . ">\r\n";
    else
    $fromHeader = "From: no-reply@" . $_SERVER['HTTP_HOST'] . "\r\n";

    if ($safeMode)
    $mailSuccess = mail($recipient, $subject, "$emailBody", $headers . $fromHeader);
    else
    $mailSuccess = mail($recipient, $subject, "$emailBody", $headers . $fromHeader, $parameters);

    if(!$mailSuccess)
    appendError(3);
    }
    }

    // Finishing up
    $host = $_SERVER['HTTP_HOST'];
    $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

    if ((substr($errorPage, 0, 7) != 'http://') && (substr($errorPage, 0, 8) != 'https://'))
    {
    if (strpos($errorPage, "/") === 0)
    $errorPage = "http://$host$errorPage";
    else
    $errorPage = "http://$host$uri/$errorPage";
    }

    if ((substr($successPage, 0, 7) != 'http://') && (substr($successPage, 0, 8) != 'https://'))
    {
    if (strpos($successPage, "/") === 0)
    $successPage = "http://$host$successPage";
    else
    $successPage = "http://$host$uri/$successPage";
    }

    // If we have errors but the spam trap error is present, we pretend that we succeeded
    if ($errors && !array_key_exists(4, $errors))
    {
    // We encountered errors so the E-Mail must not have been sent
    $errorsUrlString = urlencode(implode(",", $errors));
    header("Location: $errorPage?$errorsUrlString");
    }
    else
    {
    // E-Mail has been successfully accepted for delivery. This doesn't mean it will reach the
    // destination but that is out of our control now so all we can do is hope for the best
    header("Location: $successPage");
    }

    ?>

  5. #5
    Reseller Avatar von wecotec
    Registriert seit
    04.03.2014
    Beiträge
    2.602

    AW: php Kontaktformular funktioniert nicht mehr

    Das Script nutzt die mail()-Funktion, die zwar gut ist, aber auch (wenigstens bei mir) öfter gesorgt hat dass Mails im SPAM-Ordner landen. Setzt Du den Parameter "$from" ?

    Vielleicht hat einer der Mitlesenden einen Tipp wie man obiges Script einfach modifizieren kann.....

  6. #6
    Forenexperte Avatar von masterframe
    Registriert seit
    16.08.2001
    Beiträge
    8.315

    AW: php Kontaktformular funktioniert nicht mehr

    Wenn nach dem Absenden des Formulars die Seite "$successPage" angezeigt wird hat der Versand serverseitig funktioniert.

    Gruß,
    masterframe
    Alle Postings erfolgen freiwillig und nach bestem Gewissen. Haftung ausgeschlossen. Keine Rechtsberatung. Beschwerden bitte über unser Kontaktformular. WHOAMI

  7. #7
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    AW: php Kontaktformular funktioniert nicht mehr

    Danke Markus.

    Nein, "$from" wurde nicht benutzt. Das Script liegt so wie abgebildet im Verzeichnis.
    Bezüglich Spamordner warte ich noch auf Antwort der Kundin.

    Gruß, Klaus

  8. #8
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    AW: php Kontaktformular funktioniert nicht mehr

    Zitat Zitat von masterframe Beitrag anzeigen
    Wenn nach dem Absenden des Formulars die Seite "$successPage" angezeigt wird hat der Versand serverseitig funktioniert.
    Es existiert bislang keine Erfolgs- oder Misserfolgsseite. Könnte es daran liegen?

  9. #9
    Forenexperte Avatar von masterframe
    Registriert seit
    16.08.2001
    Beiträge
    8.315

    AW: php Kontaktformular funktioniert nicht mehr

    Zitat Zitat von Klaus H. Beitrag anzeigen
    Es existiert bislang keine Erfolgs- oder Misserfolgsseite. Könnte es daran liegen?
    Das Fehlen derselben sollte den Versand nicht verhindern, erschwert aber die Auswertung.

    Insgesamt ist der Quellcode total unübersichtlich.
    An vier verschiedenen Stellen versucht eine Mail abzusetzen.
    Da müsste man erst mal rausfinden welche der Varianten überhaupt greift.

    Gruß,
    masterframe
    Alle Postings erfolgen freiwillig und nach bestem Gewissen. Haftung ausgeschlossen. Keine Rechtsberatung. Beschwerden bitte über unser Kontaktformular. WHOAMI

  10. #10
    Kunde
    Registriert seit
    26.01.2004
    Beiträge
    66

    AW: php Kontaktformular funktioniert nicht mehr

    Mittlerweile konnte ich klären, dass auch keine Nachricht im Spamordner gelandet ist. Im Kundenmenü habe ich probehalber die Spamprüfung abgeschaltet. Das brachte auch keinen Erfolg.
    Eine Positiv- und Negativseite haben wir angelegt. Ebenso kein Erfolg.

    Ich werde jetzt ein Ticket aufmachen und dann sehen wir mal weiter.

    An alle Beteiligten vielen Dank für die Hilfe!!

    Gruß, Klaus

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 29.05.2017, 22:30
  2. Cronjob funktioniert nach PHP Umstellung nicht mehr
    Von user-0815 im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 30.05.2016, 12:00
  3. PHP Kontaktformular funktioniert NUR mit externem Empfänger
    Von svArtist im Forum Fragen rund um E-Mail
    Antworten: 4
    Letzter Beitrag: 30.08.2014, 09:18
  4. php mail() funktioniert nicht mehr
    Von mogii im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 8
    Letzter Beitrag: 24.12.2004, 10:36

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •