Logout кодче

eddy

Registered
Първия код е от една система за logout , 2 рия код където само start_session и destroy е моя код.И Ако може някой да ми каже разликата межу двата защото нещо първия код не го разбирам изобщо пък изглежда доста.

PHP:
<?php
define('IN_VALID', true); 
include ("include/header.php");
$ses = session_id();
$q = mysql_query("SELECT * FROM `users` WHERE session='$ses'");
$r = mysql_num_rows($q);
if ($r != NULL) {
$name = mysql_result($q, "0", "username");
$q2 = mysqL_query("UPDATE `users` SET session='' WHERE username='$name'");
echo '<meta http-equiv="refresh" content="0; url=index.php">';
}
else {
echo "Не сте логнат";
}
?>

Mоя код

PHP:
<?php

session_start();
session_destroy();
header("LOCATION:index.php");
?>
 
Първият код проверява дали има записана потребителска сесия в базата данни и ако има такава записана, то тази сесия се прамахва тоест полето `session` в таблица `users` се изчиста(става NULL - празно), след като това поле е вече празно потребителя се прехвърля към страница index.php и обратното, ако няма такава записана сесия в базата данни, то се изкарва текст "Не си логнат".

За втория код унищожавай само сесията на потребителя, защото с твоя код унищожаваш всички сесий.
Примерен код:
PHP:
session_start();

if (session_is_registered('username'))
{
session_destroy();
}
else
{
echo "Не сте логнат.";
}
 
Унищожава сесията само на потребителя който натисне "logout" или сесиите на всички потребители логна ли се? Става дума за моя код ( 2 рия код).
 
eddy каза:
Унищожава сесията само на потребителя който натисне "logout" или сесиите на всички потребители логна ли се? Става дума за моя код ( 2 рия код).

Само за сесията, която е на настиналия логаут бутона. То си пише session_start() и после унищожаваш тази сесия.
 
Ясно и в крайна сметка първия код където там с базата данни е равен на този моя код със старт и унищожи сесията ?
 
Сигурно съм станал досаден .. айде последно да ши питам.

И от към сигуност ли са еднакви ?
 
Да! Просто си правиш един линк излез, който ще води до logout файла.
Това, което има в онзи пример за мен са излишни неща, които нямат смисъл!
PHP:
<?php
session_start();
session_destroy();
header('Location: index.php');
exit();
?>
 
Всъшност първия код не е равен на втория, тъй като първия код върши работата на бисквитките - тоест запазва потребителската сесия след излизането от сайта/браузъра.
 

Back
Горе