Current Path : /data/web/virtuals/51568/virtual/www/pomucky/ |
Current File : /data/web/virtuals/51568/virtual/www/pomucky/header.php |
<?php //jen pro pomůcky!!! header("HTTP/1.1 200 OK"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Content-Type: text/html; charset=UTF-8"); require_once "zaklad.php"; require_once "sys/zaklad.php"; $login=0;$jmeno="";$uid="";$incl=true; if($_COOKIE["PHPSESSID2"]!="")$session_login_string=$_COOKIE["PHPSESSID2"]; elseif($_GET["session_login_string"])$session_login_string=$_GET["session_login_string"]; $session_login_string=mysql_real_escape_string($session_login_string); //promazání ve středu if(date("N")=="3"){ if(!mysql_query("delete from sessions where expires<".time()) or !mysql_query("delete from log where cas<".(time()-(3600*24*30)))) //mail('ivo@pisarovic.cz', 'Chyba', 'promazávání sessions + logu v header.php na '.$adresaStranky); ; } //odhlášení if($_GET["logout"]==1){ mysql_query("delete from sessions where session_id='".$session_login_string."'"); $session_login_string=hash("sha256",uniqid(rand())); $login=0; setcookie("PHPSESSID2","",time()-3600,"/"); setcookie("sp","",time()-3600,"/"); setcookie("cs","",time()-3600,"/"); } //formulář if(!function_exists("formular")){ function formular(){ include "login.html"; exit(); } } //je přihlášen? if(!function_exists("logged")){ function logged() { global $session_login_string; $f=mysql_fetch_array(mysql_query("select session_data from sessions where session_id='".$session_login_string."' and expires>".time())); $r=explode("\r",$f[0]); if($r[1]=="" && $r[2]=="") $r=explode("\n",$f[0]); if($r[1]=="") $r[1]=$r[2]; $sql="SELECT username,lastname,id,pomucky,prava,skin FROM pomuckyuzivatele WHERE pw='".str_replace("\n","",$r[1])."' AND id='".$r[0]."' "; $result = @mysql_query($sql); if(mysql_num_rows($result)>=1){ $results=mysql_fetch_array($result); $GLOBALS["username"]=$results[0]; $GLOBALS["jmeno"]=$results[1]; $GLOBALS["uid"]=$results[2]; $GLOBALS["pomucky"]=$results[3]; $GLOBALS["skin"]=$results[5]; parse_str($results[4],$GLOBALS["prava"]); if($_COOKIE["cs"]==1) $ct=0; else $ct=time()+$_COOKIE["cs"]*24*3600; return true; }else return false; } } //přihlášení if(!logged()){ if(isset($_POST["login_name"]) and isset($_POST["login_pw"])){ $login_name=mysql_real_escape_string($_POST["login_name"]); $login_pw=mysql_real_escape_string($_POST["login_pw"]); $new_pw=mb_substr(hash("sha256",$login_pw),0,32); $log=mysql_result(mysql_query("select count(id) from log where username='".$login_name."' and cas>".(time()-180)),0); mysql_query("insert into log set username='".$login_name."',ip='".$_SERVER["REMOTE_ADDR"]."',cas=".time()); if($log>2){ echo '<big style=color:red>Bohužel, nemůžete se přihlašovat více jak třikrát krátce po sobě. Počkejte pár minut a <a href="?">zkuste</a> to prosím znovu. Pokud potíže přetrvávají, kontaktujte prosím správce webu.</big>'; exit; }else{ $query="SELECT * FROM pomuckyuzivatele WHERE username = '".$login_name."' AND pw = '".$new_pw."' limit 0,1"; $result = @mysql_query($query); if (mysql_num_rows($result)>=1){ $session_login_string=substr(hash("sha256",uniqid(rand())),0,30); $session_login_string=mysql_real_escape_string($session_login_string); $login=1; $GLOBALS["logout"]=0; $gm=mysql_fetch_array($result); if($_POST["trvale"]=="on") $cas=31; else $cas=1; mysql_query("insert into sessions values('$session_login_string','".$gm["id"]." ".$gm["pw"]."',".(time()+$cas*24*3600).");"); $GLOBALS["username"]=$gm["username"]; $GLOBALS["jmeno"]=$gm["lastname"]; $GLOBALS["uid"]=$gm["id"]; $GLOBALS["pomucky"]=$gm["pomucky"]; $GLOBALS["skin"]=$gm["skin"]; parse_str($gm["prava"],$GLOBALS["prava"]); if($cas==1) $ct=0;else$ct=time()+$cas*24*3600; setcookie("PHPSESSID2",$session_login_string,$ct,"/"); setcookie("sp",1,0,"/"); setcookie("cs",$cas,$ct,"/"); }else{ echo "<h3>Špatné přístupové údaje!</h3> <a href=/pomucky>Přihlásit se znovu</a>"; exit(); } } }else formular(); }else{ $login=1; //změna hashe po přihlášení if($_COOKIE["sp"]!=1){ if($_COOKIE["cs"]==1) $ct2=0; else $ct2=time()+$_COOKIE["cs"]*24*3600; $blbo=substr(hash("sha256",uniqid(rand())),0,30); $blbo=mysql_real_escape_string($blbo); setcookie("PHPSESSID2",$blbo,$ct2,"/"); mysql_query("update sessions set `session_id`='".$blbo."' where `session_id`='".$session_login_string."'"); $session_login_string=$blbo; setcookie("sp",1,0,"/"); } } //ZÁKLADNÍ FUNKCE: //kontrola oprávnění if(!function_exists("zkontrolujOpravneni")){ function opravneni($pristup) { if($pristup!="" and $GLOBALS["prava"][$pristup]!="on"){ err("<b style=font-size:16px;>K tomuto modulu (".$pristup.") bohužel nemáte oprávnění. Kontaktujte prosím správce.</b>"); exit(); } } } /* function ok($a,$b=""){ echo '<div style="background:#C1EE90;padding:5px 12px;margin-bottom:5px;"> <span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span> <strong>'.$a.'</strong> '.$b.' </div>'; } function err($a,$b=""){ $mail=true; if($b=="nemail"){ $b=""; $mail=false; } echo ' <div class="ui-state-error"> <span class="ui-icon ui-icon-alert" style="float: left; margin-right: .6em;"></span> <strong>'.$a.'</strong> '.$b.' </div>'; if($mail) mail('ivo@pisarovic.cz', 'chyba '.$GLOBALS["adresaStranky"], "error:".$a." ".$b." ".$GLOBALS["jmeno"]); } function info($a){ echo '<div class="ui-state-highlight ui-corner-all"> <span class="ui-icon ui-icon-alert" style="float: left; margin-right: .6em;"></span> '.$a.' </div>'; }*/ function slozkaSpravne($n){ $base="../../soubory/"; if(substr($n,0,14)==$base) $n=substr($n,14); $prvni=substr($n,0,1); if($prvni!="/") $n="/".$n; $posl=substr($n,-1); if($posl!="/") $n.="/"; if($n=="") $n="/"; //if(!file_exists($base.$n)) mkdir($base.$n,0777,true); return preg_replace("/\/+/","/",$n); } function vyse($n){ $n=substr(slozkaSpravne($n),0,-1); $l=strrpos($n,"/"); return substr($n,0,$l); } function vysl($v,$slozka=false){ if($slozka){ if($v) $GLOBALS["ok2"]++; else $GLOBALS["err2"]++; }else{ if($v) $GLOBALS["ok"]++; else $GLOBALS["err"]++; } return $v; } ?>