Eine Frage hätte ich bitte noch dazu: Der Link wird nicht mehr als Link zum Anklicken angezeigt jetzt. Kann ich das auch noch ändern oder muss er immer kopiert und eingefügt werden
Beiträge von Alien
-
-
Ich danke Dir ganz ganz herzlich. Genau das war es! Nun muss ich nur noch die Zeilenumbrüche hinbekommen. Das das krieg ich schon.
Nochmal ganz lieben Dank für Deine tolle Hilfe und alle anderen hier die geantwortet haben
Gruß
Alien
-
Danke, das Du nochmal drüber nachgedacht hast. Ich gehe also auf der Login-Seite auf Passwort vergessen, gebe meine Testmail-addy und erhalte sofort die Mail mit dem Link zum ändern des Passwortes. Diese mail ist im Betreff ok mit utf-8, aber der Text ist nicht utf-8 sondern mit den komischen Zeichen, die ich im 2. Bild geschickt habe. Also keine Fragezeichen oder Quadrate. Beantworte ich diese mail ist es richtig codiert. Ich habe mir also nochmal das Verhalten der Mails aus dem Kontakt-Formular und die infomail vom Dateiupload angesehen, alles ist ok. Aber diese beiden laufen über den php-mailer. Die mails von Passwort vergessen aber über sendmail auf einem Ubuntu-Server Es war sehr schwierig das hinzubekommen weil es nicht lief mit dem mailer. Ich habe dort schon umgestellt auf ISO8859-1 und getestet. Aber das Problem bleibt. In Thunderbird hab ich auch schon nachgesehen, dort ist utf-8 richtig eingestellt. Ich schicke Dir nochmal den Code der Seite, wäre schön wenn Du nochmal nachsauen könntest. Vielleicht liegt es irgendwie an html-entities, aber ich bin nicht so gut darin, ich kann nur testen. Mit iconv kenne ich mich nicht aus. Aber ich habe es aufgerufen in der console und es zeigt alle Möglichkeiten an, leider weiß ich da nicht weiter.
PHP
Alles anzeigen<?php session_start(); require_once("inc/config.inc.php"); require_once("inc/functions.inc.php"); include("templates/header.inc.php"); ?> <div class="container"> <div class="registration-form"> <div class="jumbotron"> <h6>Passwort vergessen</h6> </div> <?php header ( 'Content-Type: text/html; Charset=utf-8' ); $showForm = true; if(isset($_GET['send']) ) { if(!isset($_POST['email']) || empty($_POST['email'])) { $error = "<b>Bitte eine E-Mail-Adresse eintragen</b>"; } else { $statement = $pdo->prepare("SELECT * FROM users WHERE email = :email"); $result = $statement->execute(array('email' => $_POST['email'])); $user = $statement->fetch(); if($user === false) { $error = "<b>Kein Benutzer gefunden</b>"; } else { $passwortcode = random_string(); $statement = $pdo->prepare("UPDATE users SET passwortcode = :passwortcode, passwortcode_time = NOW() WHERE id = :userid"); $result = $statement->execute(array('passwortcode' => sha1($passwortcode), 'userid' => $user['id'])); $empfaenger = $user['email']; $betreff = "Neues Passwort für deinen Account auf https://domain.de"; //Ersetzt hier den Domain-Namen #$from = "From: Alien <email.de>"; //Ersetzt hier euren Name und E-Mail-Adresse $from = "From: email.de"; $url_passwortcode = getSiteURL().'passwortzuruecksetzen.php?userid='.$user['id'].'&code='.$passwortcode; //Setzt hier eure richtige Domain ein $text = 'Hallo '.$user['vorname'].', für deinen Account auf https://domain.de wurde nach einem neuen Passwort gefragt. Um ein neues Passwort zu vergeben, rufe innerhalb der nächsten 24 Stunden die folgende Website auf: '.$url_passwortcode.' Sollte Dir dein Passwort wieder eingefallen sein oder Du hast dieses nicht angefordert, so bitte ignoriere diese E-Mail. Viele Grüße Alien'; //echo $text; mail($empfaenger, $betreff, $text, $from); echo "Ein Link um dein Passwort zurückzusetzen wurde an deine E-Mail-Adresse gesendet."; $showForm = false; } } } if($showForm): ?> Gib hier deine E-Mail-Adresse ein, um ein neues Passwort anzufordern.<br><br> <?php if(isset($error) && !empty($error)) { echo $error; } ?> <form action="?send=1" method="post" accept-charset="utf8"> <label for="inputEmail">E-Mail</label> <input class="form-control" placeholder="E-Mail" name="email" type="email" value="<?php echo isset($_POST['email']) ? htmlentities($_POST['email']) : ''; ?>" required> <br> <input class="btn btn-primary" type="submit" value="Neues Passwort"> </form> <?php endif; //Endif von if($showForm) ?> </div> </div> <!-- /container --> <?php include("templates/footer.inc.php") ?>
-
Ja, wenn man wie ist es einfach. Geht sogar bei der Email-Benachrichtigung nach Fileupload, nur eben nicht mit passwortvergessen. Ich weiß nicht was ich falsch mache. Hab schon sehr viel ausprobiert. Datei ist auch in uft-8 ohne BOM abgespeichert. Das ist es auch nicht. Aber Danke!
-
Danke! Hab ich versucht, ging aber nicht. Das Kontaktformular widerum läuft mit dem PHP-Mailer. Also hab ich den Provider gefragt und er sagte, ich müsse sendmail benutzen, Also hab ich das gemacht, es werden nun die Mails gesendet mit dem Link zur Passwotändererung, aber im Text eben nicht als utf-8. Ist zum Verzweifeln
-
Danke, hab es gefunden
-
Entschuldigung. Ja, mache ich. Aber wo? Ich hab es nicht gefunden