'page' => 'logout'
даже в ручном режиме, посредством ввода в URL...
Мозг уже кипит!!! Что я только не пробовал, начинаю уже верить в мистику
Помогите, кто-нибудь! Думаю, что ответ лежит где-то на поверхности, но понять никак не могу...
P.S. остальные 'page' записываются нормально, только с 'logout' проблема...
Спустя 4 часа, 37 минут, 30 секунд (27.08.2010 - 06:41) twin написал(а):
Ты считаешь, что тут специаличты по полтергейсту и чревовещанию с телепатией за одно?
Код показывай.
Код показывай.
Спустя 3 часа, 5 минут, 39 секунд (27.08.2010 - 09:46) Dingo написал(а):
Invis1ble Интересная проблема, а ты попробуй заговорить $_GET. Конечно результат будет нулевой, но все равно, авось.
Спустя 7 минут, 23 секунды (27.08.2010 - 09:54) Basili4 написал(а):
Dingo
Это на $_GET порчу навели. Надо сначала её снять. Потомственный экстрасенс сниму порчу со всех суперглобальных массивов по фотографии. Излечу от нотисов, уведу от Попова. Сделаю оберег от Хакеров.
Это на $_GET порчу навели. Надо сначала её снять. Потомственный экстрасенс сниму порчу со всех суперглобальных массивов по фотографии. Излечу от нотисов, уведу от Попова. Сделаю оберег от Хакеров.
Спустя 3 часа, 41 минута, 45 секунд (27.08.2010 - 13:35) Invis1ble написал(а):
public/index.php
<?php
try
{
if (!defined('FORUM'))
throw new Exception('Попытка взлома. Доступ запрещен.');
}
catch (Exception $exception)
{
echo $exception->getMessage();
}
session_start();
$page = isset($_GET['page']) ?
str_replace(array('.', '/'), '', $_GET['page']):
Base::App()->config['public']['default page'];
$logicFilePath = PUBLIC_DIR . 'logic' . DIR_SEPARATOR . $page . '.php';
if (file_exists($logicFilePath))
include ($logicFilePath);
$viewFilePath = PUBLIC_DIR . 'view' . DIR_SEPARATOR . $page . '.php';
ob_start();
if (file_exists($viewFilePath))
include ($viewFilePath);
$contents = ob_get_contents();
ob_end_clean();
View::Assign('contents', $contents);
$layoutFilePath = PUBLIC_DIR . 'layout.php';
if (file_exists($layoutFilePath))
include ($layoutFilePath);
else
echo $contents;
include ('./debug/debug.php'); define ('TRACE', true); dbg($_GET);
?>
public/logic/logout.php
<?php
try
{
if (!defined('FORUM'))
throw new Exception('Попытка взлома. Доступ запрещен.');
}
catch (Exception $exception)
{
echo $exception->getMessage();
}
unset($_SESSION['user']);
Base::Redirect(VIRTUAL_PATH);
?>
public/view/topic-list.php
<?php
try
{
if (!defined('FORUM'))
throw new Exception('Попытка взлома. Доступ запрещен.');
}
catch (Exception $exception)
{
echo $exception->getMessage();
}
?>
<h3>Привет, <?php echo isset($_SESSION['user']['nickname']) ? $_SESSION['user']['nickname'] : 'Неизвестный'; ?>!</h3>
<?php
if (!isset($_SESSION['user']['authorisation']))
{
?>
<a href="<?php echo VIRTUAL_PATH . '?page=authorisation'; ?>">Вход</a><br>
<?php
}
else
{
?>
<a href="<?php echo VIRTUAL_PATH . '?page=logout'; ?>">Выход</a><br>
<?php
}
?>
<a href="<?php echo VIRTUAL_PATH . '?page=registration'; ?>">Регистрация</a><br>
<a href="<?php echo VIRTUAL_PATH . '?page=new-topic'; ?>">Новая тема</a><br>
<h4>Список топиков</h4>
<table align='center' width='100%' border=1>
<tr>
<td><b>тема</b></td>
<td><b>создана</b></td>
<td><b>просмотров</b></td>
<td><b>ответов</b></td>
<td><b>обновлена</b></td>
</tr>
<?php
if (View::IsAssigned('topics'))
{
foreach ($topics as $topic)
{
?>
<tr>
<td>
<a href="<?php echo VIRTUAL_PATH . '?page=comment-list&id=' . $topic['id']; ?>"><?php echo htmlspecialchars($topic['name']); ?></a><br>
<?php echo htmlspecialchars($topic['description']); ?>
</td>
<td>
<?php echo htmlspecialchars($topic['created_at']); ?><br>
<?php echo htmlspecialchars($topic['author']['nickname']); ?>
</td>
<td><?php echo $topic['viewing_count']; ?></td>
<td><?php echo $topic['comment_count']; ?></td>
<td>
<?php echo htmlspecialchars($topic['updated_at']); ?><br>
<?php echo htmlspecialchars($topic['update_writer']['nickname']); ?>
</td>
</tr>
<?php
}
}
?>
</table>
<?php
if (View::IsAssigned('pagination'))
echo View::Get('pagination')->Render();
?>
Вот... Все ссылки в topic-list.php работают нормально, кроме ссылки на "Выход", кстати заметил что все-равно как называется "page" - "logout" или "exit" например.
Спустя 4 минуты, 48 секунд (27.08.2010 - 13:40) Invis1ble написал(а):
После перехода по ссылке "Выход" массив $_GET в public/index.php оказывается пустой..
Спустя 23 минуты, 43 секунды (27.08.2010 - 14:04) Gradus написал(а):
танцы с бубном
шо это ? похоже на редирект проверь какие заголовки отдаёт , поэтому может и сбрасывает
Base::Redirect(VIRTUAL_PATH);
шо это ? похоже на редирект проверь какие заголовки отдаёт , поэтому может и сбрасывает
Спустя 8 минут, 7 секунд (27.08.2010 - 14:12) Invis1ble написал(а):
Gradus
это я конечный вариант logout.php показал. На самом деле я туда помещаю для проверки
но оно не срабатывает...
это я конечный вариант logout.php показал. На самом деле я туда помещаю для проверки
<?php
exit();
?>
но оно не срабатывает...
Спустя 8 минут, 12 секунд (27.08.2010 - 14:20) linker написал(а):
Цитата |
После перехода по ссылке "Выход" массив $_GET в public/index.php оказывается пустой.. |
Это естественно, каким же ему еще быть.
Base::Redirect(VIRTUAL_PATH);замени на
header('Location: index.php?page=topic-list');и увидишь как все чудесным образом заработало
Спустя 5 минут, 7 секунд (27.08.2010 - 14:25) Invis1ble написал(а):
linker
Я ж говорю, logout.php вообще не запускается, а Redirect в нем
Я ж говорю, logout.php вообще не запускается, а Redirect в нем
Спустя 24 минуты, 52 секунды (27.08.2010 - 14:50) Invis1ble написал(а):
logout.php не инкдюдится в index.php
Цитата |
$page = isset($_GET['page']) ? str_replace(array('.', '/'), '', $_GET['page']): Base::App()->config['public']['default page']; $logicFilePath = PUBLIC_DIR . 'logic' . DIR_SEPARATOR . $page . '.php'; if (file_exists($logicFilePath)) include ($logicFilePath); |
т.к. $_GET['page'] не задано, а инклюдится Base::App()->config['public']['default page'] , которое в свою очередь - topic-list.php
Спустя 1 час, 11 минут, 16 секунд (27.08.2010 - 16:01) Nord написал(а):
Вы проверьте, после какой строчки $_GET['page'] внезапно исчезает
P.S.
Странная защита от взлома. Если FORUM не определен, выводится сообщение "Попытка взлома", но скрипт продолжает работу и session_start() вызывает ошибку "Заголовки уже отправлены"
P.S.
try {
if (!defined('FORUM'))
throw new Exception('Попытка взлома. Доступ запрещен.');
} catch (Exception $exception) {
echo $exception->getMessage();
}
session_start();
Странная защита от взлома. Если FORUM не определен, выводится сообщение "Попытка взлома", но скрипт продолжает работу и session_start() вызывает ошибку "Заголовки уже отправлены"
Спустя 21 минута, 20 секунд (27.08.2010 - 16:23) Invis1ble написал(а):
Nord
ну с защитой да, там exit(); после echo $exception->getMessage(); надо поставить...
a насчет "исчезновения" $_GET['page'] - исчезает сразу после нажатия на ссылку "Выход":
в главный index.php (на который ведет ссылка "Выход") вставляю например echo $_GET['page'] - Notice: Undefined index: page in C:\www\html\forum\index.php on line 2
ну с защитой да, там exit(); после echo $exception->getMessage(); надо поставить...
a насчет "исчезновения" $_GET['page'] - исчезает сразу после нажатия на ссылку "Выход":
в главный index.php (на который ведет ссылка "Выход") вставляю например echo $_GET['page'] - Notice: Undefined index: page in C:\www\html\forum\index.php on line 2
Спустя 18 минут, 19 секунд (27.08.2010 - 16:41) Guest написал(а):
Цитата (Basili4 @ 27.08.2010 - 06:54) |
Потомственный экстрасенс сниму порчу со всех суперглобальных массивов по фотографии. Излечу от нотисов, уведу от Попова. Сделаю оберег от Хакеров. |
не по фотографии, а по сорцу
а уводить от Попова к кому? к тебе?
Спустя 56 секунд (27.08.2010 - 16:42) Guest написал(а):
Invis1ble
а ты его передай авось не исчезнет
а ты его передай авось не исчезнет
Спустя 15 минут, 28 секунд (27.08.2010 - 16:58) Invis1ble написал(а):
Спустя 1 минута, 22 секунды (27.08.2010 - 16:59) Nord написал(а):
Цитата |
a насчет "исчезновения" $_GET['page'] - исчезает сразу после нажатия на ссылку "Выход": в главный index.php (на который ведет ссылка "Выход") вставляю например echo $_GET['page'] - Notice: Undefined index: page in C:\www\html\forum\index.php on line 2 |
Может у вас действительно где-то просто редиректится, напишите в самом начале die($_GET['page']), чтобы дальше не шло
Правка: хотя, наверно тогда бы написало, что типа заголовки уже отправлены
Спустя 18 минут, 59 секунд (27.08.2010 - 17:18) Invis1ble написал(а):
интересно вот что:
если в строке набрать не http://127.0.0.1/forum/?page=logout , a http://127.0.0.1/forum/index.php?page=logout то все нормально, get-параметр передается. Вот .htaccess , если что:
AddDefaultCharset UTF-8
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag register_globals Off
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
Options -Indexes
# php_value error_reporting 2047
# php_value error_log "C:/www/html/log/forum/error.log"
# php_flag log_errors on
# php_flag display_errors off
#RewriteEngine on
#RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA]
#RewriteCond %{REQUEST_URI} !^/admin
#RewriteCond %{REQUEST_URI} !^/favicon.ico
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
если в строке набрать не http://127.0.0.1/forum/?page=logout , a http://127.0.0.1/forum/index.php?page=logout то все нормально, get-параметр передается. Вот .htaccess , если что:
AddDefaultCharset UTF-8
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag register_globals Off
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
Options -Indexes
# php_value error_reporting 2047
# php_value error_log "C:/www/html/log/forum/error.log"
# php_flag log_errors on
# php_flag display_errors off
#RewriteEngine on
#RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA]
#RewriteCond %{REQUEST_URI} !^/admin
#RewriteCond %{REQUEST_URI} !^/favicon.ico
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
Спустя 1 час, 48 секунд (27.08.2010 - 18:19) Invis1ble написал(а):
короче я обнаружил источник проблемы:
у меня в натройках оперы стояло
Проверять, обновлялась ли на сервере сохраненная в кэш страница
Проверять документы: Никогда
я поставил "Всегда" и проблема решилась
токо я так и не понял какое это имеет отношение к $_GET массиву... Хрень какая-то... Убил на этот шит сутки...
у меня в натройках оперы стояло
Проверять, обновлялась ли на сервере сохраненная в кэш страница
Проверять документы: Никогда
я поставил "Всегда" и проблема решилась
токо я так и не понял какое это имеет отношение к $_GET массиву... Хрень какая-то... Убил на этот шит сутки...
Спустя 13 минут, 12 секунд (27.08.2010 - 18:32) Invis1ble написал(а):
Кто-нибудь может объяснить жалкому нубу мне, каким образом связан $_GET массив с кэшем в опере?
Спустя 2 часа, 20 минут, 47 секунд (27.08.2010 - 20:53) twin написал(а):
Цитата |
а уводить от Попова к кому? к тебе? |
Сюда для начала.
По теме - а почему ты грешишь на GET?
<?php
try
{
if (!defined('FORUM'))
throw new Exception('Попытка взлома. Доступ запрещен.');
}
catch (Exception $exception)
{
echo $exception->getMessage();
}
unset($_SESSION['user']);
Base::Redirect(VIRTUAL_PATH);
Тут ты удаляешь текущую переменную, а сессия остается.
В конец этого файла попорбуй затолкать
session_destroy();мож чё и получится...
Спустя 2 часа, 44 минуты, 49 секунд (27.08.2010 - 23:37) Invis1ble написал(а):
twin
Задумки уничтожать сессию не было.
Характерная особенность - ссылка "Выход" срабатывала при первой авторизации, а потом при повторной авторизации ссылка "выход" не работала...
Проблема решена, как я уже написал в предыдущем посте, неожиданным образом...
Задумки уничтожать сессию не было.
Характерная особенность - ссылка "Выход" срабатывала при первой авторизации, а потом при повторной авторизации ссылка "выход" не работала...
Проблема решена, как я уже написал в предыдущем посте, неожиданным образом...
Спустя 7 часов, 47 минут, 42 секунды (28.08.2010 - 07:25) Basili4 написал(а):
Guest
От Попова куда угодно, лишь бы начал думать что пишет
От Попова куда угодно, лишь бы начал думать что пишет
Спустя 6 часов, 46 минут, 52 секунды (28.08.2010 - 14:12) Invis1ble написал(а):
Basili4
да причем тут Попов, я его в глаза не видел. И перед тем как писать - 100 раз думаю. Вот лучше бы объяснили, почему после изменения указанной настройки в браузере проблема исчезла
да причем тут Попов, я его в глаза не видел. И перед тем как писать - 100 раз думаю. Вот лучше бы объяснили, почему после изменения указанной настройки в браузере проблема исчезла
Спустя 50 минут, 52 секунды (28.08.2010 - 15:03) Basili4 написал(а):
Invis1ble
Я могу это объяснить только "фазой луны"
Я могу это объяснить только "фазой луны"
Спустя 6 минут, 41 секунда (28.08.2010 - 15:10) Invis1ble написал(а):
Цитата |
Я могу это объяснить только "фазой луны" |
хорошее объяснение
А если серьезно?
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль