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