利用Jquery给当前页或者跳转后页面的导航栏添加选中后样式

当鼠标选中页面导航栏的某一栏目后,如何给选中栏目添加特殊样式,一直没怎么搞清楚,今天学习了一下,并做个总结。

这边有两种情况,一种是直接给当前页面添加特殊样式,当网页刷新或者跳转到下一页后,样式消失;另一种情况是即使刷新页面后样式仍然有效。

直接上代码:

第一种情况:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript" src="templets/js/jquery.js"></script>  
<script type="text/javascript">
$(document).ready(function(){
$(".nav a").each(function(){
$(this).click(function(){
$(".nav .hover").removeClass("hover");
$(this).addClass("hover");
return false;//防止页面跳转
});
});
});
</script>

<div class="nav">
<ul>
<li><a href="1.html" class="hover"> 首页</a></li>
<li><a href="2.html"> 个人资料</a></li>
<li><a href="3.html"> 我的好友</a></li>
<li><a href="4.html"> 消息管理</a></li>
</ul>
</div>

Read More

php理解变量的作用域

作用域是指在一个脚本中某个变量可以使用或可见的范围,php具有6项基本的作用域规则。

1.内置超级全局变量可以在脚本的任何地方使用和可见。

2.常量,一旦被声明,将可以在全局可见;也就是说,它们在函数内外都可以使用。

3.在一个脚本中声明的全局变量在整个脚本中是可见的,但在函数内部不行。

4.函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。

5.在函数内部创建并声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值。

6.在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。

$_GET和$_POST数组以及一些其他特殊变量都具有各自的作用域规则。这些被称作超级全局变量,它们可以在任何地方使用和可见,包括内部和外部函数。

PHP中超全局变量$GLOBALS和global的区别

一、超全局变量$GLOBALS

PHP超全局变量有很多,如下的都属于超全局变量(Superglobal):

$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。

官方说明:

$GLOBALS — 引用全局作用域中可用的全部变量。
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
即出现过的全局变量,就可以通过$GLOBALS这个数组取得。
PHP生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。

Read More

关于get_magic_quotes_gpc()函数(交互数据转义的判断)

在PHP中get_magic_quotes_gpc()函数是内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。

那么就先说一下magic_quotes_gpc选项:
如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

在magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。

正是因为这个选项必须为On,但是又让用户进行配置的矛盾(用户必须在代码中加入magic_quotes_gpc是否开启的判断,如果是off状态,就必须调用addslashes这个函数来为字符串增加转义),在PHP6中删除了这个选项,一切的编程都需要在magic_quotes_gpc=Off下进行了。在这样的环境下如果不对用户的数据进行转义,后果不仅仅是程序错误而已了。同样的会引起数据库被注入攻击的危险。所以从现在开始大家都不要再依赖这个设置为On了,以免有一天你的服务器需要更新到PHP6而导致你的程序不能正常工作。

Read More