|
|
автор: STEVER (21.08.2006 в 17:46) |
|
|
для: Shorr Kan
(13.08.2006 в 20:59)
| | ob_start() рулит | |
|
|
|
|
|
|
|
для: Vados
(15.08.2006 в 15:29)
| | То есть, это и есть admin/admin.php ?
p.s. Из-за буферизации сессии не могут перестать работать, если я не ошибаюсь. Тут дело в другом.
p.p.s. Попробуйте и на страничке с установкой сессии... перед header('location... - вписать в лог-файл содержимое $_SESSION['login']; - а так же, на admin/admin.php , в самом начале, сразу после session_start();
А потом скажите, разные записи в лог-файле, или одинаковые. | |
|
|
|
|
|
|
|
для: Veli
(15.08.2006 в 09:19)
| | Дело в том, что сначала у меня была проблема след. характера:
Warning: Cannot modify header information - headers already sent by (output started at c:\www\inventory\admin\config.php:26) in c:\www\inventory\index.php on line 45
Warning: Cannot modify header information - headers already sent by (output started at c:\www\inventory\admin\config.php:26) in c:\www\inventory\index.php on line 46
Warning: Cannot modify header information - headers already sent by (output started at c:\www\inventory\admin\config.php:26) in c:\www\inventory\index.php on line 51
После этого, как я от этого избавился методом использования функции: session_start();, то у меня не получается при переходе на след. страницу принять этот буфер, точнее передать всего 2- переменные login и pass, которые позволят понимать, что user уже зарегистрировался.
Как я писал ранее, на версии PHP 5.2.2(dev) у меня всё работало и не было необходимости в использовании функции session_start().
Данный пример, который вы привели выше мне не подходит, так как проверка на авторизацию у меня и так проходит, просто я не могу передать переменные, похоже из-за буфферизации, как мне используя мою авторизацию, добиться успеха в этом вопросе?
Вот код, который расположен на каждой защинённой странице и проверяет авторизацию:
<?php
include 'config.php';
session_start();
$login = $_SESSION['login'];
$pass = $_SESSION['pass'];
// проверяем логин и пароль из переменных сессии на наличие в базе данных
$res = mssql_query('SELECT * FROM USERS WHERE login="'.$login.'" and pass="'.$pass.'"');
$num = mssql_num_rows($res);
if ($num == 0)
{
echo "<b class=text>";
echo 'Ошибка авторизации!';
echo "</b>";
exit;
}
|
А форма авторизации с кодом(не буду дублировать) расположена в самом начале страницы топика.
Заранее спасибо за помощь! | |
|
|
|
|
|
|
|
для: Vados
(14.08.2006 в 23:08)
| | У меня такая же проблема. Авторизация проходит. Я делаю
$_SESSION['pass'] = $log['pass'];
|
и при переходе на след.странице проверяю
if (!isset($_SESSION['pass']))
{
echo "Вы не авторизованы!<br><a href=login.php>Войти</a>";
exit;
}
else
{ ...
|
Он же всегда кричит, что вы не авторизованы! | |
|
|
|
|
|
|
|
для: Shorr Kan
(13.08.2006 в 20:59)
| | Хорошо, спасибо помогло!
А как теперь мне передать, то что было в буфере, то есть у меня в скрипте есть проверка введённого имени и пароля, а теперь при правильном введении логина и пароля, естественно пользователь переходит на авторизированную страницу, в начале которой также передаются переменные с предыдущей страницы, но на данный момент скрипт, который отвечает за проверку уже авторизированного пользователя не работает и у меня выскакивает, мол:Вы не авторизированы!
Я передаю в этом случае на этой странице буфер посредством функции ob_get_contents();.
Но у меня ничего не получается, быть может нужно передавать какой-то отдельный параметр.
Заранее спасибо за ответ! | |
|
|
|
|
|
|
|
для: Shorr Kan
(13.08.2006 в 20:59)
| | Хорошо, спасибо помогло!
А как теперь мне передать, то что было в буфере, то есть у меня в скрипте есть проверка введённого имени и пароля, а теперь при правильном введении логина и пароля, естественно пользователь переходит на авторизированную страницу, в начале которой также передаются переменные с предыдущей страницы, но на данный момент скрипт, который отвечает за проверку уже авторизированного пользователя не работает и у меня выскакивает, мол:Вы не авторизированы!
Я передаю в этом случае на этой странице буфер посредством функции ob_get_contents();.
Но у меня ничего не получается, быть может нужно передавать какой-то отдельный параметр.
Заранее спасибо за ответ! | |
|
|
|
|
|
|
|
для: Webmaster-X
(13.08.2006 в 20:40)
| | Я вообще закоментировал в php.ini - эту строку, но ничего всё равно не изменилось! | |
|
|
|
|
|
|
|
для: Vados
(13.08.2006 в 19:57)
| | У вас самый-самый верхний скрипт - какой? Тот, который инклудит этот, приведенный вами... Самый родительский... Попробуйте в самом начале того скрипта - поставить строчку:
<?ob_start();?> - с её помощью вы будете класть всё выводимое - в буфер, и тогда у вас будет работать и session_start();
Вероятно. | |
|
|
|
|
|
|
|
для: Vados
(13.08.2006 в 19:57)
| | проверь php.ini
ps: Смотри выше | |
|
|
|
|
|
|
|
для: Webmaster-X
(13.08.2006 в 19:22)
| | Сделал, но ничего не помогает!
Помогите, люди! Чё с этим делать? | |
|
|
|
|