我倒.
他是一种无状态协议.
在一个页面中的变量是不能在另外一个页面中使用的.可是session可以.
session中的注册变量可以作为全局变量使用.也就是在本网站内的所有的程序都能使用.session可以用来实现以下功能:用户身份认证,程序状态的记录,页面之间的参数传递等.

解决方案 »

  1.   

    session 传递的是session_register()中被您注册的东西 很方便的
      

  2.   

    说到SESSION不能不提到COOKIE,COOKIE和SESSION一样,都起存取网页中的全局变量,但它们又有不同之处:COOKIE是存在客户机上(不安全),而SESSION是存在服务器上(安全),SESSION是通过以COOKIE的形式存在客户机上,但它不是存全局变量的值,而时存一个SESSION ID,当客户端请求服务器时,它就通过SESSION ID到服务器上去找SESSION ID 所对应的文件,这个文件的文件名是跟SESSION ID存的值一样,里面存的就是客户机上的全局变量。就可以取的所需的值。还有一个很重要的:当客户端的COOKIE被关掉时,则COOKIE失效,而SESSION则不会,它会跟在地址栏后面,如:http://www.csdn.net/go/sub.php?sessionid=1af14255fdas22f4das5f,这个SESSIONID是在执行session_start();时产生的随机数,并同时在服务器端的一个指定的目录下产生以此为文件名的文本文件,以用来存取所需的变量。
      

  3.   

    globe 声明的变量也是全局变量,   session有什么区别
      

  4.   

    globe 虽然是全局变量,但他是基于模块的全局,比如同一页面,如果用 globe声明,即使在某个函数里面声明,函数外面也可以使用这个变量,但对于不同页面就没效,而 session是对于整个网站的所有页面都有效的。
      

  5.   

    这个也许对你有用,
    php session使用初探 
      经过实验发现,PHP4的session只对当前打开的浏览器窗口有效(至少在W2K下的IE5和NS6中是这样)。  实验步骤:  首先我们来建立两个文件。test1.phpsession_start();session_register("count");echo $count=0;?>test2.phpsession_start();echo $count++;?>  然后为了避免不必要的影响我们清空浏览器的cache,打开两个浏览器窗口,在第二个浏览器的窗口中执行test1.php,这时我们应该看到浏览器中显示的值是0。继续在第二个浏览器的窗口中执行test2.php,并不断的刷新它,我们就会看到浏览器中的数值在不断的递增,这说明我们的session是起作用的。我们继续看看其他的情况,先在第一个浏览器的窗口中执行test2.php,没有显示继续刷新,仍没有显示。我们再打开第三个浏览器窗口并在其中执行test2.php,也是没有显示,这说明session不能跨窗口运行。  那么怎么才能让session可以跨窗口执行呢?我们一起来继续我们的实验。  首先,我们来看看使用cookie的情况,同样建立两个文件。test3.phpsetcookie("cookie","This is a cookie.",time()+3600,"/","www.md.hl.cn");?>test4.phpecho $cookie;?>然后我们仍然利用刚才打开的三个浏览器的窗口,先在第二个窗口中执行test3.php。没有任何显示,然后我们在三个窗口中分别执行test4.php,都会显示This is a cookie.这说明使用cookie是可以跨窗口执行的。  我们怎么才能让session跨窗口执行呢?其实session也在cookie中保存了session_id(不过session也可以不使用cookie,但这不在本文的讨论范围)。这个cookie的名字与你在php.ini中的session.name的设置有关,缺省时叫"PHPSESSID"。但在IE的cache中却找不到。你可以通过echo $HTTP_COOKIE_VARS["PHPSESSID"]来查看它的值,当然也可以通过setcookie()来设置它。PHP4中可以使用session_set_cookie_params()和session_get_cookie_params()来设置和查看session的cookie设置。但我试了一下不起任何作用,session仍然是关闭浏览器窗口就失效,仍然不能跨窗口运行。我想也许是我调用的方法不对,麻烦那位高手知道给指点一下。  最后,我们来继续完成我们的实验。这次要修改我们的文件test1.phptest1.phpsession_start();session_register("count");setcookie("PHPSESSID",session_id(),time()+3600,"/","www.md.hl.cn");echo $count=0;?>  然后我们再来重复我们的实验一,哈哈,这次session可以跨窗口使用了吧,并且关闭浏览器session也不会马上失效,上例中的session应该是1小时后失效,但在做实验二时,我吧3600改成120,查看IE的cache,此cookie是2分钟后到期
      

  6.   

    哪可是很好的东东呀,有了他你不用再在页面中传数了,只用记住SESSION就够了。很方便的。也更安全了。
      

  7.   

    谢谢 xizi2002(戏子) 回答
    最后,我们来继续完成我们的实验。这次要修改我们的文件test1.phptest1.phpsession_start();session_register("count");setcookie("PHPSESSID",session_id(),time()+3600,"/","www.md.hl.cn");echo $count=0;?>
      次session可以跨窗口使用了吧,并且关闭浏览器session也不会马上失效,上例中的session应该是1小时后失效,
    cookie 是在客户端的,关闭浏览器,不是消失了么,为什么session不会消失啊
      

  8.   

    还有一个问题啊, 请教啊
    上传文件包括所有的文件格式么 ,fopen("","') fread()  能读所有的文件格式么 ,利用它,可以把文件传到数据库中么,
      

  9.   

    当然可以了,fread是根据2进制读出来的,所以能读任何文件