将会话数据从一个PHP页面传递到另一个PHP页面是否有效?

将会话数据从一个PHP页面传递到另一个PHP页面是否有效?,php,uri,session-variables,Php,Uri,Session Variables,我想知道使用会话变量将数据从一个PHP页面传递到另一个页面是否有效。我这样问是因为我认为会话只用于让用户登录到网站,并作为cookie的替代。通过诸如members.php之类的URI将数据(非敏感)从一个页面传递到另一个页面不是更好吗?name=Joe&age=28?取决于您正在做什么。如果该页面要求信息正常运行,并且不在登录后面,那么传递查询字符串是一种方法(例如,搜索结果、产品页面)。如果是在登录之后,那么使用会话将允许您保持URL的干净,也会使用户难以滥用页面(例如,交换查询字符串中的数

我想知道使用会话变量将数据从一个PHP页面传递到另一个页面是否有效。我这样问是因为我认为会话只用于让用户登录到网站,并作为cookie的替代。通过诸如
members.php之类的URI将数据(非敏感)从一个页面传递到另一个页面不是更好吗?name=Joe&age=28

取决于您正在做什么。如果该页面要求信息正常运行,并且不在登录后面,那么传递查询字符串是一种方法(例如,搜索结果、产品页面)。如果是在登录之后,那么使用会话将允许您保持URL的干净,也会使用户难以滥用页面(例如,交换查询字符串中的数据)。

取决于您正在做什么。如果该页面要求信息正常运行,并且不在登录后面,那么传递查询字符串是一种方法(例如,搜索结果、产品页面)。如果它是在登录之后,那么使用会话将允许您保持URL干净,也会使用户难以滥用页面(例如,调出查询字符串中的数据)。

PHP会话将cookie写入浏览器,然后将与该会话相关的数据存储在磁盘上;在下一次页面加载时读回它的成本大约与include()一样高,也就是说完全是微不足道的

此外,用户不能更改会话数据,除非您创建一种允许用户更改会话数据的机制;它们很容易弄乱查询字符串


简短回答:是的,很有效。

PHP会话将cookie写入浏览器,然后将与该会话相关的数据存储在磁盘上;在下一次页面加载时读回它的成本大约与include()一样高,也就是说完全是微不足道的

此外,用户不能更改会话数据,除非您创建一种允许用户更改会话数据的机制;它们很容易弄乱查询字符串


简短回答:是的,它很有效。

是的,您可以在会话中存储数据和消息,并且可以从任何页面访问。但请记住,会话使用浏览器支持来存储数据。用户可以手动删除它们

是的,您可以在会话中存储数据和消息,并且可以从任何页面进行访问。但请记住,会话使用浏览器支持来存储数据。用户可以手动删除它们

会话对很多事情都很有用,不仅仅是登录信息。它们非常适合在POST/redirect/GET周期中保存状态消息,或者跟踪用户会话(因此得名)状态的任何其他内容,但仅限于当前会话,而不是长期的永久配置选项

就效率而言,您需要记住,会话中的任何内容都需要在每次页面加载时序列化和非序列化。储存姓名和年龄不会增加多少。增加一兆字节的图像上传可能是不好的


比效率考虑更重要的是记住会话数据只是暂时持久的。如果你想知道乔是28岁,就应该把它放在数据库里。如果它只对单个页面加载有用,那么它可能应该留在URL中或被发布。如果您有兴趣记住几分钟,会话可能是放置它的地方。

会话对于很多事情都很有用,而不仅仅是登录信息。它们非常适合在POST/redirect/GET周期中保存状态消息,或者跟踪用户会话(因此得名)状态的任何其他内容,但仅限于当前会话,而不是长期的永久配置选项

就效率而言,您需要记住,会话中的任何内容都需要在每次页面加载时序列化和非序列化。储存姓名和年龄不会增加多少。增加一兆字节的图像上传可能是不好的


比效率考虑更重要的是记住会话数据只是暂时持久的。如果你想知道乔是28岁,就应该把它放在数据库里。如果它只对单个页面加载有用,那么它可能应该留在URL中或被发布。如果您有兴趣记住它几分钟,会话可能就是放置它的地方。

会话只使用浏览器存储会话ID cookie,而不是会话数据。我的意思是,它需要浏览器支持,会话数据存储在服务器上,但ID在浏览器中。如果通过删除cookie删除ID,则即使阵列键存在,也无法检索数据session仅使用浏览器存储会话ID cookie,而不是会话数据。这就是我所说的它需要浏览器支持,会话数据存储在服务器上,但ID在浏览器中。如果通过删除Cookie删除ID,则即使存在数组键,也无法检索数据