Мне нужно использовать уникальный идентификатор, такой как идентификатор сеанса. Как получить идентификатор сеанса в php?
Как я могу получить идентификатор сеанса в php и показать его?
Ответ 1
session_start();
echo session_id();
Ответ 2
Я бы не рекомендовал вам запускать сеанс, чтобы получить уникальный идентификатор. Вместо этого используйте uniqid()
, поскольку он предназначен для возврата уникального идентификатора.
Однако, если у вас уже есть сеанс, то, конечно, используйте session_id()
, чтобы получить свой идентификатор сеанса, но не полагайтесь на этом, потому что "уникальный идентификатор" не такой же, как "идентификатор сеанса" в общем смысле: например, несколько вкладок в большинстве браузеров будут использовать один и тот же процесс, таким образом, использовать один и тот же идентификатор сеанса в результате - и, следовательно, разные соединения будут имеют одинаковый идентификатор. Это ваше решение о желаемом поведении, я упомянул об этом просто, чтобы показать разницу между идентификатором сеанса и уникальным идентификатором.
Ответ 3
Прежде чем получить идентификатор сеанса, вам нужно запустить сеанс, и это делается с помощью: session_start().
Теперь, когда вы запустили сеанс, вы можете получить идентификатор сеанса, используя: 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...";
}
?>
Ответ 4
У вас есть uniqid функция для уникального id
Вы можете добавить префикс, чтобы сделать его более уникальным
Источник: http://pk1.php.net/uniqid
Ответ 5
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');
}
}
Ответ 6
Сначала в файле PHP вам необходимо зарегистрировать сеанс
<? session_start();
$_SESSION['id'] = $userData['user_id'];?>
И на каждой странице вашего php-приложения вы можете получить идентификатор сеанса
<? session_start()
id = $_SESSION['id'];
?>