Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
4 / 4 / 2
Регистрация: 28.03.2011
Сообщений: 94
1

Скрипт Loginza и запоминание cookies

27.06.2011, 21:46. Показов 2121. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Никак не могу прикрутить к логинзе запоминание по кукам. Работаю со скачанным с сайта примером скрипта. Правлю файл example.php и прописываю следующий код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php 
//Если есть куки то присвоить их к сессии
if (isset($_COOKIE['loginza_auth'],$_COOKIE['loginza_profile'])) {
    $_SESSION['loginza']['is_auth'] = $_COOKIE['loginza_auth'];
    $_SESSION['loginza']['profile'] = $_COOKIE['loginza_profile'];
}
 
require_once 'libs/LoginzaAPI.class.php';
require_once 'libs/LoginzaUserProfile.class.php';
 
// объект работы с Loginza API
$LoginzaAPI = new LoginzaAPI();
?>
<!-- Insert Loginza Widget JavaScript Code -->
<script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
<?php 
// проверка переданного токена
if (!empty($_POST['token'])) {
    // получаем профиль авторизованного пользователя
    $UserProfile = $LoginzaAPI->getAuthInfo($_POST['token']);
    
    // проверка на ошибки
    if (!empty($UserProfile->error_type)) {
        // есть ошибки, выводим их
        // в рабочем примере данные ошибки не следует выводить пользователю, так как они несут информационный характер только для разработчика
        echo $UserProfile->error_type.": ".$UserProfile->error_message;
    } elseif (empty($UserProfile)) {
        // прочие ошибки
        echo 'Temporary error.';
    } else {
        // ошибок нет запоминаем пользователя как авторизованного
        setcookie("loginza_auth", "1", time()+9999999, "/");
        $_SESSION['loginza']['is_auth'] = 1;
        // запоминаем профиль пользователя в сессию или создаем локальную учетную запись пользователя в БД
        setcookie("loginza_profile", $UserProfile, time()+9999999, "/");
        $_SESSION['loginza']['profile'] = $UserProfile;
    }
} elseif (isset($_GET['quit'])) {
    // выход пользователя
    unset($_SESSION['loginza']);
    if(isset($_COOKIE['loginza_auth'],$_COOKIE['loginza_profile'])) {
        setcookie("loginza_auth", "", time()-9999999, "/");
        setcookie("loginza_profile", "", time()-9999999, "/");
    }
}
 
// проверка авторизации, вывод профиля если пользователь авторизован ранее
if (!empty($_SESSION['loginza']['is_auth'])) {
    
    // объект генерации недостаюих полей (если требуется)
    $LoginzaProfile = new LoginzaUserProfile($_SESSION['loginza']['profile']);
    
    //присваивание полученных данных
    $loginza_name = $LoginzaProfile->genDisplayName();//присваиваем имя
    //присваиваем контакт
    if (($_SESSION['loginza']['profile']->provider == "http://vkontakte.ru/") || 
        ($_SESSION['loginza']['profile']->provider == "http://twitter.com/")) {
        $loginza_contact = $_SESSION['loginza']['profile']->identity;
    }
    elseif ($_SESSION['loginza']['profile']->provider == "http://openid.yandex.ru/server/") {
        $loginza_contact = $LoginzaProfile->genDisplayName()."@yandex.ru";
    }
    else {
        $loginza_contact = $_SESSION['loginza']['profile']->email;
    };
    //присваиваем аватар
    if (!empty($_SESSION['loginza']['profile']->photo)) {
        $loginza_avatar = $_SESSION['loginza']['profile']->photo;
    }
    else {
        $loginza_avatar = "images/style/avatar.gif";
    }
} else {
    // требуется авторизация, вывод ссылки на Loginza виджет
    echo 'Войдите с помощью <a href="'.$LoginzaAPI->getWidgetUrl().'" class="loginza">
    <img src="http://loginza.ru/img/providers/vkontakte.png" alt="Вконтакте" title="Вконтакте">
    <img src="http://loginza.ru/img/providers/mailru.png" alt="Mail.ru" title="Mail.ru">
    <img src="http://loginza.ru/img/providers/google.png" alt="Google" title="Google">
    <img src="http://loginza.ru/img/providers/facebook.png" alt="Facebook" title="Facebook">
    <img src="http://loginza.ru/img/providers/yandex.png" alt="Яндекс" title="Яндекс">
    <img src="http://loginza.ru/img/providers/twitter.png" alt="Twitter" title="Twitter"></a>';
}
?>
Абсолютно не могу понять почему куки вообще игнорируются? Сессия записывается без проблем, а куки даже не создаются...Подскажите в чём моя проблема и можно ли это исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2011, 21:46
Ответы с готовыми решениями:

не могу прикрутить скрипт phpcaptcha + запоминание вводиимых данных
Очень большая просьба помочь со скриптом. Суть скрипта Форма входа с запоминанием данных +...

Не работает скрипт по сбору cookies
На просторах сети нашел такой скрипт collect_cookie.php &lt;?php ...

работа с loginza
Всем привет! При авторизации через loginza возвращается некоторый token. Что с этим token делать...

Loginza и ULogin
Добрый вечер помогите пожалуйста разобраться с этой Loginze.й..... достала меня то не работает то...

3
1047 / 381 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
27.06.2011, 21:52 2
Вроде нельзя отправлять куки после вывода чего либо. А у вас в 29 строке идет echo.
0
4 / 4 / 2
Регистрация: 28.03.2011
Сообщений: 94
27.06.2011, 22:11  [ТС] 3
Цитата Сообщение от Amator Посмотреть сообщение
Вроде нельзя отправлять куки после вывода чего либо. А у вас в 29 строке идет echo.
Может ты путаешь с session_start();? Вот его нельзя прописывать до вывода чего либо, а с куками всё нормально должно быть, как и с сессиями. Попробовал сейчас убрать все echo из кода, ничего не изменилось, всё так же...
0
alexmsk777
18.07.2011, 20:08 4
Куки могут быть созданы только до вывода любого html кода

Строки 14 и 15 выводя хтмл код, после этого куки не сохраняются. Перенесите их после пхп кода.

Цитата Сообщение от TARAKANhoy Посмотреть сообщение
<!-- Insert Loginza Widget JavaScript Code -->
<script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
И лучше во время отладки включите отображение всех хтмл и пхп ошибок и предупреждений, поможет быстрее разбираться с такими вот случаями.
18.07.2011, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2011, 20:08
Помогаю со студенческими работами здесь

loginza и flash
Доброго время суток. Проблема в том, что я выставил на сайт файл *.swf и начал делать...

как сделать авторизацию loginza основной на сайте
нужно чтобы пользователь нажал на ссылку вход. появляется окно с выбором через какой провайдер...

Запоминание пользователя
Доброго времени суток!!! Как запомнить пользователя на сайте, чтобы при переходе пользователем по...

Запоминание книги
Приветствую. Подскажите, как реализовать запоминание взятой книги. Т.е. имеется структура: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru