Kontaktformular erzeugt kryptische Zeichen
-
-
Stichwort UTF-8, die Zeichenkodierung stimmt nicht.
-
Ich habe in der Kontaktseite diesen Eintrag.
<meta charset="UTF-8">
Das ist bei mir Standard. Es muss einen anderen Grund geben oder muss UTF-8 auch in die PHP-Anweisung und wenn ja , wie?
-
Die Mail muss ebenfalls UTF-8 kodiert sein.
-
Hatte dieses Problem auch schon und musste dann feststellen, dass die Codierung in der Datei trotz gegenteiliger Angaben nicht gestimmt hatte. Konnte das Problem dann so lösen, in dem ich gesamten Datei-Inhalt kopiert, in eine neue Datei eingefügt und neu als z. B. Text unter UTF-8 gespeichert habe.
-
Lupus_III Benutzt Du PHP-Mailer? Bei dem ist UTF-8 nicht Default, Du musst es explizit einschalten, siehe hier:
PHPMailer character encoding issuesI try to use PHPMailer to send registration, activation. etc mail to users: require("class.phpmailer.php"); $mail -> charSet = "UTF-8"; $mail = new…stackoverflow.comEs gibt dazu auch ein Issue und man hat sich bewusst dagegen entschieden, es zum Default zu machen.
-
Ich verstehe das nicht. Ich verwende den PHP-Mailer 5.5. Darin ist eine const UTF-8 enthalten. Siehe Screenshot.
-
-
Ich weiß nicht wo der Code rein soll.
Hier ist mein HTML/ PHP Code. Soll das $mail->CharSet = "UTF-8"; in den PHP-Codebereich integriert werden?
PHP
Alles anzeigen<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon"> <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <link rel="stylesheet" href="./fontawesome-free-6.2.1-web/css/all.min.css"> <link rel="stylesheet" href="css/button_headline.css"> <link rel="stylesheet" href="css/fonts.css"> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/nav_style.css"> <link rel="stylesheet" href="css/backtotop.css"> <link rel="stylesheet" href="css/kontakt.css"> <link rel="stylesheet" href="css/accordion.css"> <title>Kontakt</title> </head> <body> <div class="to-top"></div> <!--ANCHOR Navigation--> <header> <div class="logo"> <img src="img/logo_1.svg" alt="Logo"></div> <nav> <ul> <li><a href="index.html" >Home</a></li> <li class="sub-menu"><a href="#">Gesundheitsvorsorge</a> <ul> <li class="li_weit"><a href="gesundheit_hund.html">Für Hunde</a></li> <li class="li_weit"><a href="gesundheit_katze.html">Für Katzen</a></li> </ul> </li> <li class="sub-menu"><a href="#">Ernährungsberatung</a> <ul> <li class="li_weit"><a href="hunde_1.html">Für Hunde</a></li> <li class="li_weit"><a href="katzen_1.html">Für Katzen</a></li> </ul> </li> <li><a href="hunde_2.html">Therapien</a></li> <li><a href="leistungen.html">Leistungen</a></li> <!--<li class="sub-menu"><a href="#" class="active">Leistungen</a> <ul> <li class="li_weit"><a href="leistungen.html">Leistungsübersicht</a> </li> </ul> </li>--> <li><a href="kontakt.php" class="active">Kontakt </a></li> </ul> </nav> <div class="menu-toggle"> <i class="fa fa-bars" aria-hidden="true"></i> </div> </header> <!--Navigation Ende--> <!-- ANCHOR Content--> <div class="container_2"> <?php if(!empty($_POST["send"])) { $email_subject = "Terminanfrage"; $userName = $_POST["userName"]; $userEmail = $_POST["userEmail"]; $userPhone = $_POST["userPhone"]; //$userTermin = $_POST["userTermin"]; //$userTime = $_POST["userTime"]; $userMessage = $_POST["userMessage"]; $toEmail = "kontakt@tierheilpraxis-koehler.de"; $mailHeaders = "Name: " . $userName . "\r\n Betreff: ". $email_subject . "\r\n E-Mail: ". $userEmail . "\r\n Telefon: ". $userPhone . // "\r\n Termin: ". $userTermin . //"\r\n Uhrzeit: ". $userTime . "\r\n Nachricht: " . $userMessage . "\r\n"; if(mail($toEmail, $userName, $mailHeaders)) { $message = "Ihre Nachricht wurde versandt. <br> Ich werde mich so schnell wie möglich bei Ihnen melden"; } } ?> <div class="kontakt_left"> <p>Ich freue mich auf Deine Kontaktaufnahme. <br> Gerne kannst Du dazu das Kontaktformular nutzen oder mich einfach anrufen. </p> <p><b>Tierheilpraxis Gabriele Köhler</b> <br><br> <i class="fas fa-map-marker-alt"></i> Kresswiesen 76 <br> 74523 Schwäbisch Hall-Sulzdorf <br><br> Telefon <br><i class="fas fa-phone"></i> <a href="tel:+491706650504"> +49 170 6650504 <br> <br></a> <i class="fas fa-envelope"></i> <a href="mailto:kontakt@tierheilpraxis-koehler.de">kontakt@tierheilpraxis-koehler.de</a><br><br> Öffnungszeiten: <br> Termine nach Vereinbarung </p> <p class="pklein"> Hinweis: Ich beantworte Deine E-Mail in der Regel innerhalb von 24 Stunden. Solltest Du keine Antwort in Deinem Posteingang finden, prüfe bitte Deinen SPAM-/Junk-Ordner.</p> </div> <div class="form-container kontakt_right"> <h2>KONTAKT</h2> <form name="contactFormEmail" method="post"> <div class="input-row"> <label>Name <em>*</em></label> <input type="text" name="userName" required id="userName"> </div> <div class="input-row"> <label>E-Mail <em>*</em></label> <input type="email" name="userEmail" required id="userEmail"> </div> <div class="input-row"> <label>Telefon <em>*</em></label> <input type="text" name="userPhone" required id="userPhone"> </div> <div class="input-row"> <label>Nachricht <em>*</em></label> <textarea name="userMessage" required id="userMessage"></textarea> </div> <p class="kontakttext">* = Pflichtfeld</p> <p class="kontakttext">Ich habe die Datenschutzerklärung gelesen und stimme zu.</p> <div class="input-row"> <input type="submit" name="send" value="Senden"> <?php if (! empty($message)) {?> <div class='success'> <strong><?php echo $message; ?> </strong> </div> <?php } ?> </div> </form> </div> </div> <!-- ANCHOR Footer--> <footer> <div class="left center"> <p>Tierheilpraxis <br> Gabriele Köhler <br><br> <i class="fas fa-map-marker-alt"></i> Kresswiesen 76 <br> 74523 Schwäbisch Hall-Sulzdorf <br><br> Besuche mich auch auf ... <br> <a href="https://www.facebook.com/profile.php?id=61556095381517" target="_blank"> <i class="fab fa-facebook"></i></a> <br> </p> </div> <div class="right center"> <img src="img/barf-zertifikat.png" width="200" alt="Barf Zertifikat" > </div> <div class="right center"> <p> <a href="tel:+491706650504"> <i class="fas fa-phone"></i> Fon: +49 170 6650504 <br></a> <i class="fas fa-envelope"></i> <a href="mailto:kontakt@tierheilpraxis-koehler.de">kontakt@tierheilpraxis-koehler.de</a> <br><br> <i class="fas fa-clock"></i> Öffnungszeiten: <br> Nach Vereinbarung <br><br> <a href="dokumente/impressum.pdf" target="_blank">Impressum</a> <br> <a href="dokumente/datenschutz.pdf" target="_blank">Datenschutzerklärung</a> <br> <a href="http://lupus-media.de"> © <span id="currentYear"></span> made by LUPUS-Media </a> <br> </p> </div> </footer> <!--ANCHOR Scripts--> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <!--Slidessteuerung--> <script> var simpleSlides = function () { var i; var slides = document.querySelectorAll(".slides"); for (i = 0; i < slides.length; i++) { slides[i].setAttribute("style","display:none"); } count++; if (count > slides.length) { count = 1; } slides[count-1].setAttribute("style","display:block"); setTimeout(simpleSlides, 3600); } var count = 0; simpleSlides(); </script> <!--Ende Slidessteuerung--> <!--Navigation Start--> <script> $(document).ready( function() { $('.menu-toggle').click(function() { $('nav').toggleClass('active') }) $('ul li').click(function() { $(this).siblings().removeClass('active'); $(this).toggleClass('active'); }) } ) </script> <!--Navigation Ende--> <!-- Button up --> <script src="js/backtotop.js"></script> <!-- Button up --> <script src="js/app.js"></script> <script src="js/slideshow.js"></script> <!-- Script Copyright--> <script src="js/time.js"></script> <!-- Script Ende--> </body> </html>
-
Dein Fehler liegt hier:
Du benutzt die Mail-Funktion von PHP, die aber nur eine Krücke ist und eigentlich nicht benutzt werden sollte. Statt dessen sollte man eine Mail-Klasse verwenden, w.z.B. den phpMailer.
Warum du die mail-Funktion trotzdem benutzt, bleibt dein Geheimnis, besonders nach diesen Threads:
BeitragUmsteigen auf PHPMailer 6.9.1
Hallo zusammen,
ich verwende für eine Webseite den PHP-Mailer 6.1.8. Von meinem Webprovider werde ich aufgefordert eine höhere Version zu nutzen, weil seit Dezember 2023 PHP 8.0 veraltet ist. Eine weitere Nutzung ist mit zusätzlichen Kosten verbunden.
Frage: kann ich problemlos auf den PHP-Mailer 6.1.8 wechseln, ohne dass die Funktionalität eines Formulars, das ich mit dem PHP-Mailer verschicke, beeinträchtigt wird?Lupus_III10. Januar 2024 um 13:37 BeitragRE: Formular mit multiblen Checkboxen
Also ich habe jetzt alles mal durchprobiert, aber es funktioniert nicht! Muss ich denn nicht irgendwo die Daten des SMTP-Servers und das Passwort in den Code eingeben. Ich habe in dem Tut von Stef einen solchen Hinweis nicht gefunden. Wenn das ohne gehe sollte, dann könnte ja jeder der meine e-Mailadresse kennt das nachbauen und mich mit Mails vollmüllen.
Das Formular läßt sich ohne Fehlerhinweise befüllen und absenden, aber es kommt nichts an. Eine Absendebestätigung wird nicht ausgegeben.…Lupus_III25. Oktober 2020 um 15:08 Und das alles machst du für eine kommerzielle Seite mit kostenloser Hilfe aus dem Forum.
-
Ich komme jetzt nochmal mit diesem Thema.
Eine Lösung habe ich jetzt ohne weitere Hilfe gefunden. Trotzdem danke für die Unterstützung hier. Was bei mir immer noch ein Fragezeichen auslöst ist die Aussage, dass die Mail-Funktion von PHP nur eine Krücke sei.
Warum ist das so und warum ist die Einbindung des PHP-Mailers keine Krücke und somit die beste Lösung?
-
Warum ist das so und warum ist die Einbindung des PHP-Mailers keine Krücke und somit die beste Lösung?
Ganz einfach. Die Mail-Funktion setzt keine Mail-Header automatisch, darum muss man sich selber kümmern. Dabei kann man sehr leicht Fehler machen und das Ergebnis ist dann, dass die Mail nicht ankommt oder im Spam-Ordner verschwindet. Außerdem ist eine Authentifizierung des Absender damit nicht möglich, allerdings verlangen viele Mail-Server genau diese Authentifizierung. Weiterhin kannst du mit der Mail-Funktion keine Mails per SSL versenden, auch das ist ein Ko-Kriterium für viele Mail-Server. Zu dem kommt noch, dass die Mail-Funktion keine Auskunft darüber gibt, ob die Mail auch tatsächlich gesendet wurde. Der boolsche Wert, den die Funktion zurück gibt, hilft kein Stück weiter. Aus der Doku zur mail-Funktion:
ZitatGibt true zurück, wenn die Mail erfolgreich zur Zustellung angenommen wurde, andernfalls false.
Es ist wichtig zu beachten, dass nur weil die Mail zur Zustellung angenommen wurde, dies NICHT bedeutet, dass die Post auch tatsächlich das vorgesehene Ziel erreichen wird.
Ich denke, das sind genug Gründe, um auf eine fertige Mail-Klasse w.z.B den phpMailer zurückzugreifen, mit dem man eher auf der sicheren Seite ist.
-
Danke .scatello, das sind viele gute Gründe den phpMailer zu verwenden. Eigentlich hätte ich die Information auch googlen können
, aber Deine Erklärung ist einfach verständlicher!
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!