【发布时间】:2013-07-11 14:49:57
【问题描述】:
我想生成一个会话 ID。这个唯一的 sessionId 代表每个不同用户的一些不同数据。
到目前为止我的代码:
-
页面的onclick和onload我调用了一个函数
create_session_id();function create_session_id() { // This function sends a string to a PHP page using ajax post. } -
在我的 PHP 页面上,我收到此数据,然后将其插入:
session_start(); $a = session_id(); $object->insert_sessionid($a);
我的问题
是否可以只使用session_start()(没有session_id())并存储一些唯一的会话ID 值,以便稍后在我获取数据并将数据发送到我的网页时使用。我不希望任何点击注册 sessionid。它应该在页面加载时发生,并且没有任何功能create_session_id()。
我正在考虑在图片中添加一些 cookie。
注意:我的网站不允许登录。
【问题讨论】:
-
呃,如果你想引入 cookie,你应该意识到 PHP 会话默认使用 cookie。所以只需使用 session_start(),然后使用
session_id()来获取已创建(或正在重用)的会话 ID。 -
你可以使用某种计数器吗?
-
session_start() 可以发生在任何 php 页面上,无需与用户进行任何额外的交互,而不仅仅是请求页面。但是 - 不使用“登录”而仅仅使用 cookie 本质上是不安全的,用户清除他们的 cookie 会生成一个新的“唯一”会话,因此您将无法通过此跟踪“用户”,只能重复会话已接受但未清除 cookie 的同一浏览器。
-
@GintasK 他可能可以,但这不会造成潜在的安全威胁,因为会话 ID 很容易被猜到吗?
-
@MarcB:我不需要重用会话 ID。事情是跟踪网站上的用户行为。因此,每个进入网站登录页面的用户都应该被赋予一个会话 ID。显然每个用户行为会有所不同。有人告诉我你可以通过使用 session_start() 来做到这一点。你能给我一个小的 sn-p。问题是我不需要像 create_session_id() 这样的函数并且想在加载时生成会话 ID ??怎么做?
标签: php session cookies session-cookies