phpmailer Link in E-Mail fehlerhaft versendet

yxyx

Grünschnabel
Hallo,

Ich programmiere zur zeit ein kleines Forum. Bei der Registrierung soll der Benutzer eine Verifizierungsemail bekommen. Hierfür nutze ich den phpmailer. Dies klappt auch ganz wunderbar, nur leider ist der Link in der E-Mail fehlerhaft. Die User_Id fehlt einfach... http://localhost/forum/index.php?page=verify&user_id &verify_code=5c4f241051f091.62764542 statt http://localhost/forum/index.php?page=verify&user_id=20&verify_code=5c4f241051f091.62764542
Wenn ich mir $mail->Body auf meiner Webseite ausgeben lasse, wird er jedoch korrekt angezeigt.
Hier mein PHP-Script zum Versenden der E-Mail:
Code:
class userControl
{
//weitere Methoden
private static function sendVerifyEmail($userId)//Methode zum versenden der Verifizierungsemail
        {
            $userModel = new userModel($userId);
            if($userModel->getVerified() == false)//Überprüfung, dass die E-Mail noch nicht verifiziert ist
            {
                $userModel->prepareVerify(true);//Generieren des Verifizierungscodes
                $userModel->update();//Speicherung des Verifizierungscodes in der Datenbank
                $verifyLink = "http://localhost/forum/index.php?page=verify&user_id=".$userModel->getUserId()."&verify_code=".$userModel->getVerifyCode();//Verifizierungslink wird zusammengesetzt
                $generalEmailSettingsModel = new generalEmailSettingsModel();//enthält die Daten zum versenden von E-Mails(Login, Host, ...)
                $mail = new phpmailer();
                $mail->CharSet = 'UTF-8';
                $mail->IsSMTP();
                $mail->Host = $generalEmailSettingsModel->host;
                //echo "|host: ".$generalEmailSettingsModel->host."|<br/>";
                $mail->SMTPAuth = true;
                $mail->Username = $generalEmailSettingsModel->username;
                //echo "|username: ".$generalEmailSettingsModel->username."|<br/>";
                $mail->Password = $generalEmailSettingsModel->password;
                //echo "|password: ".$generalEmailSettingsModel->password."|<br/>";
                $mail->From = $generalEmailSettingsModel->address;
                //echo "|address: ".$generalEmailSettingsModel->address."|<br/>";
                $mail->FromName = $generalEmailSettingsModel->fromname;
                //echo "|fromname: ".$generalEmailSettingsModel->fromname."|<br/>";
                $mail->AddAddress($userModel->getEmail(),$userModel->getName());
                //echo "|addaddress: ".$userModel->getEmail()."|".$userModel->getName()."|<br/>";
                $mail->WordWrap = 50;
                $mail->IsHTML(true);
                $mail->Subject = "Forum - Bitte verifiziere deine E-Mail Addresse";
                $mail->Body = "<body>
                <b>Hallo ".$userModel->getName().",</b><br/>
                Vielen Dank für deine Registrierung. Um diese abzuschließen klicke bitte auf folgenden Link: <a href=\"".$verifyLink."\">".$verifyLink."</a><br/>
                Falls du das nicht warst, kannst du diese E-Mail ignorieren.<br/>
                <i>LG, das Forenteam</i>
                </body>";
                echo "|".$mail->Body."|";//Ausgabe des Mailbodys -> Link wird korrekt angezeigt
                echo "|".$verifyLink."|";//Ausgabe des Links -> wird korrekt angezeigt
                if($mail->Send() == true)//E-Mail wird gesendet
                {
                    return true;
                }
                else
                {
                    //echo $mail->ErrorInfo;
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
//weitere Methoden
}

Ich hoffe ihr könnt mir helfen

Mit freundlichen Grüßen
yxyx
 
Ich habe es nochmal so verändert, dass die UserId im Link als Hash enthalten ist. Komischerweise funktioniert es jetzt...
LG yxyx
 
Zurück