If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
Увод
Поддръжката на сесия в PHP се състои в това да бъдат запазени определени данни, за по-удобно последващо използване. Това ви позволява да създавате приложения, конфигурирани според вашите нужди и да увеличите привлекателността на страницата си.
Всеки посетител на страницата получава уникален идентификатор, така нареченият сесиен идентификатор. Той се съхранява или в бисквитка, или се разпространява посредством URL адреса.
Поддръжката на сесии ви позволява да регистрирате неограничен брой променливи, които да бъдат запазвани между различните заявки. Когато посетител достигне сайта ви, PHP прави автоматична проверка (ако session.auto_start е установено на 1) или ако е указано (изрично чрез session_start() или директно чрез session_register()), дали определен сесиен идентификатор е бил изпратен със заявката. В този случай, така съхранените данни се възвръщат.
Ако включите session.auto_start, то тогава не можете да добавяте обекти в сесиите си, тъй като дефинициите на класовете трябва да бъдат заредени преди инициализирането на сесията, с цел обектите в сесията да бъдат създадени отново.
Всички регистрирани променливи се сериализират след приключване на заявката. Регистрираните променливи, които са недефинирани, биват маркирани като недефинирани. При последващ достъп, същите не са дефинирани от сесийния модул, освен ако потребителят не ги дефинира по-късно.
Някои типове данни не могат да бъдат сериализирани, следователно не могат да бъдат съхранени в сесия. Това включва променливи от тип resource или обекти с циклична зависимост на референциите (т.е. обекти, които предават референции към себе си, към други обекти.
Забележка: Работата със сесии бе добавена в PHP 4.0.0.
Забележка: Моля обърнете внимание, че когато работите със сесии, не се създава запис в сесията, докато не се регистрира променлива чрез функцията session_register() или чрез добавяне на нов ключ в масива $_SESSION. Това връща true независимо дали сесия е била инициализирана чрез функцията session_start().
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).]
