php服务器session
㈠ php服务器端怎样获得session
你可以按下面的步骤试一下:
一、首先确认你在首页上对session已经正确赋值(测试的方法是在首页赋值一个session后再取出并显示,看看结果是否能够输出)
二、你确认你在子页面中取出的session就是首页所赋值的session,没有写错字符,是否把0看成了O,把1看成了L
三、session_start()函数不但在赋值页需要打开,在取值页面也是要开的,而且你确认session_start位于所有输出之前开启的吗?(也就是说,在session_start()函数之前,不能存在什么echo
/print/print_r/var_mp/之类的能够在网页上打印文本的语句!)
四、你是否确定你测试你自己网站所使用的浏览器开启了cookie,是否因为防止广告跟踪等关闭了浏览器的cookie(因为session基于cookie)
五、如果还是不行,你打开你的php.ini文件,查找到[Session],然后在里面看一下session到底有没有开启、目录设置在哪里,PHP是否对所设置的目录拥有读写权限(Linux)、是否使用了数据库存储等等
如果你确认了以上这几条,还是没办法解决这个问题,你可以短信我,我给你我的Q之后远程帮你调试。
㈡ php中$_session[]是什么意思
用户会话保存变量
1.php文件
<?php
session_start();
$_SESSION["str"]="我是中国人!!!";
?>
2.php文件
<?php
session_start();
echo $_SESSION["str"];
?>
先执行1.php,,再执行2.php,,会看到在1.php里面设置的变量被输出了,,就这作用,,用来保存跨域的变量
楼上说的不对,,session虽说是保存在服务器端,,但对客户端仍有数据发送,并且是以cookie的方式,,如果客户端禁用了cookie,,session也是用不了的.....还有,,session也是可以造假的...并不一定百分之一百安全
㈢ php中如何使用SESSION
1、在php中使用session,首先要启动session会话,启动session会话要使用php内置函数session_start(),如图所示。
㈣ php在服务器中获取不到session的值
确定一下几点
1之前的代码逻辑是否已经给session赋值,使用
var_mp
($_SESSION)来查看
2请求中是否回传了PHPSESSID,如果没有,则可能导致获取session失败
3是否在操作时清除了浏览器的cookie?
㈤ php 怎么使用session
PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且session中同一浏览器同一站点只能有一个session_id,下面我们一起来看看关于session使用方法。
如何使用session,凡是与session有关的,之前必须调用函数session_start();
为session赋值很简单,如:
<?php
Session_start();
$Name = "这是一个Session例子";
Session_Register("Name");//注意,不要写成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之后$_SESSION["Name"]为"这是一个Session例子"
?>
在php4.2之后,可以为session直接赋值:
复制代码 代码如下:
<?PHP
Session_Start();
$_SESSION["name"]="value";
?>
㈥ 编程语言php中,session的意思以及详细的介绍(望语言直白些)谢谢啦!
Session,中文译为“会话”,它的主要用途在于实现对客户端调用状态的保持。
要理解这个意思,可以考虑以下的情况:
你访问某个网站,然后这个网站是需要以会员身份登录的,那么当你输入用户名、密码正确登录后,这个信息怎么让下面的网页得知这个呢?
我们知道,网页是无状态的,这句话的意思是:如果你访问 a 网页,再访问 b 网页,从实质上说,两个网页之间如果没有特别的手段是完全互不相干的(唯一的联系可能是这两个文件都存在一个服务器上)。
php里的session是超全局数组(php 5以上版本),从这个角度来说,你可以把session看成是保存在内存里,供所有php脚本的访问的数据块。
请参看以下相关资料:
关于session
我们知道,用户访问一个网站时往往需要浏览许多网页。对于一个通过PHP构筑的网站来说,用户在访问的过程中需要执行许多的PHP脚本。然而由于HTTP协议自身的特点,用户每执行一个PHP脚本都需要和Web服务器重新建立连接。
又由于无状态记忆的特点,此次连接无法得到上次连接的状态。这样,用户在一个PHP脚本中对一个变量进行了赋值操作,而在另外一个PHP脚本中却无法得到这个变量的值。例如,用户在负责登录的PHP脚本中设置了$user="wind",却无法在另一个PHP脚本中通过调用$user来获得“wind”这个值。也就是说,在PHP中无法设置全局变量。每个PHP脚本中所定义的变量都是只在这个脚本内有效的局部变量。
Session解决方案,就是要提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个Session中对于所有的PHP脚本都有效。上面我们提到了,Session不是一个简单的时间概念,一个Session中还包括了特定的用户和服务器。因此更详细地讲,在一个Session定义的全局变量的作用范围,是指这个Session所对应的用户所访问的所有PHP。
例如A用户通过Session定义了一个全局变量$user=“wind”中,而B用户通过Session定义的全局变量$user=“jane”。那么在A用户所访问的PHP脚本中,$user的值就是wind。
php中的Session与Cookie
在PHP开发中对比起Cookie,session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 session 的使用。
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。
对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。
而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。
当然使用 session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。
㈦ PHP中,两个服务器如何传递SESSION
最好的办法是把SESSION写进数据库,又安全,数据库开启远程访问,也就是在一台电脑上可以访问另一台电脑的数据库,这样两个服务器的SESSION都把数据写进这一个数据库里,又可以相互读取,数据库也就是做了一个桥梁。
㈧ php中session问题
因为session是保存服务器
端的,
其实cookie也应该是一样的,你不将数据提交
就相当于没给变量负直,
刷新后
因为
之前给复直过了,这样
就能够获取到那个值了,
㈨ PHP(或其他语言) 的Session 运行机制是
session实现与工作原理
浏览器和服务器采用http无状态的通讯,为了保持客户端的状态,使用session来达到这个目的。然而服务端是怎么样标示不同的客户端或用户呢?
假如你参加一个晚会,认识了很多人,你会采取什么方式来区分不同的人呢!你可能根据脸型,也有可能根据用户的名字,或者人的身份证,即采用一个独一无二的标示。在session机制中,也采用了这样的一个唯一的session_id来标示不同的用户,不同的是:浏览器每次请求都会带上由服务器为它生成的session_id.
简单介绍一下流程:当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时将标示session的session_id传递给客户端浏览器,
浏览器将这个session_id保存在内存中(还有其他的存储方式,例如写在url中),我们称之为无过期时间的cookie。浏览器关闭后,这个cookie就清掉了,它不会存在用户的cookie临时文件。
以后浏览器每次请求都会额外加上这个参数值,再服务器根据这个session_id,就能取得客户端的数据状态。
如果客户端浏览器意外关闭,服务器保存的session数据不是立即释放,此时数据还会存在,只要我们知道那个session_id,就可以继续通过请求获得此session的信息;但是这个时候后台的session还存在,但是session的保存有一个过期
时间,一旦超过规定时间没有客户端请求时,他就会清除这个session。
下面介绍一下session的存储机制,默认的session是保存在files中,即以文件的方式保存session数据。在php中主要根据php.ini的配置session.save_handler来选择保存session的方式。如果要做服务器的lvs,即多台server的话,我们一般使用memcached的方式session,否则会导致一些请求找不到session。
一个简单的memcache配置:
session.save_handler = memcache
session.save_path = "tcp://12.8.1.8:1000"
当然如果一定要使用files文件缓存,我们可以将文件作nfs,将所有的保存session文件定位到一个地方。返回给用户的session-id最终保存在内存中,这里我们也可以设置参数将其保存在用户的url中。
㈩ php中session存在了哪里
当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。 默认情况下,php.ini 中设置的 SESSION 保存方式是 files(session.save_handler = files),即使用读写文件的方式保存 SESSION 数据,而 SESSION 文件保存的目录由