Home  >  Q&A  >  body text

How can I access the page directly without logging in, or how can I remove the login function?

<?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));
	}

}

KeeviKeevi1293 days ago1826

reply all(1)I'll reply

  • 查无此人

    查无此人2021-03-15 09:52:18

    Direct access without logging in will be unsafe. Do you want to allow everyone to enter without logging in, or do you want to do it only for yourself without logging in? Let me give you an idea: 1. If no one logs in, just remove the user judgment. 2. There are two ways to prevent you from logging in: 1. If your IP address is fixed, you can determine that the IP address is yours and enter directly. Second, you can create a special page for your own use. Enter this page and log in automatically.

    reply
    0
  • Cancelreply