php/heslo/index.php
author František Kučera <franta-hg@frantovo.cz>
Wed, 06 May 2009 13:12:03 +0200
changeset 12 38aadc7c6386
parent 11 c1fd9aa6a6af
child 15 ad391f838b9d
permissions -rwxr-xr-x
Licence AGPLv3, Vyhození zbytečných hlaviček z HTML, aktuální verze schématu, .htaccess (kvůli escapování)
     1 <?php                                                     
     2 require('lib/funkce.inc.php');                            
     3 zahlavi('Změna hesla');                                   
     4 
     5 
     6 
     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']);
    11     $login = $email[0];                                                                      
    12     $domena = $email[1];                                                                     
    13     $stareHeslo = $_POST['heslo_puvodni'];                                                   
    14     $noveHeslo1 = $_POST['heslo_nove_1'];                                                    
    15     $noveHeslo2 = $_POST['heslo_nove_2'];                                                    
    16 
    17     try {
    18         if ($noveHeslo1 == $noveHeslo2) {
    19                 if ($emailOK) {          
    20                         /** e-mail vyhovuje regulárnímu výrazu → pokusíme se o změnu hesla */
    21                         sleep(8);
    22                         htmlOdstavec(sqlZjistiHodnotu("SELECT zmen_heslo(?, ?, ?, ?)", array($login, $domena, $stareHeslo, $noveHeslo1)));
    23                 } else {
    24                         htmlOdstavec("Neplatné uživatelské jméno.");
    25                 }
    26         } else {
    27                 htmlOdstavec("Nové heslo je potřeba zadat dvakrát stejně pro kontrolu.");
    28         }
    29     } catch (Exception $e) {
    30         htmlOdstavec("Chyba: Nesprávné heslo, nebo uživatel " . htmlspecialchars($login) . "@" . htmlspecialchars($domena) . " neexistuje.");
    31         //htmlZnacka('p', 'Chyba: ' .  htmlspecialchars($e->getMessage())); // Chybová hláška z SQL
    32     }
    33     htmlTlacitkovyOdkaz("?akce=znovu", "Zpět");
    34 } else {
    35         /** Zobrazíme formulář */
    36         htmlOdstavec("Tento formulář slouží ke změně hesla.");
    37         html('<form method="post" action="?akce=heslo">');
    38         html('<fieldset>
    39                 <label>Jméno: <input type="text" name="jmeno" maxlength="60"/></label><br/>
    40                 <label>Původní heslo: <input type="password" id="heslo_puvodni" name="heslo_puvodni" maxlength="128"/></label><br/>
    41                 <label>Nové heslo: <input type="password" id="heslo_nove_1" name="heslo_nove_1" maxlength="128"/></label><br/>
    42                 <label>Znovu nové: <input type="password" id="heslo_nove_2" name="heslo_nove_2" maxlength="128"/></label><br/>');
    43         if (empty($_SERVER['HTTPS'])) {
    44                 html('<img src="obrazky/zadna_bezpecnost.png" alt="CHYBÍ-SSL" title="Heslo se odesílá nešifrovaně. Přepněte na HTTPS."/>');
    45         } else {
    46                 html('<img src="obrazky/plna_bezpecnost.png" alt="SSL" title="Zabezpečené spojení: HTTPS"/>');
    47         }
    48         html('<button name="prihlasovaciTlacitko" value="submit">Změnit heslo</button>');
    49         html('</fieldset></form>');
    50 
    51 }
    52 
    53 zapati();
    54 ?>
    55