Zdravím,
v návaznosti na předchozí téma sem dávám svůj kód. Není to nic světoborného, obyčejný script zajišťující přihlášení uživatele se všemi náležitostmi : připojení k databázi, rozlišení přihlášeného a odhlášeného uživatele, odhlášení uživatele a s tím spojenou funkci zajištující volání jednotlivých funkcí podle uživatelova požadavku a funkci pro odeslání informačního emailu podle zadaných parametrů (registrační email, nové heslo, novinky, atp..)
Kód:
Přijde mi, že celý kód je hodně dlouhý na to, jak málo zastává funkcí zatím (pouze login a generátor nového hesla)Kód:<?php function connect(){ include_once "db.php"; ob_start(); session_start(); if(isset($_GET['akce'])){ akce(); } } function overeniLoginu(){ if(isset($_SESSION["log"]) and $_SESSION["log"] == 1 and $_SESSION["log_email"] != false){ prihlasen($_SESSION["log_email"]); }else{ odhlasen(); } } function prihlasen($log_email){ echo '<div id="prihlaseni"> <p class="prihlaseni_info"><img src="images/prihlasit_ikona.png" alt="prihlasen" />Vítejte <strong>'.vyber_databze('br_uzivatele','email', $log_email, 'jmeno').'</strong></p> <div class="prihlasit"> <ul> <li><a href="uzivatel_nastaveni.php?id='.vyber_databze('br_uzivatele','email', $log_email, 'id').'">Nastavení</a> |</li> <li><a href="">Správa ploch</a> |</li> <li><a href="?akce=odhlasit">Odhlásit</a></li> </ul> </div> </div>'; } function odhlasen(){ echo '<div id="prihlaseni"> <p class="prihlaseni_info"><a href="zapomenute-heslo.php">Zapomenuté heslo</a> | <a href="registrace-noveho-uzivatele.php">Nová registrace</a></p> <div class="prihlasit"> <form action="'.$_SERVER["PHP_SELF"].'" method="post"> <input class="prihlasit_input" type="text" value="E-mail..." name="flog_email" onclick="this.value=\'\' " /> <input class="prihlasit_input" type="password" value="Heslo..." name="flog_heslo" onclick="this.value=\'\' " /> <input class="prihlasit_input_prihlasit" type="submit" value="Přihlásit" name="flog_submit" /> </form> </div> </div>'; if(isset($_POST["flog_submit"])){ prihlasit($_POST["flog_email"], $_POST['flog_heslo']); } } function prihlasit($flog_email, $flog_heslo){ $flog_heslo_hash = md5($flog_heslo); if(isset($flog_email) and isset($flog_heslo)){ $query = MySQL_Query("SELECT * FROM `br_uzivatele` WHERE `email` = '".$flog_email."' and `heslo` = '".$flog_heslo_hash."' and aktivace = 'Ano'") or die (mysql_error()); $db = mysql_fetch_array($query); if($db['email']){ $_SESSION['log_jmeno'] = $db['jmeno']; $_SESSION['log_email'] = $db['email']; $_SESSION['log'] = 1; header("location: ".$_SERVER["PHP_SELF"]); }else{ echo '<p>Jméno nebo heslo je špatné</p>'; } mysql_free_result($query); } ob_end_flush(); } //////////////////////// Práce s databází //////////////////////// function vyber_databze($tabulka,$zamek,$klic,$pozadavek){ $query = MySQL_Query("SELECT * FROM `".$tabulka."` WHERE `".$zamek."` = '".$klic."'") or die (mysql_error()); $db = mysql_fetch_array($query); return $db[$pozadavek]; } function uprav_databazi($tabulka, $zamek, $klic, $pozadavek, $hodnota){ //Vytvoření dotazi pro update databáze -> $sql_prikaz MySQL_Query($sql_prikaz); } //////////////////////////////////////////////// function akce(){ if(isset($_GET["akce"])){ $akce_get = array(1 => "odhlasit", 2 => "nove-heslo"); $i = array_search($_GET["akce"], $akce_get); if(isset($i)){ switch($i){ case 1: odhlasit(); break; case 2: if(isset($_POST['reg_email'])){ noveHeslo($_POST['reg_email']); } break; } } } } function odhlasit(){ if(isset($_SESSION['log_email']) and $_SESSION['log'] == 1){ Session_Destroy(); } header ("location: ".$_SERVER['HTTP_REFERER'].""); ob_end_flush(); } function noveHeslo($reg_email){ // VYTVOŘENÍ NOVÉHO HESLA // uprav_databazi('br_uzivatele','email', $reg_email, 'heslo', '$nove_heslo'); echo "Na email bylo posláno nové heslo"; } function posliEmail($komu,$typ){ $typ_emailu = array(1 => "registrace", 2=> "nove-heslo"); $i = array_search($typ, $typ_emailu); if(isset($i)){ switch($i){ case 1: $email_predmet = "Informace o registraci"; $email_zprava = ""; break; case 2: //$email_predmet; break; } } } ?>
Je fakt, že jsem se snažil udělat všechno snadno editovatelné a vlastní funkce na úpravu nebo výtah z databáze, který můžu aplikovat ve většině případů pouze zavoláním dané funkce
Ale nevím, jestli se tato snaha neminula spíše účinkem...



