110 likes | 225 Views
Prihlásenie užívateľa. MySQL a PHP. MySQL - SELECT. SELECT zoznam_poloziek FROM nazvy_tabuliek // povinn é [ WHERE podmienky ] [ GROUP BY nazov_stlpca_pre_zoskupenie ] [ ORDER BY polozka pre usporiadanie ] [LIMIT [začiatok,] počet ]. SESSION.
E N D
Prihlásenie užívateľa MySQL a PHP
MySQL - SELECT SELECT zoznam_poloziek FROM nazvy_tabuliek//povinné[WHERE podmienky][GROUP BY nazov_stlpca_pre_zoskupenie][ORDER BY polozka pre usporiadanie] [LIMIT [začiatok,] počet ]
SESSION • session_start(); //inicializuje session • $_SESSION['premenna'] = hodnota;//priradí hodnotu do premennej $_SESSION['premenna'] • session_destroy(); //zruší session • session_unregister(premenna); //zruší session premennú • session_unset(); //zruší všetky session premenné, ale ponechá session iniciované, oproti session_destroy();
Ošetrenie premených z formulára if (isset($_POST['login'])) $login=$_POST['login']; else $login=""; if (isset($_POST['pswd'])) $pswd=$_POST['pswd']; else $pswd=""; if (isset($_POST['prihlas'])) $prihlas=$_POST[['prihlas']; else $prihlas="";
Kontrola prihlasovacích údajov if ($prihlas) { if (($login=="")||($pswd=="")) { echo "<p>Nevyplnené prihlasovacie údaje!</p>"; } else { kontrola zhody zadaných údajov s databázou }
Výber údajov z databázy (select) else { $sql="selectmeno, heslofromuzivatelia where meno=‘$login’"; // meno z databázy sa zhoduje s prihlasovacím menom $result = mysql_query ($sql); if ($row = mysql_fetch_array ($result)) { //do premennej typu pole (array) s názvom $row uloží meno a heslo, t. j. $row[‘meno’], $row[‘heslo’],
Kontrola zhody, nastavenie SESSION premenných //aksazhoduje heslo z databázy s heslom z formulára, vytvorí SESSION premenné if ($row["heslo"]==sha1($pswd)) { $_SESSION["username"] = $login; $_SESSION["log"] = 1; header("Location:index.php?page=xzy"); exit; } else { ... nezhoda hesiel ...} } //KONIEC if ($row = mysql_fetch_array ($result)) else { ... tento užívateľ nie je registrovaný ... }
Zobrazenie prihláseného užívateľa if ($_SESSION[" log"] == 1) { echo “<p>Prihlásený: ".$_SESSION['username']."</p>”; echo “<p> <a href=\"index.php?page=logout\">Odhlásiť</a> </p>”; }
Uvoľnenie bufferu(pre viacnásobé použitie header) <?php ob_start(); ?> <html> <body>... </body> </html> <?php ob_end_flush(); ?>
Zhrnutie • úspešné prihlásenie ($_SESSION["log"] == 1) • zobraz meno prihláseného • zobraz link na odhlásenie • inak je neprihlásený • zobraz formulár • skontroluj odoslanie • skontroluj vyplnenie prihlasovacích údajov • ak sú vyplnené • vyber záznam z databázy (zhoda mien) • zašifruj zadané heslo a kontroluj zhodu s databázou • ak je zhoda hesiel ...
Zhrnutie • ak je zhoda hesiel • nastav ($_SESSION["log"] = 1 • nastav ($_SESSION[„user"] = $prihlasovaciemeno • obnovstránku: zobrazí sa meno prihláseného (header("Location:index.php?page=xzy");exit;) • inak (nie je zhoda hesiel) oznám užívateľovi „Nesprávne prihlásenie“ • Priprav si súbor pre odhlásenie, zaraď ho do switch