Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Управление на сесиите чрез php
  1. Управление на сесиите чрез php
Magenta
     
Автор  Magenta (19.04.2005 18:55)  съобщение до автора
Погледнат  4741 пъти  добави към любими
Оценка  добави коментар
Гласове  5  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 1

 



Управлението на сесиите в PHP е механизъм, който позволява да се направи връзка между запитванията на даден клиент от дадено време. Както знаеме HTTP - протокола не прави връзка между различните запитвания, и след всяко ново запитване този процес приключва, докато не бъде направено ново запитване, което да стартира нов процес. Така за даден клиент се губи релацията между неговите запитвания. Затова се появява нуждата от управление на сесиите, което да позволи съответната релация между запитванията на даден клиент. При това се създават съответните Session-IDs автоматично, и данните се запазват и съхраняват от управлението на сесиите. PHP използва в случая на запазване на данните от сесията файловата система на съответния сервер. При запазване на данните променливите се сериализират автоматично.


При стартиране на дадена сесия се проверява първо, дали съществъва правилен Session-ID.Ако няма такъв, то тогава php прави съответния id. Ако има вече сесия, то тогава променливите на сеията могат да се използват като глобални променливи в дадения скрипт.


Конфигурация на сесийния модул


Можете да конфигурирате вашия сесиен модул от конфигурационния файл php.ini


По-важните опции са:
-- session.save_handler= files - Handler който дава информация,
къде да се запазват файловете на сесията.Обикновено това става на самия сървър

-- session.use_cookies = 1  - Казва, дали да се използват бисквитки

-- session.name = PHPSESSID - Име на сесията

-- session.auto_start = 0  - инициализация на сесията

-- session.cookie_lifetime = 0 - времетраене на бисквитките, ако е нула, докато се рестратира браузера

-- session.cookie_path = /  - пътят, за който бисквитката е валидна

-- session.cookie_domain = - домейнът, за който бисквитката е валидна

-- session.serialize_handler = php - Handler, който отговаря за сериализацията на информацията.[PHP] е стандартният сериализатор на PHP

-- session.gc_probability = 1 - проверява за вероятността, при която garbage collection е стартиран при инциализиране на сесията

-- session.gc_dividend    = 1000  

-- session.gc_maxlifetime = 1440  - след като обозначеното време изтече, информацията отива в garbage collector и данните се изтриват

-- session.cache_limiter = nocache - дефинира вида на каширане

-- session.cache_expire = 180 - документът приключва своето съществуване, след като изтече зададеното време.


Session-ID

Фактически това е случайно избран ключ, който идентифицира сесийните файлове на сървъра.Този ключ може да се използва чрез бисквитка или чрез url и да се предаде на някой друг скрипт, така че последният да може отново да открие запазената на сървъра информация.


Session-Functions в PHP


PHP дава възможността да се използват стандартни функции.
Ето и някои от тях:

-- session_start() - инициализира дадена сесия

-- session_id() - връща актуалното id или отваря сесията чрез предадено id

-- session_is_registered() - проверява дали има регистрирана глобална променлива в сесията

-- session_get_cookie_params() - връща параметрите на Session_Cookie

-- session_decode() - декодира данните на даденаа сесия от даден string

-- session_cache_expire() - връща времето на изтичане на сесията

-- session_destroy() -- затваря сесията и премахва цялата информация

-- session_regenerate_id() - замества актуалното id с ново

-- session_unset() - изтрива всичките променливи на сесията.



Изполване на session_start()


С помоща на session_start можете да направите нова сесия или да рестартирате актуалната, която се базира на Session_ID, който се предава чрез GET, Post или Cookie.

Пример: start.php

 CODE
1
2
3
4
5
6
7
8
9
10
  <?php
  session_start
();
 
 
echo  "Здравейте, вие сте на страница #1";
 
// поставяне на променливи[
 
$_SESSION['name'] = "Емил";
 
$_SESSION['_time'] = time();
 
 
echo "<br><a href="next.php">Прелистете нататък</a><br>';
?>

Пример:  next.php

 CODE
1
2
3
4
5
6
7
8
9
10
11
12

 <?
php
 
  session_start
();
 
echo 'Добре Дошли на Следващата Страница<br>';
 
echo ."<бр>";
 
echo date(d.m.Y H:i:s. $_SESSION['_time'])."<бр>";
 
 
echo '<br><a hreg="start.php">Към началната страница</a>';
 
 
 ?>


Използване на session_destroy()


С помоща на тази функция можете да изтриете всичката информация свързана с тази сесия

Ето и един пример:
 CODE
1
2
3
4
5
  <?php
   session_start
();
  
session_unset();
  
session_destroy();
 ?>


Сесии и масиви


Пример:products.php
 CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 session_start
();
 
$products = array("PHP","SQL","JAVA","LINUX");
 
$_SESSION["$products"] = $products;
 
 
echo "<a href=seeproducts.php>Виж всички продукти</a>;

?>


Пример: seeproducts.php

 [code] <?php
 session_start();
 foreach(
$_SEESION["products"] as $element)
 {
   echo
"$element<br>";
 }


Предаване на Session_ID през GET, POST


Пример: start.php
 CODE
1
2
3
4
5
6
7
8
9

 <?
php
 
 session_start
();
 
$_SESSION["nick"] = "Emil";
 
echo '<br><a href="see.php?'.SID.'">Виж</a>;
 echo "<br>Session-ID:".SID;]
 
 ?>

Пример: see.php

 CODE
1
2
3
4
5
<?php
 session_start
();
 
echo $_SESSION["nick"];
 
 ?>


Предаване на Session_ID през header()


Можете да предавате Session_ID и чрез header().Тази функция праща на браузъра един HTTP-Header.

Пример:
 CODE
1
2
3
4
5
session_start();
 
$s = session_name();
 
$i = session_id();
 
header("Location: see.php?$s=$i);
 
$_SESSION["nick"] = "Emil";



   


Ключови думи: PHP използване на сесии в PHP сесии


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008