最近发觉杜初的那本<PHP5>的书不错,学习之,笔记之
1) 判断表单来源地址
<?php
$action = $_SERVER['PHP_SELF'];
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$ref = $_SERVER['HTTP_REFERER'];
$srv = "http://{$_SERVER['SERVER_NAME']}$action";
echo "当前来源为:<br><b>$ref</b><br>服务器地址为:<br><b>$srv</b><hr>";
if (strcmp($srv, $ref) == 0){
echo "匹配";
} else{
echo "不允许站外提交";
}
}else{
echo '请提交表单';
}
?>
<form action="<?php echo $action;?>" method="post">
<input type="submit" value="提交"/>
</form>
$_server['http_referer'] :保存一个完整的URL地址
$_server['server_name']:当前服务器的名称
$_server['php_self']:保存脚本完整路径.
2) htmlspechialchars($str)
这个是将HTML转义的,比如<a href="http://...>xxx</a>,实际上还是显示回<a href="http://...>xxx</a>,而不会显示成一个连接.
注意htmlspechialchars(xxxx,参数2,参数3),参数2中有三个选择
ENT_COMPAT:转换双引号但保留单引号
ENT_QUOTES:同时转换单引号和双引号
ENT_NOQUOTES:表示两个都不转换.默认是ENT_COMPAT
还有参数3是转换编码的,具体查手册
3) htmlentity_decode(),则把HTML字符正常显示为HTML字符的,如<a href="http://...>xxx</a>,会
连接成一个正常的连接.
4) strip_tags,将清楚所有HTML字符
如<a href="http://...>xxx</a>,将会显示为XXXX
如果要保留某一个字符的话,可以这样strip_tags($string,"<a>");
1) 判断表单来源地址
<?php
$action = $_SERVER['PHP_SELF'];
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$ref = $_SERVER['HTTP_REFERER'];
$srv = "http://{$_SERVER['SERVER_NAME']}$action";
echo "当前来源为:<br><b>$ref</b><br>服务器地址为:<br><b>$srv</b><hr>";
if (strcmp($srv, $ref) == 0){
echo "匹配";
} else{
echo "不允许站外提交";
}
}else{
echo '请提交表单';
}
?>
<form action="<?php echo $action;?>" method="post">
<input type="submit" value="提交"/>
</form>
$_server['http_referer'] :保存一个完整的URL地址
$_server['server_name']:当前服务器的名称
$_server['php_self']:保存脚本完整路径.
2) htmlspechialchars($str)
这个是将HTML转义的,比如<a href="http://...>xxx</a>,实际上还是显示回<a href="http://...>xxx</a>,而不会显示成一个连接.
注意htmlspechialchars(xxxx,参数2,参数3),参数2中有三个选择
ENT_COMPAT:转换双引号但保留单引号
ENT_QUOTES:同时转换单引号和双引号
ENT_NOQUOTES:表示两个都不转换.默认是ENT_COMPAT
还有参数3是转换编码的,具体查手册
3) htmlentity_decode(),则把HTML字符正常显示为HTML字符的,如<a href="http://...>xxx</a>,会
连接成一个正常的连接.
4) strip_tags,将清楚所有HTML字符
如<a href="http://...>xxx</a>,将会显示为XXXX
如果要保留某一个字符的话,可以这样strip_tags($string,"<a>");