php学习笔记
1、$_SERVER['SCRIPT_NAME']、$_SERVER['PHP_SELF']和$_SERVER['REQUEST_URI']区别
例子:http://localhost/phpwind75/test.php/%22%3E%3Cscript%3Ealert(’xss’)%3C/script%3E%3Cfoo
$_SERVER['SCRIPT_NAME']只获取脚本名,不获取参数,输出结果为:test.php;
$_SERVER['PHP_SELF']获取脚本名后,同时获取参数数据,并对参数数据进行一次urldecode操作,易出现跨站攻击现象,输出结果为:
"><script>alert('xss')</script><foo
$_SERVER['REQUEST_URI']获取脚本名后,同时获取参数原始数据,操作结果为:
test.php/%22%3E%3Cscript%3Ealert(’xss’)%3C/script%3E%3Cfoo
2、urldecode与rawurldecode区别
urldecode将"+"解析为" ",而rawurldecode则不解析
3、&&与||优先级问题
&&级别比||高
4、全局变量问题
如果在同一个文件内$a= $_GLOBALS[a];
在函数中如果要引用全局变量则必须:global $a;否则只是私有变量
例如:
global $a;
$a=2;
function test(){
echo $a;
}
test();
这个结果将为空
而
global $a;
$a=2;
function test(){
global $a;
echo $a;
}
test();
这个结果将为:2,
如果使用$_GLOBALS[a]的话,则结果也为2:
global $a;
$a=2;
function test(){
echo $GLOBALS[a];
}
test();
相关文档:
这个是由asp二级侧拉菜单改的
<script language="javascript">
// JavaScript Document
startList = function() {
if (document.all && document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.chil ......
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['S ......
今天是一个值得纪念的日子,终于把别的事情都干掉了,可以一心一意的学习我最爱的PHP了,小欢呼一下.耶~~
首先.结合自己的思考,有了几个关于1+1=2的表示方法,具体罗列如下:
首先是一种很简单的表示方法:
<?php
$a =1+1;
echo "1+1=".$a;
?>
//这种方法用的并不多,只是为了加深对变量 ......
可以简单的有两个for循环表示 九九乘法表,但是并不知道如何进行URL的设置.
<?php
for($a =1;$a<=9;$a++)
{
for($b =1;$b<=$a;$b++)
{$c =$a *$b;
echo "$a*$b=$c ";
}
echo "<p>";
}
?> ......