<?php
/**
?* 前臺(tái)頁(yè)面基類
?*/
class WebLoginBase extends WebBase{
public $type;
public $groupId;
public $played;
public $NO;
public $gameFanDian;
function __construct($dsn, $user='', $password=''){
session_start();
if(!$_SESSION[$this->memberSessionName]){
header('location: /user/logout');
exit('您沒(méi)有登錄');
}
try{
parent::__construct($dsn, $user, $password);
//$this->gameFanDian=$this->getValue("select fanDian from {$this->prename}members where uid=?", $GLOBALS['SUPER-ADMIN-UID']);
// 限制同一個(gè)用戶只能在一個(gè)地方登錄
if(!$this->getValue("select isOnLine from ssc_member_session where uid={$this->user['uid']} and session_key=? order by id desc limit 1", session_id())){
session_unset();
session_destroy();
header('location: /user/logout');
exit('您已經(jīng)退出登錄,請(qǐng)重新登錄');
}
/*$session_key=$this->getValue("select session_key from ssc_member_session where uid={$this->user['uid']} and isOnLine=1 order by id desc limit 1");
if($session_key != session_id()){
header('location: /user/logout');
exit('您已經(jīng)退出登錄,請(qǐng)重新登錄');
}*/
}catch(Exception $e){
}
}
public function freshSession(){
if(!$this->user) return false;
$sessionId=$this->user['sessionId'];
if($this->user['testFlag']==1){
$sql="select * from {$this->prename}guestmembers where uid=?";
}else{
$sql="select * from {$this->prename}members where uid=?";
}
$user=$this->getRow($sql, $this->user['uid']);
$user['sessionId']=$sessionId;
$user['_gameFanDian']=$this->getGameFanDian();
$_SESSION[$this->memberSessionName]=serialize($user);
$this->user=$user;
return true;
}
public function getGameFanDian(){
if($this->gameFanDian) return $this->gameFanDian;
$this->getSystemSettings();
return $this->gameFanDian=$this->settings['fanDianMax'];
}
public function getSystemSettings($expire=null){
if($expire===null) $expire=$this->expire;
$file=$this->cacheDir . 'systemSettings';
if($expire && is_file($file) && filemtime($file)+$expire>$this->time){
return $this->settings=unserialize(file_get_contents($file));
}
$sql="select * from {$this->prename}params";
$this->settings=array();
if($data=$this->getRows($sql)){
foreach($data as $var){
$this->settings[$var['name']]=$var['value'];
}
}
file_put_contents($file, serialize($this->settings));
return $this->settings;
}
public function getSystemCache($cacheFile,$getvalue='',$expire=null){
if($expire < 30) $expire=$this->expire;
$abbl=$cacheFile=='staticdata/gamedatas.php';
$file=$abbl?$this->cacheDir.'/partNameList.dump':($this->cacheDir. '/systemplayed'.$getvalue.'_'.md5($cacheFile));
//緩存文件存在且時(shí)間不超過(guò)10小時(shí),則直接使用緩存的結(jié)果集,不在進(jìn)行任何的MySQL查詢了??
if($expire && is_file($file) && time()-filemtime($file) < $expire) {??
//使用緩存中的結(jié)果??
if($abbl){
$parts=file_get_contents($this->cacheDir.'/partNameList.dump');
$cached='';
foreach(json_decode($parts,1) as $part){
$cached.=file_get_contents($part).';';
}
echo $cached;
}else{
echo file_get_contents($file);
}
}else{
//將結(jié)果集緩存
ob_start();
$this->display($cacheFile);
$ob=ob_get_contents();
if($abbl){
$obs=explode(';',$ob);
array_pop($obs);
$partNameList=array();
foreach($obs as $cached){
$part=explode('=',str_replace('var','',$cached));
$partNameList[]=$this->cacheDir.'/'.trim($part[0]);
file_put_contents(end($partNameList),$cached);?
}
file_put_contents($this->cacheDir.'/partNameList.dump',json_encode($partNameList));
}else{
file_put_contents($file,$ob);?
}
ob_end_flush();
}? ?
}
/* public function delete_file($str){
$dir=$this->cacheDir;
$list = scandir($dir); // 得到該文件下的所有文件和文件夾
foreach($list as $file){//遍歷
$file_location=$dir."/".$file;//生成路徑
if(is_dir($file_location) && $file!="." &&$file!=".."){ //判斷是不是文件夾
//echo "------------------------sign in $file_location------------------";
//delete_file($file_location); //繼續(xù)遍歷
}else if($file!="."&&$file!=".."){
if(substr_count($file,$str)>0){//如果文件名包含該字符串
unlink($dir."/".$file);
}
}
}
}
public function setcachefile($cacheFile, $getvalue){
$file=$this->cacheDir. '/'.md5($getvalue.$cacheFile);
$actionTime=$this->getGameCachetime($getvalue);
$cachefiletime=strtotime($actionTime);
$file=$file.'_'.$cachefiletime;
if(is_file($file)) {??
echo file_get_contents($file);
}else{? ?
//刪除過(guò)渡緩存
$this->delete_file(md5($getvalue.$cacheFile)); ?
//將結(jié)果集存儲(chǔ)
ob_start();
$this->display($cacheFile);
file_put_contents($file, ob_get_contents());?
ob_end_flush();
}??
}*/
/**
* 用戶資金變動(dòng)
*
* 請(qǐng)?jiān)谝粋€(gè)事務(wù)里使用
*/
public function addCoin($log){
if(!isset($log['uid'])) $log['uid']=$this->user ['uid'];
if(!isset($log['info'])) $log['info']='';
if(!isset($log ['coin'])) $log['coin']=0;
if(!isset($log['type'])) $log['type']=0;
if(!isset($log['fcoin'])) $log['fcoin']=0;
if(!isset($log['extfield0'])) $log[ 'extfield0']=0;
if(!isset($log['extfield1'])) $log['extfield1']='';
if(!isset($ log['extfield2'])) $log['extfield2']='';
$sql="call setCoin({$log['coin']}, {$ log['fcoin']}, {$log['uid']}, {$log['liqType']}, {$log['type']}, '{$log['info']}', {$log['extfield0']}, '{$log['extfield1']}', '{$log['extfield2']}')";
// echo $sql;exit;
$this->insert($sql);
}
public function guestaddCoin($log){
if(!isset($log['uid'])) $log['uid']=$this->user['uid'];
if(!isset ($log['info'])) $log['info']='';
if(!isset($log['coin'])) $log['coin']=0 ;
if(!isset($log['type'])) $log['type']=0;
if(!isset($log['fcoin']) ) $log['fcoin']=0;
if(!isset($log['extfield0'])) $log['extfield0']=0;
if(! isset($log['extfield1'])) $log['extfield1']='';
if(!isset($log['extfield2'])) $log['extfield2']= '';
$sql="call guestetCoin({$log['coin']}, {$log['fcoin']}, {$log['uid']}, {$log['liqType']}, {$log['type']}, '{$log['info']}', {$log['extfield0']}, '{$log['extfield1']}', '{$log[' extfield2']}')";
//echo $sql;exit;
$this->insert($sql);
}
/**
* 讀取可用返點(diǎn)
*/
public function getFanDian($uid=null){
if($uid===null){
if(!$uid=$this->user['parentId']){
return $this->params['basePl'];
}
}
return $this->getValue("select fanDian from {$this->prename}members whereparentId=?", intval($uid));
}
}
#不登陸直接訪問(wèn),會(huì)不安全。
你是想做所有人進(jìn)入等不需要登陸,還是做只對(duì)你個(gè)人進(jìn)行不登陸。
給你個(gè)思路:
????1、所有人不登陸,直接去掉用戶判斷就可以了。
????2、對(duì)你個(gè)人進(jìn)行不登陸有2種:?
????????????????一、如果你的ip地址是固定的,可以判斷ip地址 是你的地址,直接進(jìn)入。
????????????????二、可以專門做個(gè)頁(yè)面,自己使用的,進(jìn)入這個(gè)頁(yè)面,自動(dòng)登陸進(jìn)入。