我需要使用一些像会话ID这样的唯一ID。 如何在php中获取会话ID?
答案 0 :(得分:75)
session_start();
echo session_id();
答案 1 :(得分:17)
我不建议你开始会话只是为了获得一些独特的ID。相反,请使用uniqid()
这样的内容,因为它旨在返回唯一ID。
但是,如果您已经有会话,那么当然要使用session_id()
来获取会话ID - 但不要依赖于此,因为“唯一ID”与“会话ID”不同常识:例如,大多数浏览器中的多个选项卡将使用相同的进程,因此,在结果中使用相同的会话标识符 - 因此,不同的连接将具有相同的ID。这是您对所需行为的决定,我之前提到这只是为了显示会话ID和唯一ID之间的区别。
答案 2 :(得分:8)
在获取会话ID之前,您需要启动一个会话,这可以通过以下方式完成: session_start()函数。
现在您已经开始会话,您可以使用以下命令获取会话ID: SESSION_ID()。
/* A small piece of code for setting, displaying and destroying session in PHP */
<?php
session_start();
$r=session_id();
/* SOME PIECE OF CODE TO AUTHENTICATE THE USER, MOSTLY SQL QUERY... */
/* now registering a session for an authenticated user */
$_SESSION['username']=$username;
/* now displaying the session id..... */
echo "the session id id: ".$r;
echo " and the session has been registered for: ".$_SESSION['username'];
/* now destroying the session id */
if(isset($_SESSION['username']))
{
$_SESSION=array();
unset($_SESSION);
session_destroy();
echo "session destroyed...";
}
?>
答案 3 :(得分:2)
答案 4 :(得分:2)
if(isset($_POST['submit']))
{
if(!empty($_POST['login_username']) && !empty($_POST['login_password']))
{
$uname = $_POST['login_username'];
$pass = $_POST['login_password'];
$res="SELECT count(*),uname,role FROM users WHERE uname='$uname' and password='$pass' ";
$query=mysql_query($res)or die (mysql_error());
list($result,$uname,$role) = mysql_fetch_row($query);
$_SESSION['username'] = $uname;
$_SESSION['role'] = $role;
if(isset($_SESSION['username']) && $_SESSION['role']=="admin")
{
if($result>0)
{
header ('Location:Dashboard.php');
}
else
{
header ('Location:loginform.php');
}
}
答案 5 :(得分:-6)
首先在PHP文件中注册会话
<? session_start();
$_SESSION['id'] = $userData['user_id'];?>
在php应用程序的每个页面中,您都可以检索会话ID
<? session_start()
id = $_SESSION['id'];
?>