标签 PHP 下的文章

<?php
function customError($errno, $errstr, $errfile, $errline)
{ 
echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />";
die();
}
set_error_handler("customError",E_ERROR);
$getfilter="'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
$postfilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
$cookiefilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){  
if(is_array($StrFiltValue))
    $StrFiltValue=implode($StrFiltValue);
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){   
   error_log("IP: ".$_SERVER["REMOTE_ADDR"].": ".strftime("%Y-%m-%d %H:%M:%S").":".$_SERVER["PHP_SELF"].": ".$_SERVER["REQUEST_METHOD"].": ".$StrFiltKey.": ".$StrFiltValue."\n",3, "XundaslSqlSafe-".date("Y-m-d", time()).".log");
   echo "警告:非法操作!";
   exit();
}      
}  
foreach($_GET as $key=>$value)
        StopAttack($key,$value,$getfilter);
foreach($_POST as $key=>$value) 
        StopAttack($key,$value,$postfilter);
foreach($_COOKIE as $key=>$value)
        StopAttack($key,$value,$cookiefilter);
?>


来自老赵茶馆:使用PHP方式切换CSS样式

CSS-Style-Switcher地址:Github

效果就是我网站的右上角的皮肤切换按钮,网上切换CSS样式的教程其实很多,但都是以js的方式切换的,就是说虽然有cookie效果,但每次都要加载这段js,甚至有时出现延迟闪烁的问题,我的Teahouse就是使用js的ajax方式的。我后来谷歌了一下,找到了使用PHP方式切换CSS样式,效果更理想些,可惜每次都要刷新。

先看看作者的概述:
一个简单的切换CSS样式的PHP脚本,支持一次多个CSS文件,具有默认的CSS文件的支持,更多等等,一个漂亮整洁的脚本而且比JavaScript更稳定的解决方案。

功能

无须PHP知识,不用安装,只需把这个脚本拖放到你的CSS文件夹,并且确保你的服务器支持PHP
只有一个HTML文件的情况下,通过多个CSS文件来理想的展示你工作。
比JavaScript模式更快,而且就算浏览器没开启js支持也没问题
自动定义以下顺序的一个或多个默认的CSS文件:
自动寻找default_1.css和default_2.css作为默认样式
假如寻找不到默认样式,即按字母寻找第一个CSS文件
使用链接来改变CSS样式,设置Cookie为1小时,然后重定向到最后一页。如果上次访问页面无法找到(HTTP_REFERER)PHP脚本将重定向到网站的索引。

使用

在头部引入脚本

<link rel="stylesheet" type="text/css" href="css/switch.php">

把你的css样式文件都放到PHP脚本的同一目录下
通过链接改变CSS样式

<a href=”css/switcher.php?style=another_1.css”>其它样式</a>