Zum Inhalt springen

Newloginbox - Fehler bei 'Passwort vergessen'

Erstellt am 3. November 2005 · 6 Antworten · letzte Antwort am 10. Mai 2007

Tags: felogin, Frage

Cesideem ·

Moin,

ich habe bei mir die folgenden Fehler mit der newloginbox:

Ich gebe bei 'Passwort vergessen' eine gültige email-Adresse ein, bestätige diese und bekomme anschließend neben der von der ext. generierten Meldung, daß das PW verschickt worden sei, die folgenden Fehler:

Warning: mysql(): Access denied for user: 'www-data@localhost' (Using password: NO) in /var/kunden/webs/test/test/typo3conf/ext/newloginbox/pi1/class.tx_newloginbox_pi1.php on line 126

Warning: mysql(): A link to the server could not be established in /var/kunden/webs/test/test/typo3conf/ext/newloginbox/pi1/class.tx_newloginbox_pi1.php on line 126

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/kunden/webs/test/test/typo3conf/ext/newloginbox/pi1/class.tx_newloginbox_pi1.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/test/test/typo3conf/ext/newloginbox/pi1/class.tx_newloginbox_pi1.php:126) in /var/kunden/webs/test/typo3_src-3.8.0/typo3/sysext/cms/tslib/class.tslib_fe.php on line 2612

Desweiteren habe ich im Template-Setup noch die folgenden Einträge für Passwort vergessen vorgenommen:

# Konfiguration der NewLoginBox - Passwort vergessen Absender
plugin.tx_newloginbox_pi1 {
email_from = test@domain.de
email_fromName = domain.de Passwort-Reminder
tableParams_details = border="0"
}

Der 1. Fehler tritt unabhängig von den Einträgen im Template-Setup auf.

Das 3. Problem ist, daß ich nach der Bestätigung zwar ne email bekommen, aber dort steht nur, die email-Adresse könne keinem User zugeordnet werden.
-> die email-Adresse ist def. die richtige.
-> allg. Datensammlung auf der Loginseite verweist auf den Sysordner

Jemand ne Idee zu den Fehlern?

Gruß
Cesi

Hille ·

Die Password vergessen geht auf localhost nicht, oder hast Du einen SMTP-Server in dr php.ini eingetragen?
Beim Provider gehts auf jeden Fall.
Nachteil: Die eMail-Adresse darf nicht mehrmals vorkommen, sonst bekommt im Zweifel der falsche FE-User die Zugangsdaten.
Gruß
Hille

Cesideem ·

ja, ich arbeite via localhost...

ich werd es die tage mal auf smtp umstellen. mal sehen, was dann passiert.

Gruß
Cesi

schittl ·

Hallo,

Das 3. Problem ist, daß ich nach der Bestätigung zwar ne email bekommen, aber dort steht nur, die email-Adresse könne keinem User zugeordnet werden.
-> die email-Adresse ist def. die richtige.
-> allg. Datensammlung auf der Loginseite verweist auf den Sysordner

hast du darüber was herausgefunden. Bei mir geht sonst alles. Kann mich anmelden bzw. mein profil bearbeiten, etc. nur wenn ich auf password vergessen drücke und eine gültige email eingebe, kommt zwar eine email, aber in der steht das ich als nutzer nicht existiere, obwohl das ja nicht sein kann!!!

Wo liegt das Problem. Die Nutzer habe ich über das CSV-Import-Tool importiert.

Gruß Falk

vici ·

ist zwar schon ein älterer thread, aber nachdem ich nirgends eine lösung gefunden habe, möchte ich mich dem letzten post anschliessen.

bei der eingabe einer email-adresse bei passwort vergessen, kommt bei mir auch eine email an, in der steht, dass kein benutzername für die betreffende email-adresse bestünde.

wie wurde das problem von den anderen hier gelöst?
ich habe übrigens schon den richtigen sys-ordner im header der seite, auf der das plugin eingefügt ist, angegeben. das kann es wohl nicht sein...

schon mal vielen dank für eure hilfe!

vici ·

oh je.

ich habe meinen fehler sebst noch gefunden.
bei dem einen benutzer, mit dem ich die "passwort vergessen"-funktion testen wollte, hat es mir irgendwie tatsächlich die email-adresse gelöscht.
(wahrscheinlich habe ich aus versehen diese zeile gelöscht...)

so konnte die email-adresse ja nicht gefunden werden.
die ext. läuft sonst tadellos!

grüsse, vici

n1gHt ·

Bin zufällig auf das Thema gekommen.

Ich kann euch ja mal veraten wo das Problem liegt.

Ihr verwendet sicher die EXT newloginbox + kb_md5fepw. Darin liegt das Problem!
Die EXT kb_md5fepwverwendet immer den Sysfolder den ihr der Rootpage unter Allgemeine Datensatzsammlung angegeben habt.

Solltet ihr nun die Benutzer jedoch mit der EXT sr_feuser_register registrieren und editieren habt ihr dort wohl einen anderen Sysfolder angegeben.

Zur Lösung:

Entweder ihr speichert eure User in den SysOrdner der unter Datensatzsammlung gewählt wurde oder ihr editiert die Ext kb_md5fepw wie folgt:

Datei class.tx_kbmd5fepw_newloginbox.php

<?php
/***************************************************************
*  Copyright notice
*  
*  (c) 2005 Kraft Bernhard (kraftb@gmx.net)
*  All rights reserved
*	Copyright of original script:
*  (c) 2002-2004 Kasper Skrhj (kasper@typo3.com)
*  All rights reserved
*
*  This script is part of the Typo3 project. The Typo3 project is 
*  free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License, or
*  (at your option) any later version.
* 
*  The GNU General Public License can be found at
*  http://www.gnu.org/copyleft/gpl.html.
* 
*  This script is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/** 
 * Extending the Better login box with supercallenge mechanism (using
 * the same md5.js as the BE)
 *
 * $Id$
 *
 * @author	Kraft Bernhard (kraftb@gmx.net)
 */
/**
 * [CLASS/FUNCTION INDEX of SCRIPT]
 */
require_once(t3lib_extMgm::extPath('kb_md5fepw').'class.tx_kbmd5fepw_funcs.php');
require_once(PATH_tslib.'class.tslib_pibase.php');
class tx_kbmd5fepw_newloginbox extends tslib_pibase {

	function forgotPassword(&$params, &$ref) {
		$this->conf = $ref->conf;
		$this->pi_setPiVarDefaults();
		$this->scriptRelPath = 'pi1/class.tx_kbmd5fepw_newloginbox.php';
		$this->extKey = 'kb_md5fepw';
		$this->pi_loadLL(1);		// Loading the LOCAL_LANG values
		
		
		/**		
		* @author	Thomas Cachej (thomascachej@yahoo.de)
		* 
		* Edit: uses $this->conf[storagePid] instead $d=$GLOBALS['TSFE']->getStorageSiterootPids();
		* The password forgotten storagePid is set by plugin.tx_newloginbox_pi1.storagePid
		*/
		
		$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid, username, password', 'fe_users', 'email='.$GLOBALS['TYPO3_DB']->fullQuoteStr(trim($ref->piVars['DATA']['forgot_email']), 'fe_users').' AND pid='.intval($this->conf[storagePid]).' '.$GLOBALS['TSFE']->cObj->enableFields('fe_users'));
		if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))	{
			$new_password = tx_kbmd5fepw_funcs::generatePassword(intval($GLOBALS['TSFE']->config['plugin.']['tx_newloginbox_pi1.']['defaultPasswordLength'])?intval($GLOBALS['TSFE']->config['plugin.']['tx_newloginbox_pi1.']['defaultPasswordLength']):5);
			$GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users', 'uid='.$row['uid'], array('password' => md5($new_password)));
			$msg=sprintf($this->pi_getLL('forgot_password_pswmsg','',1),trim($this->piVars['DATA']['forgot_email']),$row['username'],$new_password);
		} else {
			$msg=sprintf($this->pi_getLL('forgot_password_no_pswmsg','',1),trim($this->piVars['DATA']['forgot_email']));
		}
		$params['msg'] = $msg;
		return true;
	}
	function loginFormOnSubmit(&$params, &$ref) {
		$js = '
	function superchallenge_pass(form) {
		var pass = form.pass.value;
		if (pass) {
			var enc_pass = MD5(pass);
			var str = form.user.value+":"+enc_pass+":"+form.challenge.value;
			form.pass.value = MD5(str);
			return true;
		} else {
			return false;
		}
	}
';
		$GLOBALS['TSFE']->JSCode .= $js;
		$GLOBALS['TSFE']->additionalHeaderData['tx_kbmd5fepw_newloginbox'] = '<script language="JavaScript" type="text/javascript" src="typo3/md5.js"></script>';
		$chal_val = md5(time().getmypid());
		$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_kbmd5fepw_challenge', array('challenge' => $chal_val, 'tstamp' => time()));
		$onSubmit =	'superchallenge_pass(this)';
		$hidden = '<input type="hidden" name="challenge" value="'.$chal_val.'">';
		return array($onSubmit, $hidden);
	}

}

?>

Das hier dann in ein Template und das wars. Die StorageId muss mit dem Sysfolder , der eure User enthält, übereinstimmen.

#
# Konstante fuer die LoginBox im FE : ID des SysFolders mit FE-Benutzern
#
plugin.tx_newloginbox_pi1.storagePid = 117