Je dost pravděpodobné, že tato verze funguje.
2 require('lib/funkce.inc.php');
3 zahlavi('Změna hesla');
7 if ($_GET['akce'] == 'heslo') {
8 /** Odeslaný formulář → změníme heslo */
9 $email = split('@', $_POST['jmeno']);
10 $emailOK = eregi("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$",$_POST['jmeno']);
13 $stareHeslo = $_POST['heslo_puvodni'];
14 $noveHeslo1 = $_POST['heslo_nove_1'];
15 $noveHeslo2 = $_POST['heslo_nove_2'];
18 if ($noveHeslo1 == $noveHeslo2) {
20 /** e-mail vyhovuje regulárnímu výrazu → pokusíme se o změnu hesla */
21 htmlOdstavec(sqlZjistiHodnotu("SELECT zmen_heslo(?, ?, ?, ?)", array($login, $domena, $stareHeslo, $noveHeslo1)));
23 htmlOdstavec("Neplatné uživatelské jméno.");
26 htmlOdstavec("Nové heslo je potřeba zadat dvakrát stejně pro kontrolu.");
28 } catch (Exception $e) {
29 htmlOdstavec("Chyba: Nesprávné heslo, nebo uživatel " . htmlspecialchars($login) . "@" . htmlspecialchars($domena) . " neexistuje.");
30 //htmlZnacka('p', 'Chyba: ' . htmlspecialchars($e->getMessage())); // Chybová hláška z SQL
32 htmlTlacitkovyOdkaz("?akce=znovu", "Zpět");
34 /** Zobrazíme formulář */
35 htmlOdstavec("Tento formulář slouží ke změně hesla.");
36 html('<form method="post" action="?akce=heslo">');
38 <label>Jméno: <input type="text" name="jmeno" maxlength="60"/></label><br/>
39 <label>Původní heslo: <input type="password" id="heslo_puvodni" name="heslo_puvodni" maxlength="128"/></label><br/>
40 <label>Nové heslo: <input type="password" id="heslo_nove_1" name="heslo_nove_1" maxlength="128"/></label><br/>
41 <label>Znovu nové: <input type="password" id="heslo_nove_2" name="heslo_nove_2" maxlength="128"/></label><br/>');
42 if (empty($_SERVER['HTTPS'])) {
43 html('<img src="obrazky/zadna_bezpecnost.png" alt="CHYBÍ-SSL" title="Heslo se odesílá nešifrovaně. Přepněte na HTTPS."/>');
45 html('<img src="obrazky/plna_bezpecnost.png" alt="SSL" title="Zabezpečené spojení: HTTPS"/>');
47 html('<button name="prihlasovaciTlacitko" value="submit">Změnit heslo</button>');
48 html('</fieldset></form>');