Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 11.05.08, 16:23
Forum Zuschauer
 
Registriert seit: 11.05.08
Alter: 25
Beiträge: 2
Ext: Newloginbox Passwort nur an registrierte E-Mail versenden

Hallo,

Ich nutze die Extension "NewLoginBox". Über die "Passwort vergessen" Funktion kann man sicht sein Passwort, an die im Typo3 hinterlegten E-Mail Adresse, zusenden lassen. Das funktioniert auch soweit ganz gut.

Da Problem ist jedoch, das E-Mails auch an Adressen versendet, die keinem User zugewiesen sind. Beim Klick auf den "Passwort zusenden" Button, müsste geprüft werden, ob die E-Mail Adresse im Typo3 existiert und einem Nutzer zugewiesen ist oder nicht und nur dann eine E-Mail verschickt, wenn dies der Fall ist.

Das würde unnötigen Spam verhindern.

Ist dies möglich?

Vielen Dank
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 12.05.08, 19:19
Benutzerbild von josDesign
TYPO3 Forum Team
Administrator
 
Registriert seit: 24.07.06
Alter: 23
Beiträge: 1.695
josDesign eine Nachricht über Skype™ schicken

Ich habe das Problem nun auch bei einer Seite von mir. Evtl. reicht es schon ein Captcha einzubauen, aber ist das ohne viel Programmkenntnisse möglich?
__________________
Bitte markiere Deinen Thread als Gelöst, wenn er es ist! Wie geht das? Hast Du ihn eventl. selbst gelöst? Dann lass uns an der Lösung teilhaben!
Das Anzeigen von Typoscript in Beiträgen steuern
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 12.05.08, 20:22
Forum Freak
 
Registriert seit: 26.01.07
Beiträge: 502

Setzt euch doch mal mit dem Entwickler der Extension auseinander und teilt im dieses Problem mit. Denke mal das Problem wird über kurz oder lang auch noch andere Leute treffen.
__________________
mfg
Günni
City-Tiger - Online durch die Straßen tigern
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 13.05.08, 08:23
Benutzerbild von josDesign
TYPO3 Forum Team
Administrator
 
Registriert seit: 24.07.06
Alter: 23
Beiträge: 1.695
josDesign eine Nachricht über Skype™ schicken

Bin schon dabei eine Mail zu verfassen
__________________
Bitte markiere Deinen Thread als Gelöst, wenn er es ist! Wie geht das? Hast Du ihn eventl. selbst gelöst? Dann lass uns an der Lösung teilhaben!
Das Anzeigen von Typoscript in Beiträgen steuern
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 14.05.08, 22:52
Forum Zuschauer
 
Registriert seit: 11.05.08
Alter: 25
Beiträge: 2
Lösung

So, hab zwar auch eine Mail an den Entwickler dieser Extension verfasst, aber trotzdem mal die extension mit meinen wenigen php Kenntnissen angepasst. Die Datei "class.tx_newloginbox_pi1.php" muss angepasst werden. Zu finden unter "httpdocs/typo3conf/ext/newloginbox/pi1/"
PHP-Code:
if ($workingData['forgot_email'] && t3lib_div::validEmail($workingData['forgot_email'] ) ) {

                    
$templateMarker '###TEMPLATE_FORGOT_SENT###';

                    
$res $GLOBALS['TYPO3_DB']->exec_SELECTquery(
                    
'username, password',
                        
'fe_users',
                        
sprintf('email=\'%s\' and pid=\'%d\' %s',
                        
addslashes($workingData['forgot_email'] ),
                        
intval($spid['_STORAGE_PID'] ),
                        
$this->cObj->enableFields('fe_users') ) );

                    if (
$GLOBALS['TYPO3_DB']->sql_num_rows($res ) ) {
                        
// E-Mail found, resultset not empty
                        
$row $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res );
                        
$msg sprintf($this->pi_getLL('forgot_password_pswmsg'''0),
                            
$workingData['forgot_email'], $row['username'], $row['password']);
                        
//BoInsert
                        
$this->cObj->sendNotifyEmail($msg$workingData['forgot_email'], ''$this->conf['email_from'], $this->conf['email_fromName'], $this->conf['replyTo']);//Only if E-Mail found
                        //Status message
                        
$markerArray['###STATUS_MESSAGE###'] = sprintf($this->pi_getLL('forgot_password_emailSent'''1),
                        
'<em>' htmlspecialchars($workingData['forgot_email']) . '</em>');
                        
$markerArray['###FORGOT_PASSWORD_BACKTOLOGIN###'] = $this->pi_linkTP_keepPIvars($this->pi_getLL('forgot_password_backToLogin'''1), array('forgot' => ''));
                        
//EoInsert
                    
} else {
                        
// E-Mail not found, resultset empty
                        
$msg sprintf($this->pi_getLL('forgot_password_no_pswmsg'''0),
                            
$workingData['forgot_email']);
                        
//BoInsert    
                        
$markerArray['###STATUS_MESSAGE###'] = sprintf($this->pi_getLL('forgot_password_noEmail'''1),"forgot_password_noEmail"
                        '<em>' 
htmlspecialchars($workingData['forgot_email']) . '</em>');//<- adapt locallang.xml with an additional tag 
                        
$markerArray['###FORGOT_PASSWORD_BACKTOLOGIN###'] = $this->pi_linkTP_keepPIvars($this->pi_getLL('forgot_password_backToLogin'''1), array('forgot' => ''));
                        
//EoInsert
                    
}

                    
// Hook (used by kb_md5fepw extension by Kraft Bernhard <kraftb@gmx.net>)
                    
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['forgotEmail'])) {
                        
$_params = array (
                        
'msg' => &$msg,
                            );
                        foreach(
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['newloginbox']['forgotEmail'] as $funcRef) {
                            
t3lib_div::callUserFunction($funcRef$_params$this);
                        }
                    }

                    
//$this->cObj->sendNotifyEmail($msg, $workingData['forgot_email'], '', $this->conf['email_from'], $this->conf['email_fromName'], $this->conf['replyTo']);

                    //$markerArray['###STATUS_MESSAGE###'] = sprintf($this->pi_getLL('forgot_password_emailSent', '', 1),
                    //    '<em>' . htmlspecialchars($workingData['forgot_email']) . '</em>');
                    //$markerArray['###FORGOT_PASSWORD_BACKTOLOGIN###'] = $this->pi_linkTP_keepPIvars($this->pi_getLL('forgot_password_backToLogin', '', 1), array('forgot' => ''));
                

Ich hoffe meine Kommentare sind schon selbsterklärend, aber ich versuche die funktionsweise etwas näher zu bringen.

Die Variable $res erhält durch die Select Abfrage eine Liste mit Userdaten, wenn die E-Mail Adresse gefunden wird. Wenn keine passende Adresse gefunden wird ist das Resultset leer.

Hier wird nun geprüft ob das Resultset Daten enthält. Wenn ja werden die Anweisungen in der Abfrage ausgeführt.
PHP-Code:
if ($GLOBALS['TYPO3_DB']->sql_num_rows($res ) ) 
In diesem Fall wird die E-Mail gesendet und die Status Message ausgegeben.

Im Else-Zweig wird dann keine E-Mail gesendet, jedoch möchte man eine Fehlermeldung erhalten. Um das Konzept der Sprachdatei beizubehalten habe ich ein neues Tag in der "locallang.xml" unter den jeweiligen Sprachen eingefügt, die verwendet werden sollen. Der Ausschnitt der Funktion zeigt den Aufruf für die "locallang.xml".
PHP-Code:
$markerArray['###STATUS_MESSAGE###'] = sprintf($this->pi_getLL('forgot_password_noEmail'''1),
                        
'<em>' htmlspecialchars($workingData['forgot_email']) . '</em>'); 
Der übergebene Parameter 'forgot_password_noEmail' ist mein neuer XML Tag, der in der locallang hinzugefügt werden muss.

Folgender Ausschnitt zeigt einen Teil des Deutschen Keys
Code:
            <label index="forgot_password_noEmail">Ihre E-Mail wurde nicht gefunden</label>
            <label index="forgot_password_emailSent">Ihr Passwort wurde nun zur Email Adresse %s gesendet</label>
            <label index="forgot_password_backToLogin">Zurück zum Anmeldeformular</label>
Die Kommentare sollten natürlich wieder entfernt werden. Hoffe die kurze Beschreibung war hilfreich.

Geändert von grinsechris (14.05.08 um 22:57 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
NEWLOGINBOX - Passwort vergessen - Mail Text ändern kerim80 Alle anderen Extensions 1 20.04.08 15:26
Direct Mail - Newsletter automatisch versenden 4square Direct Mail 2 04.12.07 12:03
commerce: Attribute in der Mail mit versenden zefix commerce 1 02.11.07 10:00
Direct Mail - Versenden nicht möglich und keine Kategorien Jan Gabriel Direct Mail 3 13.03.07 15:17
Probleme mit versenden einer mail obeste Alle anderen Extensions 0 28.08.06 05:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS