If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
Введение
Поддержка сессий в PHP заключается в способе сохранения некоторых данных между несколькими последовательными доступами. Это позволяет наилучшим образом разработать индивдуальные приложения и увеличить привлекательность веб-сайта.
Каждому посетителю сайта присваивается уникальный идентификатор, называемый идентификатором сессии (session id). Он хранится либо в cookie на стороне пользователя, либо передается через URL.
Поддержка сессий позволяет сохранять данные между запросами в суперглобальном массиве $_SESSION. В тот момент, когда посетитель получает доступ к сайту, PHP проверяет (автоматически, если session.auto_start установлено в 1, или по запросу явным образом через вызов session_start() или неявным через session_register()), если определенный идентификатор сессии послан вместе с запросом. Если это так, восстанавливается сохраненное ранее окружение.
При включенном session.auto_start, единственным способом помещения объектов в сессию останется загрузка описаний класса с помощью auto_prepend_file. В противном случае придется выполнить сериализацию (serialize()) и десериализацию (unserialize()) объекта вручную.
$_SESSION (и все зарегистрированныее переменные) сериализуются внутри PHP после выполнения запроса, используя обработчик сериализации, указанный в INI-опции session.serialize_handler. Зарегистрированные, но неопределенные переменные помечаются как неопределенные. При последующем доступе они не определяются сессионным модулем пока пользователь заново не определит их.
Так как сессионные данные сериализуются, то переменные с типом resource не могут храниться в сессиях.
Замечание:
При работе с сессиями обратите внимание, что запись в сессии не создается прежде чем переменная регистрируется через функцию session_register() или через добавление нового ключа в суперглобальном массиве $_SESSION. Это правило действует вне зависимости от того, была ли сессия запущена с использованием функции session_start().
Замечание:
В PHP 5.2.2 была добавлена незадокументированная возможность, позволяющая хранить сессионный файлы в каталоге "/tmp" даже если open_basedir была включена и "/tmp" не был явным образом добавлен в список разрешенных путей. Эта особенность была убрана из PHP по состоянию на PHP 5.3.0.
Here is a sample code which can be used to create logged sessions:
Code for differentiating Guest and Logged members:
<?php
// Starting the session
session_start();
if(isset($_SESSION['user']))
{
// Code for Logged members
// Identifying the user
$user = $_SESSION['user'];
// Information for the user.
}
else
{
// Code to show Guests
}
?>
Code for Logging a User:
<?php
//Username Stored for logging
define("USER", "user");
// Password Stored
define("PASS", "123456");
// Normal user section - Not logged ------
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
{
// Section for logging process -----------
$user = trim($_REQUEST['username']);
$pass = trim($_REQUEST['password']);
if($user == USER && $pass == PASS)
{
// Successful login ------------------
// Setting Session
$_SESSION['user'] = USER;
// Redirecting to the logged page.
header("Location: index.php");
}
else
{
// Wrong username or Password. Show error here.
}
}
?>
User can be logged successfully with username as "user" and password as 123456.
[NOTE BY danbrown AT php DOT net: Contains a bugfix by (pprem AT pprem DOT net) on 26-APR-2009 with the following note: Dont' write if($user == USER && $pass = PASS).]
