Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann ich ohne Anmeldung direkt auf die Seite zugreifen bzw. wie kann ich die Anmeldefunktion entfernen?

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

}

KeeviKeevi1340 Tage vor1854

Antworte allen(1)Ich werde antworten

  • 查无此人

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

    不登陆直接访问,会不安全。你是想做所有人进入等不需要登陆,还是做只对你个人进行不登陆。给你个思路:    1、所有人不登陆,直接去掉用户判断就可以了。    2、对你个人进行不登陆有2种:                 一、如果你的ip地址是固定的,可以判断ip地址 是你的地址,直接进入。                二、可以专门做个页面,自己使用的,进入这个页面,自动登陆进入。

    Antwort
    0
  • StornierenAntwort