1 Star 4 Fork 1

weivote/查立得万能搜

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
admin.php 17.96 KB
一键复制 编辑 原始数据 按行查看 历史
weivote 提交于 2022-01-21 16:25 . V20220122
<?php include "./inc/conn.php";?><?php include "./inc/pubs.php";?>
<?php include "./inc/safe.php";?><?php
$stime=microtime(true); //CONCAT_WS(
$ch = addslashes($_POST['name']);
$ed = addslashes($_POST['ww']);
$mi = addslashes($_POST['page']);
$sq = addslashes($_GET['Act']);
if(!stristr("|down|","|$sq|")){ //除了下载csv其他都utf-8编码
header("content-Type: text/html; charset=utf-8");
}
$ck = "{$ls}{$dn}---";
if($sq){
$os = $_COOKIE["ek"];
$fu = "./inc/conn_{$fa}_user.php";
$rl = af($fu,$os);$rd=$rl["word"];
if(!stristr("|ss|code|xe|ag|","|$sq|")){
$xo = $_COOKIE["nv"];
if(md5($rd.$iq.$os)!=$xo){
$sq = "ss"; //没登录先登录
}elseif($ov=="sqls" && !stristr("|site|ym|an|ba|","|$sq|")){
$sq = "sqls"; //数据库信息先填对
}else{
}
}
switch ($sq) {
case "site":
if(!$site) exit("参数获取失败!");
$ef = "<table cellspacing=\"0\"><caption><b>系统参数</b></caption>";
$ef .= "<thead><tr class=\"tt\"><td>字段调用</td><td width='36%'>参数</td><td>操作</td><td>提示或说明</td></tr></thead><tbody>";
foreach($site as $ti=>$val){
$pu = $uk[$ti];//stripcslashes
if(!$pu){
}else{
if(stristr("-bj-yp-tv-pe-rr-","-{$ti}-")){
$nm = "<textarea cols=\"20\" rows=\"2\" id=\"{$ti}\">$val</textarea>";
}elseif(stristr("-dp-","-{$ti}-")){
$nm = nb($pd,$ti,$val);
}elseif(stristr("-nd-","-{$ti}-")){
$nm = nb($el,$ti,$val);
}else{
$nm = "<input value=\"{$val}\" id=\"{$ti}\" class=\"cc\" type=\"text\" />";
}
if(stristr($nm,"disabled")){
$buts ="&nbsp;";
}else{
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return eq('an','{$ti}|');\" />";
}
$ef .= "<tr><td data-label='参数调用'>\$$ti</td><td data-label='参数值'>$nm</td><td data-label=''>$buts</td><td data-label='参数说明' class='l'>$pu</td></tr>\r\n";
}
}
$ef .= "</tbody></table>";
echo $ef;
break;
case "an":
foreach($site as $ti=>$val){
if($_POST[$ti]){
$ge = $site[$ti]; $mt="";
$ir = htmlspecialchars(Trim($_POST[$ti]));
if($ir=="") exit("未修改:参数{$ti}请填写一个值吧!");
if($ge==$ir) exit("未修改:参数{$ti}无变化!");
if(stristr("-ls-bj-yp-tv-pe-dp-","-{$ti}-")){
$mt = "\r\n注意:该参数的修改可能影响查询结果,请刷新后再使用查询功能!";
}
if(stristr("-ls-bj-yp-tv-pe-","-{$ti}-")){
$ir = str_replace(array("\r\n","\r","\n","\t"),"---",$ir);
if(!stristr("@".$ir,"@---")) exit("未修改:参数---开头结尾分开!");
if(!stristr($ir."@","---@")) exit("未修改:参数---开头结尾分开!");
if(!stristr($ir."","---")) exit("未修改:参数---开头结尾分开!");
}elseif(stristr("-ro-ee-ni-ou-dbport-","-{$ti}-")){
if($ir=="" || !is_numeric($ir)) exit("未修改:参数得是数字");
}elseif(stristr("-dp-","-{$ti}-")){
if(!stristr("-1-2-3-4-","-{$ir}-")) exit("未修改:参数不在允许范围");
}elseif(stristr("-dluser-","-{$ti}-")){
if(!filter_var($ir, FILTER_VALIDATE_EMAIL)) exit("未修改:参数得是邮件格式");
}elseif(stristr("-ut-","-{$ti}-")){
exit("未修改:该参数不要修改!");
}elseif(stristr("-{$ti}-","-db")){
exit("未修改:请直接修改inc/conn.php参数并删缓存!");
}else{
}
$site[$ti] = $ir;
file_put_contents($ig, json_encode($site));//JSON_UNESCAPED_UNICODE
echo "[{$ti}]修改[{$ge}]值为[{$ir}]".$mt;
}
}
break;
case "duan":
if(!$duan) exit("参数获取失败!");
$wi = "<p>如果字段发生改变或者需要全部重新设置:<input value=\"初始化\" id=\"xb\" type=\"button\" onClick=\"return bi();\" /></p>";
$ef = "<table cellspacing=\"0\"><caption><b>{$en}</b>字段别名</caption>";
$ef .= "<thead><tr class=\"tt\"><td>真实字段</td><td width='36%'>代替显示</td><td>操作</td><td>提示或说明</td></tr></thead><tbody>";
$gr=0;
foreach($duan as $ti=>$val){
$gr++;
if($ti=="error"){
$buts = "<br><input value=\"更改数据表\" type=\"button\" class=\"ww\" onClick=\"return eq('bt','it|');\" />";
$it = ai(); $it .= $buts;
on("<h3>数据表{$en}异常,请重新填写数据库表名称:</h3>".$it); exit();
}else{
$nm = "<input value=\"{$ti}\" id=\"o{$gr}\" class=\"cc\" type=\"hidden\" />";
$nm .= "<input value=\"{$val}\" id=\"i{$gr}\" class=\"cc\" type=\"text\" />";
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return bc('ya','$gr');\" />";
$ef .= "<tr><td data-label='真实字段'>$ti</td><td data-label='代替显示'>$nm</td><td data-label=''>$buts</td><td data-label='参数说明' class='l'>留空不显示该字段</td></tr>\r\n";
}
}
$ef .= "</tbody></table>";
echo "<input value=\"\" id=\"qu\" type=\"hidden\" />";
echo "<input value=\"\" id=\"sm\" type=\"hidden\" />";
echo $ef . $wi;
break;
case "xb":
if(@unlink($rf)){exit("初始化字段别名成功!");}else{exit("初始化字段别名失败!");}
break;
case "ya":
$ge = addslashes($_POST["qu"]); $ir = addslashes($_POST["sm"]);
$re = $duan[$ge];
if($re==ir) exit("未修改:参数未变化!");
$duan[$ge] = $ir;
file_put_contents($rf, json_encode($duan));
echo "[{$re}]修改为[{$ir}]";
break;
case "ba":
$ba = <<<EOT
<h3>源码简介</h3>
查立得php+mysql直接搜现成数据库版(sqlmsoo)有后台<br>
约25KB代码(压缩包)实现1-3条件选一通用单表查询或搜索系统<br>
4模式等于输入内容包含输入内容输入内容开始输入内容结束<br>
用户设定多条件下拉选一查搜<br>
管理员登录退出修改密码可以修改13+系统参数设置数据库信息<br>
管理员可为数据库各字段设置别名以更友好显示<br>
管理员: 查看数据库内容并分页可搜索无增改删功能(只查不改数据)<br>
适合已有数据库(或能自己导入数据库)的用户填写参数即可快速公开查询
<h3>使用须知</h3>
1. 不得用于法律法规不允许的用途<br>
2. 保留署名权发行权必须保留网页版权信息(浏览器不显示的)<br>
<h3>用途举例</h3>
用途举例(多条件选一精准查询)<br>
1各种成绩查询工资查询物业水电费查询<br>
2录取查询分班查询分宿舍查询座位查询<br>
3防伪查询证书查询员工信息查询等等<br>
用途举例(多条件选一模糊搜索)<br>
1小区人员车辆快查提高疫情通行效率<br>
2库存位置员工信息档案目录图书位置及余量快查<br>
3产品参数快查产品报价快查售后网点快查<br>
4字典库比如技术员报错码查询<br>
5身份证社保卡发放点查询身份证是否到本网点及位置快查<br>
6通讯录快查等更多个人资料库内部局域网快查<br>
<h3>使用说明</h3>
开发环境php 5.4/mysql5.6;建议环境php 5.4+/mysql5.6+;php8未测<br>
管理访问http://域名/文件夹/admin.php (安全:admin.php可以任意更名网址对应变化)<br>
账号admin@ewuyi.net密码253252545首次登录后台请自行修改掉<br>
需要管理员登录后台配置数据库信息才能使用
用户访问http://域名/文件夹/<br>
务必确保inc文件夹读写权限会生成4个缓存配置文件哦;<br>
使用建议建议作为查询条件的字段索引可大大提高查询功能性能建议开启opcache缓存功能<br>
<h3>功能反馈</h3>
主页http://www.chalide.com<br>
邮件admin@12391.net<br>
手机15058593138 同微信号<br>
EOT;
echo "<h1>关于查询</h1>";
on("".$ba);
break;
case "bt":
$ir = addslashes($_POST["it"]);
$re = $pubs["en"];
if($ir=="Null") exit("未修改:未选表格!");
if($re==ir) exit("未修改:参数未变化!");
$pubs["en"] = $ir;
file_put_contents($ne, json_encode($pubs));
if(@unlink($rf)){ }
echo "数据表[{$re}]修改为[{$ir}];\r\n注意系统设置和字段设置页面还需要同步去修改哦;";
break;
case "sqls":
if(!$pubs) exit("参数获取失败!");
$ef = "<table cellspacing=\"0\"><caption><b>数据库配置</b></caption>";
$ma = "<thead><tr class=\"tt\">";
$ef .= "{ma}<tbody><tr>\r\n";
$gr=0;$tc = "";
foreach($pubs as $we=>$val){
if(stristr("@".$we,"@db") || stristr("@".$we,"@en") ){
$gr++; $tc .= "{$we}|"; $ti=$tb[$we]."({$we})";
$ma .= "<td>$ti</td>\r\n";
$nm = "<input value=\"{$val}\" id=\"{$we}\" class=\"cc\" type=\"text\" />";
$ef .= "<td data-label='{$ti}'>$nm</td>\r\n";
}
}
$ma .= "<td>操作</td>\r\n</tr></thead>\r\n";
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return eq('ym','{$tc}');\" />";
$ef .= "<td data-label=''>$buts</td></tr>\r\n";
$ef .= "</tbody></table>";
echo str_replace('{ma}',"".$ma,$ef);
if($ov=="sqls"){on("<span>请先正确填写数据库连接信息!</span><br>错误信息:".$dr);}
break;
case "ym":
foreach($pubs as $we=>$val){ $$we=addslashes($_POST[$we]); $pubs[$we]=$$we;}
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname, $dbport);
if (!$conn){ die("连接失败(请纠正后再提交):" . mysqli_connect_error()); }
file_put_contents($ne, json_encode($pubs));
$it = ai();
if(!stristr($it,">$en<")) {
$it .= "<br><input value=\"更改数据表\" type=\"button\" class=\"ww\" onClick=\"return eq('bt','it|');\" />";
on("<h3>设置的表格无效,请选择数据表:</h3>".$it);
}else{
exit("数据库信息修改成功!");
}
break;
case "ss"://登录输入
setcookie('ek',"ek",-time()+60*60*24*1,"/"); //1小时有效
setcookie('nv',"nv",-time()+60*60*24*1,"/"); //1小时有效
echo <<<EOT
<table cellspacing="0" class="table">
<caption><h3>请先登录才能操作</h3></caption>
<tbody>
<tr><td data-label="账号">
<input name="user" id="user" class="cc" type="text" placeholder="请输入账号" />
</td><td data-label="密码">
<input name="pass" id="pass" class="cc" type="password" placeholder="请输入密码" />
</td><td data-label="登录">
<input name="Submit" type="button" value="立即登陆" class="ww" onClick="return eq('xe','user|pass');" />
</td></tr></tbody></table>
EOT;
break;
case "xe": //登陆执行
$user = $_POST["user"]; $pass = $_POST["pass"];
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){exit("账号格式错误(电子邮件格式)");}
if(!preg_match("/^[a-zA-Z0-9]{6,18}$/",$pass)){exit("密码格式错误(6-16位数字及字母组成)");}
$fu = "./inc/conn_{$fa}_user.php";
if($dluser!=$user && !file_exists($fu)) exit("账号或密码错误1!");
$xi=md5("Cha{$pass}li{$fa}im");
$rl = af($fu,$user);$of=$rl["word"];
if($xi != $of) exit("账号或密码错误2 !");
setcookie('ek',$user,time()+60*60*24*1,"/"); //24小时有效
setcookie('nv',md5($xi.$iq.$user),time()+60*60*24*1,"/"); //24小时有效
on("登录成功!你可以输入框输入内容查询并修改了!");
break;
case "ag": //退出登录
setcookie('ek',"ek",-time()+60*60*24*1,"/"); //1小时有效
setcookie('nv',"nv",-time()+60*60*24*1,"/"); //1小时有效
on("退出成功!");
break;
case "xi": //修改密码输入
echo <<<EOT
<table cellspacing="0" class="table"><tbody>
<caption><b>密码修改</b></caption><thead>
<tr>
<td data-label="账号">账号</td>
<td data-label="旧密码">旧密码</td>
<td data-label="新密码">新密码</td>
<td data-label="新密码">新密码</td>
<td data-label="修改">操作</td>
</tr>
</thead>
<tbody>
<tr><td data-label="账号">
<input name="user" id="user" class="cc" type="text" value="{$dluser}" disabled="value" />
</td><td data-label="旧密码">
<input name="pass" id="pass" class="cc" type="password" placeholder="请输入旧密码" />
</td><td data-label="新密码">
<input name="xz" id="xz" class="cc" type="password" placeholder="请输入新密码" />
</td><td data-label="新密码">
<input name="wo" id="wo" class="cc" type="password" placeholder="重复输新密码" />
</td>
<td data-label="修改">
<input name="Submit" type="button" value="修改密码" class="ww" onClick="return eq('ra','user|pass|xz|wo');" />
</td></tr></tbody></table>
EOT;
break;
case "ra": //修改密码执行
$user = addslashes($_POST["user"]);
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){exit("未修改:账号格式错误(电子邮件格式)");}
$fu = "./inc/conn_{$fa}_user.php";
if($dluser!=$user && !file_exists($fu)) exit("未修改账号与实际不符1");
$ea = addslashes($_POST["pass"]);
$sn = addslashes($_POST["xz"]);
$na = addslashes($_POST["wo"]);
if(!preg_match("/^[a-zA-Z0-9]{6,18}$/",$sn)){exit("未修改:密码格式6-16位数字及字母组成");}
if($sn!=$na) exit("未修改两次新密码不一致"); //
if($sn==$ea) exit("未修改新旧密码未变!"); //
$sh=md5("Cha{$ea}li{$fa}im");
if($sh!=$rd) exit("未修改旧密码错误"); //
ra($fu,$sn);
on("修改密码成功!");
break;
case "list": //正式查询
$ts = addslashes($_POST['di']);
$pagesize = $ro;
if(stristr($ts,"请输入")) $ts="";
$gl = "select * from `{$en}`";
if($ts!="") $gl .= str_replace("{ts}",$ts,$py);
$result = mysqli_query($conn, $gl);
if (!$result) exit("请重新填写数据库表名称或者查询条件:".mysqli_error($conn));
$recs = $result->num_rows;
if($recs<1) exit("没有查询到 $ts 相关用户!");
$pagecount = bcdiv($recs+$pagesize-1,$pagesize,0); //算出总页数
if(!isset($mi) || !is_numeric($mi)) $mi = 1; //缺省为显示第一页
if($mi<1) $mi = 1; //如果页码比1小,则显示第一页
if($mi>$pagecount) $mi = 1; //如果页码比总页数大,则显示最后一页
$p = $mi * $pagesize + 1 - $pagesize -1;
if($p<0) $p = 0; //如果
$me=" $gl limit {$p}, {$pagesize}";
$list=mysqli_query($conn,$me);
if (!$list){echo "请重新填写数据库表名称或者查询条件:".mysqli_error($conn);}
echo "<div style=\"margin:0 auto;overflow-x:auto;width:99.99%;\">";
echo "\r\n<!--startprint-->\r\n<input id=\"page\" value=\"1\" type=\"hidden\">";
$su = "<input name=\"di\" type=\"text\" class=\"nn\" id=\"di\" placeholder=\"请输入{$dn}搜索表格{$en}\" value=\"$ts\" onfocus=\"this.select();\" /><input name=\"S\" type=\"button\" class=\"ec\" value=\"搜索\" onclick=\"eq('list','di|');\">";
$am = "<table cellspacing=\"0\" class=\"table\" id=\"rk\" > \r\n<thead>";
$am .= "<caption>$su</caption>";
$gr=0;
foreach ($list as $ml ) {
$gr++;
if($gr=="1"){
$am .= "\r\n\r\n<tr class=\"tt\">\r\n";
$li=0;
foreach ($ml as $bo => $yu ) {
$li++; $am .= "<td><nobr>$bo</nobr></td>\r\n";
}
$am .= "</tr>\r\n</thead>\r\n";
$am .= "\r\n<tbody>\r\n";
echo $am;
}
$mg= "";$i=0;
echo "\r\n<tr>\r\n";
foreach ($ml as $bo => $yu ) {
$i++;
if(Trim($yu)==""){$yu = "-";} //空值情况
$uo = $yu; $fr++; $st=""; $et="";
echo "<td data-label=\"{$bo}\">$uo</td>\r\n";
}
echo "</tr>\r\n";
}
$li = $li;
if($gr<1){
exit("没有查询到[$di]相关信息哦");
}else{
echo "</tbody>\r\n";
if($pagecount>0){ //页码比0大,表示有数据
echo "<tr><td colspan=\"{$li}\">";
if($pagecount>$ni){ $er=$ni;}else{$er=$pagecount;}
for($ho=0;$ho<$er;$ho++){
$eg=$ho+1;
if("x".$mi=="x".$eg){
echo "第<span id=\"se\">$eg</span>页\r\n";
}else{
echo " <a href=\"#\" onClick=\"uo(2,{$eg})\" >$eg</a>\r\n";
}
}
echo '<!--<span>' . $pagesize . '</span>条/页-->';
echo '共<span>' . $pagecount . '</span>页<span>' . $recs . '</span>条结果';
echo '</td><tr>';
}
}
echo "</table>\r\n";
echo "\r\n<!--endprint-->\r\n</div>\r\n";
$etime=microtime(true);
$total=$etime-$stime;
echo "<!----页面执行时间:{$total} ]秒--->";
break;
default:
echo "[{$sq}]你想干嘛呢?";
}
exit();
}
?>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<title><?php echo $title;?></title>
<!-- 请保留以下信息:不显示的-->
<meta name="author" content="yujianyue, admin@ewuyi.net">
<meta name="copyright" content="www.12391.net">
<meta name="shuomingshu" content="http://soulide.96448.cn/readme.html">
<!-- 请保留以上信息:不显示的-->
<link href="./inc/css/style.css?t=<?php echo $lm;?>" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./inc/js/us.js?t=<?php echo $lm;?>"></script>
</head>
<body onLoad="inst();">
<div class="html">
<div class="divs" id="divs">
<div id="head" class="head">
<div class="od"><?php echo $title;?></div>
<div class="back" id="xd">
<ul id="menu" class="center">
<li class="menu"><a href="javascript:rg();" class="btn">更多</a>
<dl class="list" id="list">
<li><a href="?t=t<?php echo uniqid();?>" class="d">刷新本页</a></li>
<li><a href="./?t=t<?php echo uniqid();?>" class="d" target="_blank">访问前台</a></li>
<li><a href="javascript:eq('site','');" class="d">系统设置</a></li>
<li><a href="javascript:eq('sqls','');" class="d">数据库配置</a></li>
<li><a href="javascript:eq('duan','');" class="d">字段别名</a></li>
<li><a href="javascript:eq('list','');" class="d">数据浏览</a></li>
<li><a href="javascript:eq('xi','');" class="d">修改密码</a></li>
<li><a href="javascript:eq('ba','');" class="d">关于查询</a></li>
<li><a href="javascript:eq('ss','');" class="d">退出登录</a></li>
</dl></li>
</ul>
</div>
</div>
<div class="main" id="main">
<div class="ff" id="ff">
<span onclick="tk()" class="close">&times;</span>
<div id="nt"></div>
</div>
<div class="so_bus" id="wt">
<!---你的其他说明在这里添加:开始-->
<?php echo "<script>eq('site','');</script>";?>
<!--你的其他说明在这里添加:结束-->
</div>
</div>
<div class="boto" id="boto">
&copy;<?php echo date('Y');?>&nbsp; <a href="<?php echo $lu;?>" target="_blank"><?php echo $copyr;?></a>
</div>
<script type="text/javascript">
if ($("menu")!=null) {
var menu = $("menu").childNodes;
for (var i=0;i<menu.length;i++){
if (menu[i].className=="menu"){
menu[i].onmouseover = function(){ih(this,"block")};
menu[i].onmouseout = function(){ih(this,"none")};
}
}
}
function ih(obj,flag){
obj.getElementsByTagName("dl")[0].style.display = flag;
}
</script>
</div>
</div>
<div id="bg" class="modal" onclick="tk()"></div>
<!-- 版本信息 查立得php+mysql快查系统后台版 chalideKuaiCha -->
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/weivote/chalide.git
git@gitee.com:weivote/chalide.git
weivote
chalide
查立得万能搜
master

搜索帮助