function jk1986_checksql()
{
$bad_str = "and|select|update|'|delete|insert|*";
$bad_Array = explode("|",$bad_str);
/** 过滤Get参数 **/
foreach ($bad_Array as $bad_a)
{
foreach ($_GET as $g)
{
if (substr_count(strtolower($g),$bad_a) > 0)
{
echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='/blog_article/index.html';</script>";
exit();
}
}
}
/** 过滤Post参数 **/
foreach ($bad_Array as $bad_a)
{
foreach ($_POST as $p)
{
if (substr_count(strtolower($p),$bad_a) > 0)
{
echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='/blog_article/index.html';</script>";
exit();
}
}
}
/** 过滤Cookies参数 **/
foreach ($bad_Array as $bad_a)
{
foreach ($_COOKIE as $co)
{
if (substr_count(strtolower($co),$bad_a) > 0)
{
echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='/blog_article/index.html';</script>";
exit();
}
}
}
}
呵呵 类似asp和asp.net 思路一样,目的就是让懒来提高效率 .88
wordpress是当前网终上最的行的内容发布工具之一。它拥有成千上万的免费主题和插件,帮助新手方便快捷地将内容发布到网络上。但是很多时候仅仅将内容发存到网终上是不够的,吸引用户来你的网站是一门科学也是一门艺术,当然wordpress也有许多插件帮我们改善这一点。以下是几个一流的SEO插件列表,它们可以帮助我们提高WordPress站点在搜索引擎中的排名。
1. SEO Rank Reporter
它可以跟踪站点内特定的关键词,并每3天生成一个很美观的图形化的报表。当某个关键词在搜索引擎排名有大的变化时,插件还可以通过邮件的方式通知站长。
稍微研究一下wordpress的SEO插件,你就会选择这款插件。这是一个最流行的wordpress站点搜索引擎优化的解决方案。这款插件通过生成meta标签并帮助你优化网页标题来针对搜索引擎自动优化你的wordpress站点。高级用户还可以为每篇文章自定义文
章标题,描述,URL结构以及标签。
如其名字一样,这是一款终级SEO工具。它有一个叫做“Canonicalizer”的特性,继承了wordpress原生的canonical特性,确保在网页具有相同内容但URL不同的情况下网页爬虫能指向最主要的那一个。它内置了robot.txt编辑器,使得设置这个搜索引擎索引文件更加容易。它与All in One SEO Pack很好地兼容,使得你可以导入All in One SEO Pack的元数据而切换到SEO Ultimate。
这个特别的插件帮你识别你网站中的弱内容。比如,很多wordpress站长忘记包含类别的描述(这是一个潜在的增加搜索引擎排名的点),SEO Content Control帮你轻松地找出这些潜在的问题。
人们常常忽略对图片作搜索引擎优化。但是如果做得好的话,你可以增加图片的语义性,可访问性,以及搜索引擎的可索引性,尤其是对图片搜索引擎。这个插件可以自动更新你的图片的alt和title属性。
这个插件自动基于前一页和前一篇文章为你blog里的文章中的关键词和短语加上链接。它可以设置你的独特的关键词并套用匹配的URL。它还可以设置nofollow属性,以及在新窗口或标签页中打开链接。这是一个非常方便的节约时间的方法,可以学习一些SEO的最佳实践并把站内的文章联结起来。
这个插件可以生成XML的sitemap,这个sitemap可以帮助搜索引擎爬虫抓取和索引你的wordpress站点。XML Sitemaps向搜索引擎直接地表明了你站点内容的结构。该插件也支持Bing,Yahoo!,Ask.com和MSN,并在你每发表一篇文章时通知它们。
这款SEO插件具有许多功能特性,包括自动生成meta标签,优化页面和文章标题,帮助避免重复内容等。
这些wordpress插件将给你的wordpress站点一个全面的SEO检查。安装它们并且理解每个插件的内部工作原理可能需要一些时间,但是了解每个插件是如何给你的站点带来好处是值得的。使用得当的话,你的内容将更明显,潜在的吸引更多目标用户带来的额外流量。
首先假设你已经部署了web服务器和php,并下载了zend framework的最新版本,创建了一个最原始的zend framework项目,并可以访问默认的action了。你可以使用zend framework工具来创建项目,具体操作参见使用zend framework创建项目。当然也可以自己手动建立文件夹和文件,参见zend framework推荐的项目目录结构。
简单地看一下默认的几个重要目录。
首先是public,它不但存放了程序的入口点index.php,还可以存放图片,css,javascript文件等。
其次是library,用于存放一些类库,包括你自己定义的或第三方的类库。
然后是test,用于存放单元测试等测试文件的。
最后,也是和我们这里要讲的关系最大的目录——application。进到application目录下,会有以下目录:
configs:存放配置文件,一般会有一个主配置文件application.ini;
controllers:操制器,如默认的IndexController.php;
models:存放业务逻辑,数据模型等文件;
views:视图层的脚本,一般以.phtml为后缀名;
modules:模块目录,使用工具默认选项自动生成的是没有这个目录的,需要手动添加。modules底下可以包含多个以模块名命名的文件夹,如admin,默认是default,一个文件夹代表一个模块,其下的目录结构与application目录类似,又可以包含controllers,models,views等目录。需要注意的是模块下的controllers下面的文件的类名请加上模块名前缀,如application/modules/admin/controllers/IndexController.php的类名为Admin_IndexController。
如果你需要在项目中方便的使用你自己写的一些类库(如名称空间是Rockux),或是第三方的类库,可以修改application.ini文件,添加以下行:
autoloaderNamespaces.rockux = "Rockux_"
autoloaderNamespaces.thirdParty = "ThirdPartyLibrary_"
当然你也可以根据需要多添加几个,不过请注意最后面的下划线。
2、建立模块
现在我们来创建一个admin模块,目录如下:
application/modules/admin/controllers
application/modules/admin/models
application/modules/admin/views
application/modules/admin/views/scripts
application/modules/admin/views/helpers
application/modules/admin/views/filters
并创建以下文件:
application/modules/admin/controllers/IndexController.php(类名为Admin_IndexController)
application/modules/admin/views/scripts/index/index.phtml
除了新建模块文件之外,还需要更改配置文件application.ini,删除以下行,如果有的话:
resources.frontController.controllerDirectory = APPLICATION_PATH"/controllers"
再加上如下行:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultModule = "default"
resources.modules[]
这样,再访问http://localhost/admin,应该就能看到admin模块输出的内容了。
如果我们要充分发挥模块的强大功能,我们还需要为模块添加一个启动文件——Bootstrap.php。它可以使得你在事个模块中方便的使用类资源,models, filters, helpers等。在admin下新建Bootstrap.php,代码如下:
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
并且在application/Bootstrap.php文件里加入以下方法:
protected function _initAppAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'App',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
admin.resources.layout.layout = "admin"
第二种,不同模块的布局脚本文件分别存放在各自的模块文件夹下
可以在application下新建如下目录和文件:
application/layouts/scripts/layout.phtml
application/modules/admin/layouts/scripts/layout.phtml
在配置文件application.ini中添加如下几行:
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts/scripts"
不论是第一种还是第二种,这时如果访问http://localhost/admin,你会发现系统并没有使用期望的admin.phtml作为布局文件,而是使用了默认的layout.phtml。这是因为admin那行配置并不是系统默认能处理的有效配置,所以我们要自己来处理它。
我们新建文件:library/Rockux/Controller/Action/Helper/LayoutLoader.php,
针对第一种情况代码如下:
class Rockux_Controller_Action_Helper_LayoutLoader extends Zend_Controller_Action_Helper_Abstract
{
public function preDispatch()
{
$bootstrap = $this->getActionController()
->getInvokeArg('bootstrap');
$config = $bootstrap->getOptions();
$module = $this->getRequest()->getModuleName();
if (isset($config[$module]['resources']['layout']['layout'])) {
$layoutScript = $config[$module]['resources']['layout']['layout'];
$this->getActionController()
->getHelper('layout')
->setLayout($layoutScript);
}
}
}
针对第二种情况代码如下:
class Rockux_Controller_Action_Helper_LayoutLoader extends Zend_Controller_Action_Helper_Abstract
{
public function preDispatch()
{
$bootstrap = $this->getActionController()
->getInvokeArg('bootstrap');
$config = $bootstrap->getOptions();
$module = $this->getRequest()->getModuleName();
if (isset($config[$module]['resources']['layout']['layoutPath'])) {
$layoutPath =
$config[$module]['resources']['layout']['layoutPath'];
$this->getActionController()
->getHelper('layout')
->setLayoutPath($layoutPath);
}
}
}
接下来我们还需要将它添加到application/Bootstrap.php里去
protected function _initLayoutHelper()
{
$this->bootstrap('frontController');
$layout = Zend_Controller_Action_HelperBroker::addHelper(
new Rockux_Controller_Action_Helper_LayoutLoader());
}
再次访问http://localhost/admin,应当就可以看到使用指定的布局文件了。
如果要针对某个特定的controller使用特定的layout,可以在controller的init()方法里添加如下代码:
$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('layout_special');