Hallo,
in einem Shop gibt es besondere User, die beim ersten Login (sie werden im Backend angelegt) vor dem Shoppen die Rechnungsadresse ausfüllen müssen.
Das funktioniert wunderbar.
Sie sollen aber auch selbst ein neuen Passwort vergeben.
Das steht im Form im Quelltext:
<input type="hidden" value="6" id="passwordLength" name="passwordLength">
<input type="hidden" value="yes" name="firstloginpassword">
und das habe ich von ‘Passwort ändern’ übernommen:
<li >
<label class="req" for="passwordNew">Neues Passwort:</label>
<input type="password" id="passwordNew" name="password_new" class="js-oxValidate js-oxValidate_notEmpty js-oxValidate_length js-oxValidate_match textbox">
<p class="oxValidateError">
<span class="js-oxError_notEmpty">Bitte die Adressenfelder ausfüllen!</span>
<span class="js-oxError_length">Fehler: Ihr Passwort ist zu kurz.</span>
<span class="js-oxError_match">Passwörter stimmen nicht überein!</span>
</p>
</li>
<li >
<label class="req" for="passwordNewConfirm">Passwort wiederholen:</label>
<input type="password" id="passwordNewConfirm" name="password_new_confirm" class="js-oxValidate js-oxValidate_notEmpty js-oxValidate_length js-oxValidate_match textbox">
<p class="oxValidateError">
<span class="js-oxError_notEmpty">Bitte die Adressenfelder ausfüllen!</span>
<span class="js-oxError_length">Fehler: Ihr Passwort ist zu kurz.</span>
<span class="js-oxError_match">Passwörter stimmen nicht überein!</span>
</p>
</li>
Ein Modul ist so eingebunden:
oxUser=>firstlogin/password
und sieht so aus:
class password extends password_parent {
public function save()
{
$retVal = password_parent::save();
if(oxConfig::getParameter( 'firstloginpassword') == 'yes')
{
if( oxConfig::getParameter( 'password_new') != "")
{
$myPWUser = $this->getUser();
$sNewPass = oxConfig::getParameter( 'password_new', true );
$myPWUser->setPassword( $sNewPass );
$myPWUser->save();
}
}
return $retVal;
}
}
Die Prüfung im Browser (zu kurzes PW oder ungleiche PW) funktioniert.
Allerding wird das neue PW nicht abgespeichert.
Ich habe schon viel ausprobiert, aber die Lösung noch nicht gefunden.
Was mache ich falsch?
Gruß
Thoni