<?php
/**
* 프론트 페이지 기본 수업
*/
class WebLoginBase는 WebBase를 확장합니다{
public $type;
공개 $groupId;
공개 $재생됨;
공개 $NO;
공개 $gameFanDian;
함수 __construct($dsn, $user='', $password=''){
session_start();
if(!$_SESSION[$this-> memberSessionName]){
header('location: /user/logout');
exit('您没有登录');
}
try{
parent::__construct($dsn, $user , $password);
//$this->gameFanDian=$this->getValue("uid=?인 {$this->prename}멤버에서 fanDian을 선택하세요.", $GLOBALS['SUPER-ADMIN- UID']);
// 限同一个use户只能는 一个地方登录
if(!$this->getValue("select isOnLine from ssc_member_session where uid={$this->user['uid' ]} 및 session_key=? by id desc 제한 1", session_id())){
session_unset();
session_destroy();
header('location: /user/logout');
종료( '您已经退출발登录, 새로운 버전');
}
/*$session_key=$this->getValue("select session_key from ssc_member_session where uid={$this->user['uid']} 및 isOnLine=1 ID 설명 제한 1");
if($session_key != session_id()){
header('location: /user/logout');
exit('您已经退出登录,请重新登录');
}*/
}catch(Exception $e){
}
}
공용 함수 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;
}
공개 함수 getGameFanDian(){
if($this->gameFanDian) return $this->gameFanDian;
$this->getSystemSettings();
return $this->gameFanDian=$this-> ;settings['fanDianMax'];
}
공개 함수 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;
}
공용 함수 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));
/ /캐시된 파일이 존재하고 시간이 10시간을 초과하지 않으면 MySQL 쿼리 없이 캐시된 결과 세트가 직접 사용됩니다.
if($expire && is_file($file) && time()-filemtime($file) < $expire) {
//캐시에 있는 결과 사용
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{
//결과 세트 캐시
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){//Traverse
$file_location=$dir."/".$file;//경로 생성
if(is_dir($file_location) && $file!="." &&$ file !=".."){ //폴더인지 확인
//echo "------------로그인 $ file_location- ------------------";
//delete_file($file_location); //계속 탐색
}else if($file!="."&&$file!=".."){
if(substr_count($file,$str)>0){//如果文件name包含该字符串
unlink($dir."/".$file);
}
}
}
}
공용 함수 setcachefile($cacheFile, $getvalue){
$file=$this->cacheDir . '/'.md5($getvalue.$cacheFile);
$actionTime=$this->getGameCachetime($getvalue);
$cachefiletime=strtotime($actionTime);
$file=$file.'_ '.$캐시파일시간;
if(is_file($file)) {
echo file_get_contents($file);
}else{
//删除过期缓存
$this->delete_file(md5($getvalue.$cacheFile)) ;
//将结果集缓存
ob_start();
$this->display($cacheFile);
file_put_contents($file,ob_get_contents());
ob_end_flush();
}
}*/
/**
* 사용자 자금의 변화
*
* 한 번의 거래로 사용해주세요
*/
공개 함수 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);
}
공용 함수 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 guestsetCoin({$log['coin']}, {$log['fcoin']}, {$log['uid']}, {$log['liqType']}, {$ log['type']}, '{$log['info']}', {$log['extfield0']}, '{$log['extfield1']}', '{$log['extfield2' ]}')";
//echo $sql;exit;
$this->insert($sql);
}
/**
* 사용 가능한 리베이트 읽기
*/
공개 함수 getFanDian( $uid=null){
if($uid===null){
if(!$uid=$this->user['parentId']){
return $this->params[' basePl'];
}
}
return $this->getValue("select fanDian from {$this->prename}members where parentId=?", intval($uid));
}
}
로그인하지 않고 직접 접속하는 것은 안전하지 않습니다.
로그인 없이 누구나 입장할 수 있도록 하시겠습니까, 아니면 로그인 없이 본인만 입장할 수 있도록 하시겠습니까?
아이디어를 하나 드리겠습니다:
1. 아무도 로그인하지 않으면 사용자 판단을 제거하세요.不 2. 귀하에게 로그인하지 않는 사람은 두 가지 유형이 있습니다.
1. IP 주소가 고정되어 있는 경우 해당 IP 주소가 귀하의 주소라고 판단하고 직접 입력할 수 있습니다.个 2. 페이지를 구체적으로 만들어서 직접 사용하고, 이 페이지에 들어가면 자동으로 로그인하여 들어갈 수 있습니다.