Je dost pravděpodobné, že tato verze funguje.
1.1 --- a/php/heslo/index.php Wed May 06 00:51:41 2009 +0200
1.2 +++ b/php/heslo/index.php Wed May 06 01:47:43 2009 +0200
1.3 @@ -1,26 +1,54 @@
1.4 -<?php
1.5 -require('lib/funkce.inc.php');
1.6 -zahlavi('Změna hesla');
1.7 +<?php
1.8 +require('lib/funkce.inc.php');
1.9 +zahlavi('Změna hesla');
1.10
1.11
1.12
1.13 if ($_GET['akce'] == 'heslo') {
1.14 - $login = "uzivatel_neexistuje";
1.15 - $domena = "veverka.ch";
1.16 - $stareHeslo = "heslo chybí";
1.17 - $noveHeslo = "a nové nebude";
1.18 + /** Odeslaný formulář → změníme heslo */
1.19 + $email = split('@', $_POST['jmeno']);
1.20 + $emailOK = eregi("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$",$_POST['jmeno']);
1.21 + $login = $email[0];
1.22 + $domena = $email[1];
1.23 + $stareHeslo = $_POST['heslo_puvodni'];
1.24 + $noveHeslo1 = $_POST['heslo_nove_1'];
1.25 + $noveHeslo2 = $_POST['heslo_nove_2'];
1.26
1.27 try {
1.28 - htmlOdstavec(sqlZjistiHodnotu("SELECT zmen_heslo(?, ?, ?, ?)", array($login, $domena, $stareHeslo, $noveHeslo)));
1.29 + if ($noveHeslo1 == $noveHeslo2) {
1.30 + if ($emailOK) {
1.31 + /** e-mail vyhovuje regulárnímu výrazu → pokusíme se o změnu hesla */
1.32 + htmlOdstavec(sqlZjistiHodnotu("SELECT zmen_heslo(?, ?, ?, ?)", array($login, $domena, $stareHeslo, $noveHeslo1)));
1.33 + } else {
1.34 + htmlOdstavec("Neplatné uživatelské jméno.");
1.35 + }
1.36 + } else {
1.37 + htmlOdstavec("Nové heslo je potřeba zadat dvakrát stejně pro kontrolu.");
1.38 + }
1.39 } catch (Exception $e) {
1.40 - htmlOdstavec("Chyba: Nesprávné heslo, nebo uživatel " . htmlspecialchars($login) . "@" . htmlspecialchars($domena) . " neexistuje.");
1.41 - // htmlZnacka('p', 'Chyba: ' . htmlspecialchars($e->getMessage())); // Chybová hláška z SQL
1.42 - htmlTlacitkovyOdkaz("?akce=znovu", "Zpět");
1.43 + htmlOdstavec("Chyba: Nesprávné heslo, nebo uživatel " . htmlspecialchars($login) . "@" . htmlspecialchars($domena) . " neexistuje.");
1.44 + //htmlZnacka('p', 'Chyba: ' . htmlspecialchars($e->getMessage())); // Chybová hláška z SQL
1.45 }
1.46 -else {
1.47 - htmlOdstavec("Tento formulář slouží ke změně hesla.");
1.48 + htmlTlacitkovyOdkaz("?akce=znovu", "Zpět");
1.49 +} else {
1.50 + /** Zobrazíme formulář */
1.51 + htmlOdstavec("Tento formulář slouží ke změně hesla.");
1.52 + html('<form method="post" action="?akce=heslo">');
1.53 + html('<fieldset>
1.54 + <label>Jméno: <input type="text" name="jmeno" maxlength="60"/></label><br/>
1.55 + <label>Původní heslo: <input type="password" id="heslo_puvodni" name="heslo_puvodni" maxlength="128"/></label><br/>
1.56 + <label>Nové heslo: <input type="password" id="heslo_nove_1" name="heslo_nove_1" maxlength="128"/></label><br/>
1.57 + <label>Znovu nové: <input type="password" id="heslo_nove_2" name="heslo_nove_2" maxlength="128"/></label><br/>');
1.58 + if (empty($_SERVER['HTTPS'])) {
1.59 + html('<img src="obrazky/zadna_bezpecnost.png" alt="CHYBÍ-SSL" title="Heslo se odesílá nešifrovaně. Přepněte na HTTPS."/>');
1.60 + } else {
1.61 + html('<img src="obrazky/plna_bezpecnost.png" alt="SSL" title="Zabezpečené spojení: HTTPS"/>');
1.62 + }
1.63 + html('<button name="prihlasovaciTlacitko" value="submit">Změnit heslo</button>');
1.64 + html('</fieldset></form>');
1.65 +
1.66 }
1.67 -
1.68 +
1.69 zapati();
1.70 ?>
1.71 -
1.72 \ No newline at end of file
1.73 +
2.1 Binary file php/heslo/obrazky/plna_bezpecnost.png has changed
3.1 Binary file php/heslo/obrazky/polovicni_bezpecnost.png has changed