分享
 
 
 

PHP文本数据库类之管理(txtDB.manager.php)

王朝php·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

使用方法:结合txtDb.inc

初始用户和密码为:admin 123

CODE:

<?php

/*

TxtDb Manager

version: 0.1.0

mail: psher@sina.com

This script is the manager for PHP txtDb.

#############################

Suppose Modify structrual

*/

include('txtdb.inc');

$root="txtdb";

$s_admins=array("admin","admin2","admin3");

$s_password="123";

####################

if(isset($_GET))@extract($_GET);

if(isset($_POST))@extract($_POST);

if(isset($_SESSION))@extract($_SESSION);

if(isset($_COOKIE))@extract($_COOKIE);

#################

if(isset($u_admin))$admin=$u_admin;

if(isset($u_password))$password=md5($u_password);

$s_password=md5($s_password);

$islogin=false;

if(($password==$s_password)and in_array($admin,$s_admins)){

setcookie('admin', $admin);

setcookie('password',$password);

$islogin=true;

if(isset($u_admin) and isset($u_password))echo"<script>top.location.reload();</script>";

}

if($action=="quit"){

setcookie('admin');

setcookie('password');

$islogin=false;

echo "<script>top.nav.location.reload();</script>";

}

if(!$islogin and $action!="leftbar" and $action!="")$action="main";

#################

?>

<html>

<head>

<title>Episome TxtDb Manager</title>

<meta http-equiv=pragma content=no-cache>

<meta http-equiv=no-cache>

<meta http-equiv=expires content=-1>

<meta http-equiv=cache-control content=no-cache>

<meta http-equiv=content-type content="text/html" charset=gb2312>

<style>

body,td,input,textarea,select{font-family: verdana; font-size:10pt;}

.btn{width:100px}

hr{color:#AAAAAA;size:1}

li{list-style:square;line-height: 24px;}

h5{font-size:11pt;color:green;margin-top:0;margin-bottom:0}

h6{font-size:10pt;color:red;margin-top:0;margin-bottom:0}

td{height:24};

a{color:blue;text-decoration:none;}

a:hover{color:red;text-decoration:underline;}

form{margin-top:0;margin-bottom:0}

.tbl{color:red;}

</style>

<script>

var lastRow;

function select(curRow,curColor,lastColor){

if (lastRow!=null) lastRow.style.background=lastColor;

curRow.style.background=curColor;

lastRow = curRow;

}

</script>

<?

##########################

if(!is_dir($root))

die('<h6>Current TxtDb root does not exists!</h6>');

$db=new txtDb($root);

$version=$db->version;

############################

switch($action){

case "leftbar":

leftbar();

break;

case "main":

main();

break;

case "selecttable":

selecttable($table);

break;

case "viewdata":

viewdata($table,$start,$num,$sortby,$order,$keyword,$fields,$selectstring,$selectcolumn);

break;

case "newtable":

newtable($table,$tblfields);

break;

case "insertrecord":

insertrecord($table,$value,$id);

break;

case "delrecord":

delrecord($table,$id,$start,$num,$order,$sortby);

break;

case "editrecord":

editrecord($table,$id,$act,$value,$start,$num,$order,$sortby);

break;

case "droptable":

droptable($table);

break;

case "cleartable":

cleartable($table);

break;

default:

index();

}

/*

edit a row from table

*/

function editrecord($table,$id,$act,$value,$start,$num,$order,$sortby){

global $db;

$order=($order=="asc")?"desc":"asc";

$db->open($table,$id,1);

if($act=="save" and is_array($value)){

$db->change($value,$id);

echo "<h5>The record of table <font class=tbl>[".$table."]</font> has been modifyed !</h5><hr>";

echo "<li><a href='?action=viewdata&table=".$table."&start=".$start."&num=".$num."&order=".$order."&sortby=".$sortby."'>View data</a>";

die();

}

echo"

<h5>Modify record of table <font class=tbl>[".$table."]</font> !</h5><hr>

<table cellpadding=0 cellspacing=0>

<tr>

<td bgcolor='#AAAAAA'>

<table cellpadding=0 cellspacing=1>

<form action='?action=editrecord&table=$table&start=$start&num=$num&order=$order&sortby=$sortby' method=post>";

foreach($db->fieldNames as $field){

$v=stripslashes($db->dbValues[$id][$field]);

echo "

<tr>

<td bgcolor='#B3DBF9' width='100' align=right><nobr>$field :&nbsp;</nobr></td>

<td bgcolor='white'><textarea name='value[$field]' rows=2 style='width:380'>$v</textarea></td>

</tr>

";

}

echo"

</table>

</td>

<td valign=bottom>

<input type=hidden name=act value='save'>

<input type=hidden name=id value='$id'>

&nbsp;<input type=submit value='Save >>' class=btn><br>&nbsp;<input type=submit value='Cancel >>' class=btn onclick='js:history.go(-1)'>

</td>

</tr></form>

</table>

";

}

/*

delete a row from table

*/

function delrecord($table,$id,$start,$num,$order,$sortby){

global $db;

$order=($order=="asc")?"desc":"asc";

$db->open($table,0,1);

$db->delete($id);

echo "<h5>The record of table <font class=tbl>[".$table."]</font> has been deleted !</h5><hr>";

echo "<li><a href='?action=viewdata&table=".$table."&start=".$start."&num=".$num."&order=".$order."&sortby=".$sortby."'>View data</a>";

die();

}

/*

Insert a row to table

*/

function insertrecord($table,$value,$id){

global $db;

$db->open($table,0,1);

if(is_array($value)){

$db->append($value,$id);

echo "<h5>The record has been inserted to table <font class=tbl>[".$table."]</font>!</h5><hr>";

echo "<li><a href='?action=viewdata&table=".$table."'>View data</a>";

echo "<li><a href='?action=insertrecord&table=$table'>Insert record</a>";

die();

}

echo"<h5>Insert record to <font class=tbl>[".$table."]</font></h5>";

echo "<hr>";

echo "

<table cellpadding=0 cellspacing=0>

<tr>

<td bgcolor='#AAAAAA'>

<table cellpadding=0 cellspacing=1 height='100%'>

<form action='?action=insertrecord&table=$table' method=post name=iform>

";

foreach($db->fieldNames as $field){

echo "

<tr>

<td bgcolor='#B3DBF9' width='100' align=right><nobr>$field :&nbsp;</nobr></td>

<td bgcolor='white'><textarea name='value[$field]' style='width:380'></textarea></td>

</tr>

";

}

echo "

</table>

</td>

<td valign=bottom>&nbsp;ID <input size=3 name=id value='$db->lines'><br>&nbsp;<input type=submit onclick='return !isNaN(iform.id.value);' value='Insert >>' class=btn><br>&nbsp;<input type=submit value='Cancel >>' class=btn onclick='js:history.go(-1)'></td>

</tr></form>

</table>

";

}

/*

view data

*/

function viewdata($table,$start,$num,$sortby,$order,$keyword,$fields,$selectstring,$selectcolumn){

global $db;

if(trim($start)=='')$start=0;

if(trim($num)=='')$num=30;

$db->open($table,$start,$num);

if(trim($sortby)!='')

$db->sortby($sortby,$order);

$order=($order=="asc")?"desc":"asc";

$dbValues=$db->dbValues;

if(trim($keyword)!="")

$dbValues=$db->query($keyword,$fields);

if(trim($selectstring)!="")

$dbValues=$db->select($selectcolumn,$selectstring);

echo"

<h5>Data for Table <font class=tbl>[".$table."]</font></h5>

<hr>

<table cellpadding=0 cellspacing=0>

<tr>

<td bgcolor='#AAAAAA'>

<table cellpadding=0 cellspacing=1>

<tr bgcolor='#B3DBF9'>

<td>&nbsp;<b>Actions</b>&nbsp;</td>

<td>&nbsp;ID&nbsp;</td>

";

foreach($db->fieldNames as $value){

$select_string.="<option value=".$value.">".$value."</option>";

echo"<td>&nbsp;<a href='?action=viewdata&table=$table&start=".$start."&num=".$num."&sortby=".$value."&order=".$order."'>".$value."</a>&nbsp;</td>\n";

}

echo "</tr>";

if(is_array($dbValues))

foreach($dbValues as $id=>$Values){

echo "<tr style='background:#EEEEEE;cursor:hand' onclick=\"javascript:select(this,'#DCFAE8','#EEEEEE')\">\n";

echo "<td><nobr>&nbsp;<a href='?action=editrecord&id=".$id."&table=".$table."&start=".$start."&num=".$num."&order=".$order."&sortby=".$sortby."'>Edit</a>&nbsp;<a href='?action=delrecord&table=".$table."&id=".$id."&start=".$start."&num=".$num."&order=".$order."&sortby=".$sortby."' onclick=\"return window.confirm('Are U sure of delete the record?');\">Del</a>&nbsp;</nobr></td>";

echo "<td bgcolor='#B3DBF9'>&nbsp;$id&nbsp;</td>";

if(is_array($Values))

foreach($Values as $key=>$value){

echo "<td><nobr>&nbsp;".htmlspecialchars($value)."&nbsp;</nobr></td>";

}

echo "</tr>\n";

}

echo"

</tr>

</table>

</td>

</tr>

</table>

<hr size=1>

<li>Query :<br>

<table cellpadding=0 cellspacing=0>

<tr><td bgcolor='#AAAAAA'>

<table cellpadding=0 cellspacing=1>

<tr>

<td bgcolor='#B3DBF9' valign=bottom>

<form method=post action='?action=viewdata&table=$table' name=iform>

&nbsp;&nbsp;Show <br>

&nbsp;&nbsp;<input size=5 value='$num' name='num'>&nbsp;rows [<a onclick='num.value=$db->lines' style='cursor:hand'>All</a>]&nbsp;<br>

&nbsp;&nbsp;Starting from <br>

&nbsp;&nbsp;<input size=5 name='start'><br>

<input value='$order' name=order type=hidden>

&nbsp;&nbsp;<input value='Display >>' onclick='return (!isNaN(iform.start.value) && !isNaN(iform.num.value));' type=submit>

&nbsp;&nbsp;</form>

</td>

<td width=25 bgcolor='white'></td>

<td bgcolor='#B3DBF9'>

<form method=post action='?action=viewdata&table=$table'>

&nbsp;&nbsp;For <input size=12 value='$keyword' name='keyword'> in&nbsp;&nbsp;<br>

<select name='fields[]' id=fields size=4 multiple style='width:100%'>$select_string</select>

<input value='Display >>' type=submit>&nbsp;[<a onclick='for(i=0;i<fields.length;i++)fields[i].selected=true' style='cursor:hand'>All</a>]

<input value='$num' name=num type=hidden>

<input value='$start' name=srart type=hidden>

<input value='$order' name=order type=hidden>

</form>

</td>

<td width=25 bgcolor='white'></td>

<td bgcolor='#B3DBF9'>

<form method=post action='?action=viewdata&table=$table'>

&nbsp;&nbsp;For <input size=12 value='$selectstring' name='selectstring'> ==&nbsp;&nbsp;<br>

<select name='selectcolumn' size=4 style='width:100%'>$select_string</select>

<input value='Display >>' type=submit>

<input value='$start' name=srart type=hidden>

<input value='$num' name=num type=hidden>

<input value='$order' name=order type=hidden>

</form>

</td>

</tr>

</table>

</td></tr></table>

<hr size=1>

<li>Records : $db->lines

<li><a href='?action=insertrecord&table=$table'>Insert record</a>

<li><a href='?action=cleartable&table=".$table."' onclick=\"return window.confirm('Are U sure of clear the data?');\">Clear</a> or <a href='?action=droptable&table=".$table."' onclick=\"return window.confirm('Are U sure of drop the table?');\">Drop</a> this table.

<li>";

$db->times();

}

/*

select table

*/

function selecttable($table){

global $db;

$db->open($table,0,1);

echo "<h5>Select Table <font class=tbl>[".$table."]</font></h5><hr>";

echo "<li>Path : ".$db->tableName;

echo "<li>Size : ".number_format(filesize($db->tableName))." (bytes)";

echo "<li>Records : ".$db->lines;

echo "<li>Fields :".$db->fields."<br>";

echo "<select size=8 name=field style='width:200'>";

foreach($db->fieldNames as $value){

echo "<option value=".$value.">".$value;

}

echo "</select>";

echo "<input value='Add >>' type=submit>";

echo "<input value='Drop >>' type=submit>";

echo "<input value='Insert >>' type=submit>";

echo "<li><a href='?action=viewdata&table=".$table."'>View data</a>";

echo "<li><a href='?action=insertrecord&table=".$table."'>Insert record</a>";

echo "<li><a href='?action=cleartable&table=".$table."' onclick=\"return window.confirm('Are U sure of clear the data?');\">Clear</a> or <a href='?action=droptable&table=".$table."' onclick=\"return window.confirm('Are U sure of drop the table?');\">Drop</a> this table.";

echo "<li>Time of last modification : ".date ("F d Y H:i:s.", filemtime($db->tableName))."<br>";

clearstatcache();

$db->times();

}

/*

clear table

*/

function cleartable($table){

global $db;

$db->open($table,0,1);

$db->clear();

echo "<h5>The table <font class=tbl>[".$table."]</font> has been cleared !</h5><hr>";

}

/*

drop table

*/

function droptable($table){

global $db;

$db->open($table,0,1);

$db->drop();

echo "<h5>The table <font class=tbl>[".$table."]</font> has been droped !</h5><hr>";

echo "<script>top.nav.location.reload();</script>";

}

/*

create table

*/

function newtable($table,$tblfields){

global $db;

if(isset($table) and isset($tblfields)){

if(!ereg("^[-a-zA-Z0-9_\.]",$table))

die('<font color=red>Table name <font class=tbl>['.$table.']</font> not allow!</font>');

$tblfields=str_replace("\n","",$tblfields);

$fields=explode("\r",$tblfields);

foreach($fields as $key=>$value){

if(trim($value)=="")unset($fields[$key]);

}

if($db->create($table,$fields)){

echo "<br><h5>The table <font class=tbl>[".$table."]</font> has been created !</h5><br>";

echo "<script>top.nav.location.reload();</script>";

die();

}

}

?>

<body>

<h5>Create New Table</h5>

<hr>

<form action='?action=newtable' method=post>

TableName:<br>

<input name=table style="width:200"><br>

Fields: (field per line)<br>

<textarea name=tblfields rows=12 style="width:200"></textarea>&nbsp;<input type="submit" value="Create >>">

</form>

</body>

<?

}

/*

show DB information

*/

function main(){

global $version,$islogin;

$httphost=$_ENV["HTTP_HOST"];

$server=$_SERVER["SERVER_SOFTWARE"];

$php=PHP_VERSION;

$os=PHP_OS;

echo"

<body onselectstart='return false;'>

<br><br><br>

<nobr><h5>Welcome to TxtDb Manager </h5></nobr>

<hr width='40%' align=left><br>

<li>TxtDb $version running on $httphost

<li>PHP $php running on $os

<li>Server_SoftWare : $server";

if(!$islogin){

echo "

<form action='?action=main' method=post>

<input name=u_admin>

<input name=u_password type=password>

<input type=submit value='Landing >>'>

</form>

";

}

echo "<br><hr width='60%' align=left></body>";

}

/*

navigation bar

*/

function leftbar(){

global $db,$islogin;

?>

<style>

body{background:#444444;color:white;}

a{color:white;}

a:hover{color:red;}

hr{color:white;}

td{height:20}

</style>

<body onselectstart="return false;">

<a href='?action=main' target='manager'><b><?=$db->root?></b></a>

<hr size=1>

<?echo"

<table width='100%' cellpadding=0 cellspacing=0>

";

showTables($db->root,$db->exten);

echo"

</table>

<hr size=1><br>

<b>Actions</b>

<hr size=1>

<table width='100%' cellpadding=0 cellspacing=0>

<tr onclick=select(this,'#000000','')>

<td nowrap><font face=Wingdings>w</font>&nbsp;<a href='?action=newtable' target=manager>Create Table</a></td>

</tr>";

if($islogin)echo"

<tr onclick=select(this,'#000000','')>

<td nowrap><font face=Wingdings>w</font>&nbsp;<a href='?action=quit' target=manager>Exit Manager</a></td>

</tr>";

echo"

</table>

<hr size=1><br>

</body>";

}

/*

show All tables

*/

function showtables($path){

global $db;

$dirhandle=opendir($path);

while($file=readdir($dirhandle)){

if ($file!="." && $file!=".."){

if (is_dir($path.'/'.$file)){

showtables($path.'/'.$file);

}else{

$path_info=pathinfo($file);

$exten=strtolower(".".$path_info["extension"]);

if($exten==strtolower($db->exten)){

if(strpos($path,'/')){

$file=str_replace($db->root.'/','',$path.'/'.$file);

$subdir="&nbsp;";

}

$file=str_replace($db->exten,'',$file);

echo "

<tr onclick=select(this,'#000000','')>

<td nowrap>

$subdir<font face=Wingdings>w</font>&nbsp;<a href='?action=selecttable&table=$file' target='manager'>$file</a>

</td>

</tr>

";

}//

}

}

}

closedir($dirhandle);

}

/*

index of this manager

*/

function index(){

print'

<frameset name="frms" cols="150,*" rows="*" border="0" frameborder="0">

<frame src="?action=leftbar" name="nav">

<frame src="?action=main" name="manager">

</frameset>';

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有