Проблем с логин система, не може да се излезе от профила.

topchokt

Registered
Добро утро,
имам проблем с тази система за регистрации. Всичко добре, но когато се опитам да изляза от профила ми пише "Не сте логнат" и толкова, но се вижда че съм логнат.
Ето това е кода на logout.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 "Не сте логнат";
}
?>

Някой да знае от какво може да е проблема ?
 
Код:
<?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'"); 
session_destroy();
echo '<meta http-equiv="refresh" content="0; url=index.php">'; 
} 
else { 
echo "Не сте логнат"; 
} 
?>
 
Аз проблем с този код нямам:
Код:
<?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 'Успешно изязохте.';
echo '<meta http-equiv="refresh" content="2; url=index.php">'; 
}
else{
echo "Не сте логнат";
}
?>

Преди малко си направих експеримент..
 
<?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 != 0) {
$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 "Не сте логнат";
}
?>

защо пък резултат от num_rows да бъде Null? Пробвай така.
 
Код:
<?php
ob_start();
define('IN_VALID', true);
include ("include/header.php");
$ses = session_id();
$q = mysql_query("SELECT `session`, `username` FROM `users` WHERE session='$ses'") or die(mysql_error());
$r=mysql_fetch_assoc($q);
$sess=$r['session'];
$name=$r['username'];
if (!empty($sess)) {
$q2 = mysqL_query("UPDATE `users` SET session='' WHERE username='$name'") or die(mysql_error());
if ($q2) 
{
echo 'Успешно изязохте.';
header("location:index.php");
}
}
else{
echo "Не сте логнат";
}
?>
 
Не става... изписва "Не сте логнат" и толкова.

При кода на gamena007 ми изписва "Успешно излязохте", но си оставям логнат.

:lol:
Идеи ?
 
Идеи ли? Много ми е чудно да не си би да си пипнал таблиците т.е. users, защото при мен няма никакъв проблем и си ме изхвърля без проблеми! ;)

Я пробвай така:
Код:
<?php
define('IN_VALID', true);
include ("include/header.php");
$ses = session_id();
session_destroy();
$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 'Успешно изязохте.';
echo '<meta http-equiv="refresh" content="2; url=index.php">';
}
else{
echo "Не сте логнат";
}
?>

хмм, обаче може и да не проработи по-този начин, понеже в първия вариант, който съм ти дал всичко работи!
 
Какво ще кажеш сега?

Код:
	 <?php 
session_start();
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'"); 
session_destroy(); 
echo '<meta http-equiv="refresh" content="0; url=index.php">'; 
} 
else { 
echo "Не сте логнат"; 
} 
?>
 
Нито с единият код, нито с другия.
С кода на gamena007 в самата страница logout.php, където е този код се показва формата, тоест съм излязъл, но щом отида в друга страница отново съм логнат.

nom3r1 каза:
Много ми е чудно да не си би да си пипнал таблиците т.е. users, защото при мен няма никакъв проблем и си ме изхвърля без проблеми! ;)
Не, не съм пипал нищо по таблиците.
Сега забелязвам че в таблицата users има едно поле session, да но в това поле за моето потребителско име т.е. за моят профил няма нищо т.е. е празно.
 
Защо не направиш следното

Код:
<?php
session_start();
session_destroy();
header("Location: index.php");
?>

Кратко но върши работа :)
 
Аз до колкото виждам нямам проблем отново ти казвам, демо: http://wt-d3mo.freehostia.com/index.php

Потребител: asdfgh
Парола: asdfgh


Направи един архив със сегашните файлове и ми дай линк по ЛС.
 
Данеби php да се ебава ?
Понякога се счупва и спира да създава сесии..
Провери си внимателно сървъра, конфигурацията и всичко друго :)
 

Back
Горе