Bagaimanakah saya boleh mengakses halaman secara terus tanpa log masuk, atau bagaimana saya boleh mengalih keluar fungsi log masuk?
Keevi
Keevi 2021-03-09 07:41:25
0
1
1830
<?php
/**
 * 前台页面基类
 */
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('您没有登录');
		}

		try{
			parent::__construct($dsn, $user, $password);
			//$this->gameFanDian=$this->getValue("select fanDian from {$this->prename}members where uid=?", $GLOBALS['SUPER-ADMIN-UID']);
			// 限制同一个用户只能在一个地方登录
			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('您已经退出登录,请重新登录');
			}
			/*$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('您已经退出登录,请重新登录');
			}*/

		}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));
		
		
		//缓存文件存在且时间不超过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){//遍历
			$file_location=$dir."/".$file;//生成路径
			if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹
				//echo "------------------------sign in $file_location------------------";
				//delete_file($file_location); //继续遍历
			}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{    	
		//删除过期缓存
		$this->delete_file(md5($getvalue.$cacheFile));	 
		//将结果集缓存
		ob_start();
		$this->display($cacheFile);
		file_put_contents($file,ob_get_contents()); 
		ob_end_flush();
		
		}  
	}*/

	/**
	 * 用户资金变动
	 *
	 * 请在一个事务里使用
	 */
	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 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);
	}	
	/**
	 * 读取可用返点
	 */
	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 where parentId=?", intval($uid));
	}

}

Keevi
Keevi

membalas semua(1)
欧阳

Mengakses terus tanpa log masuk adalah tidak selamat. Adakah anda mahu membenarkan semua orang masuk tanpa log masuk, atau adakah anda mahu melakukannya hanya untuk diri sendiri tanpa log masuk? Izinkan saya memberi anda idea: 1. Jika tiada sesiapa yang log masuk, buang sahaja pertimbangan pengguna. 2. Terdapat dua cara untuk menghalang anda daripada log masuk: 1. Jika alamat IP anda ditetapkan, anda boleh menentukan bahawa alamat IP adalah milik anda dan masukkan terus. Kedua, anda boleh membuat halaman khas untuk kegunaan anda sendiri Masukkan halaman ini dan log masuk secara automatik.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!