Vygenerování nového hesla po kliknutí na tlačítko

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
.:M@rt!n:.
Člen | 201
+
0
-

Ahoj,
potřeboval bych u formuláře přidat tlačítka, které mě po kliknutí na něj vygeneruje nové heslo a odesle ho uzivateli na email. Zkoušel jsem něco takového ale bez úspěchu:

$form->addSubmit('newPass', 'Zaslat nové heslo')
                ->onClick[] = function () use ($form) {
            $input = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $password = '';
            $size = 8;
            for ($i = 0; $i < $size; $i++) {
                $password .= $input[mt_rand(0, 60)];
            }

            $mail = new Message;
            $mail->setFrom('helpdesk@firmyzivnostnici.cz', 'Helpdesk FirmyŽivnostníci.cz')
                    ->addTo($form->values->email)
                    ->setSubject('Registrace do systému')
                    ->setBody("Dobrý den,\nbyl Vám vytvořen účet pro přihlášení do intranetu.\n"
                            . "Vaše přihlašovací jméno: " . $form->values->username . "\n"
                            . "Vaše heslo: " . $password . "Heslo si můžete změnit po přihlášení.")
                    ->send();
        };

Jak by to šlo vyředšit lépe? díky

Aurielle
Člen | 1281
+
0
-

Co znamená ‚bez úspěchu‘? Zpráva se neodešle?

.:M@rt!n:.
Člen | 201
+
0
-

laděnka hlásí

mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. a51sm6842099eeh.8 - gsmtp search►

na řádku ->send();

petr.pavel
Člen | 535
+
0
-

To vypadá na něco specifického SMTP serveru, ke kterému se snažíš připojit.

Mimochodem, pro generování náhodného hesla doporučuji substr(str_shuffle($input), 0, $size);

.:M@rt!n:.
Člen | 201
+
0
-

nj jenze pak en samí kod mám jeste u vytváření nového uzivatel a tam se mu heslo na mail odesle v poradku…

Ale tam to nemám navešený na tlačítku ale proste se po potvrzení vytvoreni noveho uzivatele odesle.

Editoval .:M@rt!n:. (26. 11. 2013 10:46)

Patrik Votoček
Člen | 2221
+
0
-

Možná dočasný bug SMTP serveru…

<OT>
Heslo doporučuju generovat pomocí: Nette\Utils\Strings::random
</OT>

.:M@rt!n:.
Člen | 201
+
0
-

JJ asi byl protože už to jde. Ale mám ted problém s tím že po kliknutí na mail mě sice odejte nové heslo ale zároven prijde email s tim ze jsem zmenil udaje uzivatele jelikoz na komponente mám onSucces redirect na funkci pro odeslání dalšího mailu. Není nejaký lepší způsob jak vygenerovat nové heslo po kliknutí na tlačítko a odeslat na mail uživateli? Díky

Oli
Člen | 1215
+
0
-

Změnil bych celej koncept nového hesla… Hesla by se neměli posílat mailem. Neznám nikoho, kdo si je potom změní. Hashe hesla Develcz 2013 (podstatný je 28. slide) ;-)