Autor | Zpráva | ||
---|---|---|---|
sitole Profil |
Ahoj, nedávno jsem si poskládal svůj skript na přihlašování uživatelů..
Je celkem dobře provedený, ale potřebuji udělat rozdíl u přihlášeného a odhlášeného uživatele. Tedy.. V přihlašovací stránce _login_page.php by jsem chtěl mít naprosto stejný kod jako na hlavní stránce, ale jen připsané 2 údaje. (Jmeno (mám vyřešené potřebuji jen dohodit) a "Nastaveni" Jak to provedu, aby odhlášený uživatel tam nic neměl, ale přihlášený vše + tohle? :) Stránka je pouze testovací index.php <?php require('_login.php'); ?> Stránka bla bla.. login.php <?php require('_login.php'); header("LOCATION: index.php"); ?> logout.php <?php require('_login_users.php'); setcookie($domain_code.'_uid', ''); setcookie($domain_code.'_cid', ''); header("LOCATION: login.php"); ?> _login_users.php <?php $domain_code = 'website'; $random_num_1 = 20; $random_num_2 = 565; $random_num_3 = 3; $users = array( 'Jmeno' => 'Heslo', 'Zakaznikovo_Jmeno' => 'Zakaznikovo_Heslo' ); ?> _login_page.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <meta http-equiv="Content-Language" content="cs"> <meta charset="windows-1250"> <link href="hl/style.css" rel="stylesheet"> <link href="css/icon.png" rel="icon" type="image/png" /> <script type="text/javascript" src="hl/panel/jquery.js"></script> <script type="text/javascript" src="hl/panel/ostatni.js"></script> <link href='http://fonts.googleapis.com/css?family=Ubuntu' rel='stylesheet' type='text/css'> <title>Účetní systém pro restaurace :: Vše na jednom místě</title> <meta name="description" content="Účetní systém pro občerstvovací zařízení"> <meta property="og:title" content="Účetní systém pro občerstvovací zařízení"> <meta property="og:site_name" content="Účetní systém pro občerstvovací zařízení"> <meta property="og:description" content="Účetní systém pro občerstvovací zařízení"> <meta name="author" content="Jiří Svěcený, Vítek Vaníček"> </head> <body> <div id="Menu"> <div id="Napis"><b>Restaurační systém</b></div> <div id="Polozky"> <b> <li><a href="#Odkaz na náš web // Zakoupit">Zakoupit Systém</a></li> <li><a href="#Odkaz na náš web // Náš tým">Náš tým</a></li> <li><a href="#Odkaz na náš web // Kontakt">Kontakt</a></li> </b></div></div> <div id="Pasek"></div> <div id="Nadpis"><center><b>Restaurační systém</b></center></div> <center> <form action="" method="post"> <input id="Jmeno" type="text" name="username" class="text" placeholder="Vaše jméno"><br> <input id="Heslo" type="password" name="password" class="text" placeholder="Vaše heslo"><br> <input id="Odeslat" type="submit" value="Přihlásit se" name="login" class="submit"/> </form> </center> </body> </html> _login_class.php <?php class login_class { var $domain_code = ''; var $today_ts = ''; var $today_m = ''; var $error_message = NULL; var $users = ''; var $num_1 = ''; var $num_2 = ''; var $num_3 = ''; var $username = ''; function verify_settings () { $verified = TRUE; if ($this->num_1<1 || $this->num_1>500) $verified = FALSE; elseif ($this->num_2<500 || $this->num_2>1000) $verified = FALSE; elseif ($this->num_3<1 || $this->num_3>5) $verified = FALSE; foreach ($this->users as $user => $pass) { preg_match('/([^A-Za-z0-9-_\s\s+])/', $user, $user_result_{$user}); if (!empty($user_result_{$user})) $verified = FALSE; } return $verified; } function encryption_key ($user) { $key_uid = $this->user_encryption($user); $key_cid = $this->code_encryption($key_uid); setcookie($this->domain_code.'_uid', $key_uid, time() + (86400 * 5)); setcookie($this->domain_code.'_cid', $key_cid, time() + (86400 * 5)); } function user_encryption ($user) { return md5($user); } function code_encryption ($key_cid, $encrypt = 1) { if ($encrypt == 1) { $key_code = preg_replace('/([^0-9+])/', '', $key_cid); switch ($this->num_3) { case 1: $key_code = floor((($key_code + $this->num_2 + (($this->num_1 * 2) * $this->num_2)) / $this->num_1) / $this->num_2); break; case 2: $key_code = ceil(((($this->num_2 + $this->num_1) * $this->num_1 + $key_code + $this->num_2 - (10 * $this->num_1)) / ($this->num_1 * 50))/100000000); break; case 3: $key_code = floor((((($key_code - $this->num_2 + (($this->num_1 * 3) * $this->num_2)) + $this->num_1) / $this->num_2))/100000000); break; } $key_code = substr($key_code, 0, 10); return $key_code; } } function check_login ($username, $password) { foreach ($this->users as $user => $pass) { if ($username == $user && $password == $pass) { $this->username = $username; return TRUE; } } return FALSE; } function verify_login ($key_uid, $key_cid) { if ($key_cid = $this->code_encryption($key_uid)) { foreach ($this->users as $username => $password) { if ($key_uid == $this->user_encryption($username)) { $this->username = $username; return TRUE; } } } return FALSE; } function error_login () { if (isset($this->error_message)) { echo '<span class="error">'.$this->error_message.'</span><br /><br />'; } } function cleanse_input($input) { $input = trim($input); if (get_magic_quotes_gpc()==1) { } else { $input = addslashes($input); } $input = htmlentities($input); return $input; } } ?> _login.php <?php require('_login_users.php'); require('_login_class.php'); $login = new login_class; $today_ts = strtotime("now"); $today_m = date('n', $today_ts); $pass_login = FALSE; $login->domain_code = $domain_code; $login->today_ts = $today_ts; $login->today_m = $today_m; $login->users = $users; $login->num_1 = $random_num_1; $login->num_2 = $random_num_2; $login->num_3 = $random_num_3; if (!$login->verify_settings()) { echo '<strong>Invalid Admin Settings for Login Script</strong><br />Check your settings and retry logging in'; exit(); } //Prihlaseni a zapsani do cookies if (isset($_COOKIE[$domain_code.'_uid']) && $_COOKIE[$domain_code.'_uid']!='' && isset($_COOKIE[$domain_code.'_cid']) && $_COOKIE[$domain_code.'_cid']!='') { $key_uid = $login->cleanse_input($_COOKIE[$domain_code.'_uid']); $key_cid = $login->cleanse_input($_COOKIE[$domain_code.'_cid']); if (!$login->verify_login($key_uid, $key_cid)) { $login->error_message = 'Login has expired'; } else { $pass_login = TRUE; } } if (!$pass_login) { $need_login = TRUE; if (isset($_POST['login'])) { $login_user = $login->cleanse_input($_POST['username']); $login_pass = $login->cleanse_input($_POST['password']); if ($login->check_login($login_user, $login_pass)) { $login->encryption_key($login_user); $need_login = FALSE; } else { $login->error_message = 'Invalid username or password'; $need_login = TRUE; } } if ($need_login) { require('_login_page.php'); exit(); } } ?> |
||
Nuimi Profil |
#2 · Zasláno: 1. 5. 2015, 10:40:04
Zkus pri odhlaseni znicit cookies. Ale lepsi by jsi mel kdyby jsi pri prihlasovani vytvril session ktera by te provazela na strankach a ve chvili kdy kliknes na odhlaseni tak session zrusis cims zapricinis to ze tam trn danej uzivatel fyzicky uz nebude prihlasen
|
||
sitole Profil |
#3 · Zasláno: 1. 5. 2015, 10:51:10
Nuimi:
Zajímavé řešení :) Zkusím to napsat.. |
||
Časová prodleva: 9 let
|
0