Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация юзера с помощью кук 
V
    Опции темы
Aliance
Дата 1.4.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Непойму в чем проблема, пишет, что хедеру уже были посланы smile

Код

<?php

function clean_value($val) {
   // длинная функция из форума
}

$ipb_nick = $_POST['ipb_nick'];
$ipb_nick = clean_value($ipb_nick);
$ipb_pass = $_POST['ipb_pass'];

$link = mysql_connect('...', '...', '...');
if (!$link) {
   die(mysql_error());
}

if( ! mysql_select_db("...") ) {
  exit();
}

if ($ipb_nick) {
   $sql = "SELECT `id` FROM `...` WHERE `name` = '$ipb_nick' LIMIT 0, 30";
   $result = mysql_query($sql) or die(mysql_error());
}

if ($result) {
   $row = mysql_fetch_array($result, MYSQL_ASSOC);
   $ipb_id = $row['id'];
}

if ($ipb_id) {
   $sql2 = "SELECT * FROM `...` WHERE `converge_id` = {$ipb_id} LIMIT 0, 30";
   $result2 = mysql_query($sql2) or die(mysql_error());
}

if ($result2) {
   $row2 = mysql_fetch_array($result2, MYSQL_ASSOC);

   if ($row2['converge_pass_hash'] == md5( md5( $row2['converge_pass_salt'] ) . md5( $ipb_pass ) )) {

      /////////////////////////// ТУТ ОШИБКА :( ////////////////////////////////

      setcookie( "id", $ipb_id, time()+800, "/", "", 0 );
   } else {
      print('Неверная пара ник/пароль.');
   }

}

print "\n<br />Cookie: ".$_COOKIE['id']."\n<br />ID: ".$ipb_id;

mysql_close($link);

?>

PM MAIL WWW ICQ Skype   Вверх
Serkys
Дата 2.4.2006, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



Посмотри, может перед "<?php" пробел закрался. Там не должно быть никаких html тегов, ни символа вообще. Может этот файл подключается через require/include?

Если это не поможет, попробуй использовать буферизацию. С ней проблема должна уйти.
В начале скрипта вставь
Код

ob_start();

В конце (или после set_cookies) вставляешь
Код

ob_end_flush();

PM MAIL   Вверх
Ciber SLasH
Дата 2.4.2006, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 1
Всего: 67



Ошибка в том, что setcookie должна быть вызвана до первого вывода в браузер какой-либо инфы. Юзай буферизацию...
PM   Вверх
Aliance
Дата 2.4.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Нет, пробелов никаких нет. Если вместо строчки 42 поставить печать "Вы удачно залогинились" - скрипт работает на ура.
Но мне нужно сохранить как-то то, что человек залогинился для навигации по сайту.
Что такое буферезация и сессии не знаю. Буферизацию нужно использовать вместе с куками? Что она дает?
Писал пример по аналогии с этим, там установка кук стоит как и у меня ДО первого вывода информации на экран, так что Ciber SLasH, не понимаю, где я что-то вывожу ДО установки кук?! А вот и сам скрипт-мануал: http://www.devdreams.com/webmaster-tutoria...mbership-script
Добавлено @ 09:32
Если ставлю то, что посоветовал Serkys - результат вообще пропадает, ничего не печатается из переменных.
PM MAIL WWW ICQ Skype   Вверх
Serkys
Дата 2.4.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



Цитата(Aliance @ 2.4.2006, 09:20 Найти цитируемый пост)
ДО первого вывода информации на экран

Любой пробел - уже вывод. Посмотри ещё раз. Сам на этом бывало спотыкался.

Цитата(Aliance @ 2.4.2006, 09:20 Найти цитируемый пост)
сли ставлю то, что посоветовал Serkys - результат вообще пропадает, ничего не печатается из переменных.

Понятия не имею в чём дело. Ты случаем не на РНР3 пишешь smile - там буферизации нету. Почитай про буферизацию - если вывод на экран не найдёшь до setcookies(), то без неё тебе не обойтись.

Цитата(Aliance @ 2.4.2006, 09:20 Найти цитируемый пост)
Буферизацию нужно использовать вместе с куками?

Буферизация - такая вещь, которая позволяет посылать заголовки и ставить куки в любом месте скрипта. Прочитай про неё - вещь хорошая. Даже вроде на винградском факе есть статья.

А этот скрипт, который ты предоставил в первом посте, он составляет отдельный файл или инклудится?

Можно текст функции clean_value()?
PM MAIL   Вверх
Ciber SLasH
Дата 2.4.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 1
Всего: 67



PM   Вверх
Aliance
Дата 2.4.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Отдельный файл, вызывается из Action элемента form.
Про буферизацию прочту, но раз и заголовки позволяет посылать в любом месте - проще так попробовать. Ибо заголовком у меня получилось.
ПХП 4ый вроде, но не 3ий
Добавлено @ 19:40
Функция clean_value - функция из форума IPB, она только заменяет нужные символы в нике.
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 2.4.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Цитата(Serkys @ 2.4.2006, 12:53 Найти цитируемый пост)
Любой пробел - уже вывод. Посмотри ещё раз. Сам на этом бывало спотыкался.

Вот тут была проблема smile Спасибо за помощь, лови плюс smile

ЗЫ: пхп 4
PM MAIL WWW ICQ Skype   Вверх
Serkys
Дата 2.4.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



Цитата(Aliance @ 2.4.2006, 20:57 Найти цитируемый пост)
Вот тут была проблема

А так всегда бывает smile Паришся несколько дней, ищешь сложные решения, а проблема простая и на виду smile

Aliance, отметь, пожалуйста, вопрос решённым.

Цитата(Aliance @ 2.4.2006, 20:57 Найти цитируемый пост)
Спасибо за помощь, лови плюс

Да незачто smile . Плюс поймал smile .
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1362 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.