⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disks.inc.php

📁 创建虚拟磁盘。用户可以创建磁盘
💻 PHP
字号:
<?php 
##
#	Project: PHPDisk
#	This is NOT a freeware, use is subject to license terms.
#
#	Site: http://www.phpdisk.com
#
#	$Id: disks.inc.php 249 2009-03-10 14:59:03Z along $
#
#	Copyright (C) 2008-2009 PHPDisk Team. All Rights Reserved.
#
##

if(!defined('IN_PHPDISK') || !defined('IN_MYDISK')) {
	exit('[PHPDisk] Access Denied');
}
phpdisk_user();
define('SCRIPT_NAME',$item);

require_once lang(SCRIPT_NAME);

$lang = array_merge($pub_lang,$lang);

switch($action){
	case 'index':
	case 'disk_modify':
		$disk_id = (int)gpc('disk_id','GP',0);
		
		if($task == 'disk_modify'){
			if($p_formhash != formhash()){
				exit($lang['system_error']);
			}
			$disk_description = trim(gpc('disk_description','P',''));
			
			if($disk_description && strlen($disk_description) >150){
				$error = true;
				$sysmsg[] = $lang['disk_description_max'];
			}
			
			if(!$error){
				$db->query_unbuffered("update pd_disks set disk_description='$disk_description' where userid='$pd_uid' and disk_id='$disk_id'");
				redirect(urr("mydisk","item=disks&action=index"),'',0);
			}else{
				redirect($_SERVER['HTTP_REFERER'],$sysmsg);
			}

		}else{
						$rs = $db->fetch_one_array("select count(*) as total from pd_disks where userid='$pd_uid'");
			$disk_total = (int)$rs['total'];
			
			$rs = $db->fetch_one_array("select disk_name,disk_id from pd_disks where userid='$pd_uid' order by disk_id desc limit 1");
			$disk_name = $rs['disk_name'];
			$max_disk_id = $rs['disk_id'];
			
			$rs = $db->fetch_one_array("select count(*) as folder_all from pd_folders where disk_id='$max_disk_id'");
			$folder_all = (int)$rs['folder_all'];
			$del_disk_msg .= $lang['disk'].'('.$disk_name.':) '.($folder_all ? $lang['del_disk_has_folder'] : $lang['del_disk_not_folder']);
			
			$q = $db->query("select * from pd_disks where userid='$pd_uid' order by disk_id asc");
			$disk_array = array();
			while($rs = $db->fetch_array($q)){
				$rs['disk_icon'] = $rs['in_share'] ? 'share_disk' : 'disk';
				$rs['confirm_disk'] = $rs['in_share'] ? $lang['cancel_share_disk_confirm'] : $lang['make_share_disk_confirm'];
				$rs['disk_description'] = $rs['disk_description'] ? $rs['disk_description'] : 'N/A';
				$rs['short_disk_desc'] = cutstr($rs['disk_description'],10);
				$disk_array[] = $rs;
			}
			$db->free($q);
			unset($rs);
						$rs = $db->fetch_one_array("select disk_description from pd_disks where userid='$pd_uid' and disk_id='$disk_id'");
			$disk_description = $rs['disk_description'];
			
			require_once template(SCRIPT_NAME,TPL_NAME);
		}
	break;
	
	case 'disk_create':
		if($task == 'disk_create'){
			$group_set = $group_settings[$pd_gid];
			if($p_formhash != formhash()){
				exit($lang['system_error']);
			}
			$disk_description = gpc('disk_description','P','');
			
			$rs = $db->fetch_one_array("select count(*) as total from pd_disks where userid='$pd_uid'");
			$start_index = $rs['total'] ? (int)$rs['total'] : 0;
			$disk_str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
			$disk_name = substr($disk_str,$start_index,1);

			$ins = array(
				'disk_name' => $disk_name,
				'disk_description' => $db->escape($disk_description),
				'userid' => $pd_uid,
				'in_time' => $timestamp,
			);
			if($group_set['max_disks'] && $start_index >= $group_set['max_disks']){
				$error = true;
				$sysmsg[] = $lang['exceed_max_disks'];
			}
			if($disk_description && strlen($disk_description) >150){
				$error = true;
				$sysmsg[] = $lang['disk_description_max'];
			}
			if($rs['total'] >26){
				$error = true;
				$sysmsg[] = $lang['disk_exceed_num'];
			}
			
			if(!$error){
				$db->query("insert into pd_disks set ".$db->sql_array($ins).";");
				redirect(urr("mydisk","item=disks&action=index"),'',0);
			}else{
				redirect(urr("mydisk","item=disks&action=index"),$sysmsg);
			}	
			
		}else{
			require_once template(SCRIPT_NAME,TPL_NAME);
		}
	break;
	
	case 'disk_delete':

		if($task =='disk_delete'){
			$rs = $db->fetch_one_array("select count(*) as total from pd_disks where userid='$pd_uid'");
			if($rs['total'] >1){
				$rs_l = $db->fetch_one_array("select disk_id from pd_disks where userid='$pd_uid' order by disk_id desc limit 1");
				$rs_f = $db->fetch_one_array("select disk_id from pd_disks where userid='$pd_uid' order by disk_id asc limit 1");
				$db->query_unbuffered("update pd_folders set disk_id='".$rs_f['disk_id']."',in_share=0 where disk_id='".$rs_l['disk_id']."'");
				$db->query_unbuffered("update pd_files set disk_id='".$rs_f['disk_id']."' where disk_id='".$rs_l['disk_id']."'");
				$db->query_unbuffered("delete from pd_disks where disk_id='".$rs_l['disk_id']."' limit 1");
				unset($rs_l);
				unset($rs_f);
				redirect(urr("mydisk","item=disks&action=index"),'',0);
			}else{
				$sysmsg[] = $lang['disk_a_canot_del'];
				redirect(urr("mydisk","item=disks&action=index"),$sysmsg);
			}
			unset($rs);
		}else{
			require_once template(SCRIPT_NAME,TPL_NAME);
		}
	break;
	
	case 'share_disk':
		$disk_id = (int)gpc('disk_id','G',0);
		$go = gpc('go','G','');
		
		$rs = $db->fetch_one_array("select in_share from pd_disks where disk_id='$disk_id' and userid='$pd_uid'");
		$in_share = $rs['in_share'] ? 0 : 1;
		unset($rs);
		$db->query_unbuffered("update pd_disks set in_share='$in_share' where disk_id='$disk_id' and userid='$pd_uid'");
		$db->query_unbuffered("update pd_folders set in_share='$in_share' where disk_id='$disk_id' and userid='$pd_uid'");
		$ref = ($go =='') ? "item=disks&action=index" : "item=folders&action=share_manage";
		redirect(urr("mydisk",$ref),'',0);
	break;

}

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -