Modul: Change E-Mail/Änderung E-Mail
Modul: Change E-Mail/Änderung E-Mail
Hallo,
habe das Newslettermodul von HerrB im Einsatz, um einen Login zu realisieren. Jetzt würde ich den Nutzern gerne die Möglichkeit geben, Ihre eMailadresse in einem Web-Formular ändern zu können, ohne den Link, den man im Newslettererhält.
Kann mir jemand helfen?
Dankeschöööön.
habe das Newslettermodul von HerrB im Einsatz, um einen Login zu realisieren. Jetzt würde ich den Nutzern gerne die Möglichkeit geben, Ihre eMailadresse in einem Web-Formular ändern zu können, ohne den Link, den man im Newslettererhält.
Kann mir jemand helfen?
Dankeschöööön.
Err, grundsätzlich ja, mir fehlt nur die Zeit.Kann mir jemand helfen?
Ein entsprechendes Modul existiert noch nicht. Es wäre aber relativ leicht möglich, so etwas zu realisieren. Aber vielleicht gelingt es on the fly...
Und schon gibt es eins:
Das Modul ist nur für Contenido V4.6.x ff geeignet. Es ist außerdem "on-the-fly" gecoded, wenn es also nicht auf Anhieb funktioniert - tschuldigung (Bananen-Software). Ich hübsche das Ganze auch nochmal bei Gelegenheit, die CSS-Styles fehlen und die Übersetzung muss man zunächst selbst vornehmen...
Das Modul muss bei einem Artikel eingesetzt werden, der sich in einer geschützen Kategorie befindet. Alle Frontendnutzer sollten Zugriff auf diese Kategorie haben.
Wichtig: Das Modul funktioniert nur, wenn FrontendUser-Account = E-Mail-Adresse des Nutzers! Das ist bei Verwendung der Newsletter-Module (mit FrontendLink) automatisch der Fall.
Wichtig: Ändert sich die E-Mail-Adresse und damit auch der Frontend-Account, muss danach ein Logout erfolgen - ist vielleicht noch nicht gleich dabei (sonst "fliegt" der Nutzer bei jedem nächsten Klick aus dem geschützten Bereich). Auch wäre es sinnvoll, bei Änderung der E-Mail-Adresse wieder eine Bestätigung via E-Mail zu erfordern - ist noch nicht drin. Dito Template-Unterstützung.
Beschreibung:
Code: Alles auswählen
Change E-Mail 0.9
HerrB, 29.12.2006
Code: Alles auswählen
<?php
cInclude("classes", "class.htmlelements.php");
cInclude("classes", "class.newsletter.recipients.php");
cInclude("classes", "class.frontend.users.php");
if ($auth->auth[uid] !== "nobody")
{
if ($_REQUEST["action"] == "save")
{
$sMessage = "";
if ($_REQUEST["txtMail1"] !== "" || $_REQUEST["txtMail2"] !== "")
{
$_REQUEST["txtMail1"] = stripslashes($_REQUEST["txtMail1"]);
$_REQUEST["txtMail2"] = stripslashes($_REQUEST["txtMail2"]);
if ($_REQUEST["txtMail1"] == "" || $_REQUEST["txtMail2"] == "") {
$sMessage = mi18n("If changing the e-mail please specify new e-mail address and retype the new address to avoid typos.");
} else if ($_REQUEST["txtMail1"] !== $_REQUEST["txtMail2"]) {
$sMessage = mi18n("The new e-mail address and the retyped address must be equal.");
} else if ($_REQUEST["txtMail1"] > 100) {
$sMessage = mi18n("Please specify a new e-mail with 100 characters max.");
} else if (!isValidMail($_REQUEST["txtMail1"]) || strpos($_REQUEST["txtMail1"], ";") >= 0 || strpos($_REQUEST["txtMail1"], ",") >= 0) {
$sMessage = mi18n("Please specify a valid e-mail address.");
}
if ($sMessage == "") {
$oFrontendUser = new FrontendUser;
$oFrontendUser->loadByPrimaryKey($auth->auth[uid]);
$sOldMail = $oFrontendUser->get("username"); // $auth->auth[uname] would be the same, I know...
$oFrontendUser->set("username", strtolower($_REQUEST["txtMail1"]));
$oFrontendUser->store();
unset($oFrontendUser);
$oRecipients = new RecipientCollection;
$oRecipients->setWhere("idclient", $client);
// $oRecipients->setWhere("idlang", $lang); // Only for one language?
$oRecipients->setWhere("email", $sOldMail);
$oRecipients->query();
while ($oRecipient = $oRecipients->next()) {
$oRecipient->set("email", strtolower($_REQUEST["txtMail1"]));
$oRecipient->store();
}
unset($sOldMail);
unset($oRecipient);
unset($oRecipients);
$sMessage = mi18n("E-Mail has been changed. Please logout and login to use the new settings.");
} else {
$sMessage = '<font color="#FF0000">'.$sMessage.'</font>';
}
}
}
echo '<form name="frmProfile" method="post" action="'.$auth->url().'">'."\n";
echo ' <table class="special" cellspacing="0"> '."\n";
echo ' <tr>'."\n";
echo ' <td class="detail_headline" colspan="2">'.mi18n("Change email:").'</td>'."\n";
echo ' </tr>'."\n";
if ($sMessage != "") {
echo ' <tr>'."\n";
echo ' <td class="detail_text" colspan="2">'.$sMessage.'</td>'."\n";
echo ' </tr>'."\n";
}
$oTxtMail1 = new cHTMLTextbox("txtMail1", $_REQUEST["txtMail1"], 24);
echo ' <tr>'."\n";
echo ' <td class="detail_text" style="width: 100px;">'.mi18n("New email:").'</td>'."\n";
echo ' <td class="detail_text">'.$oTxtMail1->render().'</td>'."\n";
echo ' </tr>'."\n";
$oTxtMail2 = new cHTMLTextbox("txtMail2", $_REQUEST["txtMail2"], 24);
echo ' <tr>'."\n";
echo ' <td class="detail_text" style="width: 100px;">'.mi18n("Retype email:").'</td>'."\n";
echo ' <td class="detail_text">'.$oTxtMail2->render().'</td>'."\n";
echo ' </tr>'."\n";
$oHidAction = new cHTMLHiddenField ("action", "save");
$oBtnSubmit = new cHTMLButton ("btnSubmit", mi18n("OK"));
echo ' <tr>'."\n";
echo ' <td class="detail_text" style="width: 100px;"> </td>'."\n";
echo ' <td class="detail_text">'.$oHidAction->render().$oBtnSubmit->render().'</td>'."\n";
echo ' </tr>'."\n";
echo ' </table>'."\n";
echo '</form>'."\n";
}
?>
Gruß
HerrB
Zuletzt geändert von HerrB am So 31. Dez 2006, 14:47, insgesamt 3-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Habe die Überschrift Deines Beitrags angepasst, damit man es ggf. besser findet.
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Unglaublich...Es waren zwei ";" und eine ")" zu viel
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Hallo HerrB,
ich habe das Modul soeben bei unserer Vereinswebseite eingebunden.
Es zeigt zwar keine rote Lampe, aber die neue Mailadresse wird irgendwie nicht angenommen.
Trotz gleicher Angabe der neuen Mailadresse erscheint die deutsche Übersetzung ->
Bitte geben Sie eine gültige E-Mail Adresse ein.
Merci vorab.
/mr
ich habe das Modul soeben bei unserer Vereinswebseite eingebunden.
Es zeigt zwar keine rote Lampe, aber die neue Mailadresse wird irgendwie nicht angenommen.
Trotz gleicher Angabe der neuen Mailadresse erscheint die deutsche Übersetzung ->
Bitte geben Sie eine gültige E-Mail Adresse ein.
Lösungsvorschläge / Ideen?} else if (!isValidMail($_REQUEST["txtMail1"]) || strpos($_REQUEST["txtMail1"], ";") >= 0 || strpos($_REQUEST["txtMail1"], ",") >= 0) {
$sMessage = mi18n("Please specify a valid e-mail address.");
Merci vorab.
/mr
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
Hallo Herr B,
ich habe den original Code von oben genommen.
Leider wird die neu eingetragene Mailadresse (sie existiert noch nicht in der Datenbank) nicht übernommen.
Bleibt immer hängen bei: Please specify a valid e-mail address.
@Laurin: läuft das Modul bei Dir problemlos durch ?
Danke für die Rückmeldung / Unterstützung.
/m
ich habe den original Code von oben genommen.
Leider wird die neu eingetragene Mailadresse (sie existiert noch nicht in der Datenbank) nicht übernommen.
Bleibt immer hängen bei: Please specify a valid e-mail address.
@Laurin: läuft das Modul bei Dir problemlos durch ?
Danke für die Rückmeldung / Unterstützung.
/m
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
Nehmt doch testweise mal Teile der Überprüfung raus, z.B. auf Komma oder Semikolon. Wenn selbst isValidMail ein false ausgibt, könnte es u.U. an der Funktion liegen, da bräuchte ich mal eine Beispiel-E-Mail-Adresse (aber bitte zunächst das andere testen).
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net