| 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: 11 let
|
|||
0