siv1987 2628 10/16/13 13:29 Но она работает только если находится либо в корневом, либо непосредственно в /forum/. Это решаемо? (пишет страница не найдена)define('IPS_ENFORCE_ACCESS', true); перед подключением api Поделиться сообщением Ссылка на сообщение
zyv4yk 0 12/13/14 20:07 В 3.4 в api$this->request['username']заменить на $this->request['ips_username'] $this->request['password']заменить на $this->request['ips_password'] я конечно извиняюсь за подъем столь давней темы, но у меня проблема с этим api, на версии 3.4.6 , адаптировал логин, но вот выход не работает , может есть какой-то способ ? Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/13/14 22:35 Что значит не работает? Как по вашему вам должны помочь, если вы не умеете эффективно сообщать о проблеме? Не работает - тогда обращайтесь к специалистом в соответствующем разделе. Это не настройка на форуме которую включили и она "не работает". Поделиться сообщением Ссылка на сообщение
zyv4yk 0 12/14/14 08:27 @siv1987, прошу прощения, вот более подробное описание проблемыпоставил api , взял ваш код global $do; if($_GET['do'] == 'logout') { $ipbMemberLoginApi -> logout(); echo('<html><head><meta http-equiv="refresh" content="1;url=test_forum.php"></head><body>Выход из системы</body><html>'); exit; } при нажатии на кнопку выхода, страница перезагружается но пользователь остается залогинен Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/14/14 10:10 Почитайте топик, возможно ваш случай http://ipbskins.ru/forum/topic13324.htmlВсе равно вводных данных мало. А вообще, не вижу смысла в апи для человека не знакомый с основами программирования. Апи уже подрозумевает что вы разработчик, который хочет интегрировать свое приложение с форумом. Поделиться сообщением Ссылка на сообщение
zyv4yk 0 12/14/14 10:15 в том то и дело что php я знаю, а вот разобраться с функциями форума составляет мелкие трудности (спасибо за ссылку обязательно прочитаю Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/14/14 10:26 Если вы знаете пхп, попробуйте сделать отладку. Основное предназначение logout это удаление кукисов и конвертации сессии пользователя. Для начала нужно проверить тем же апи если определяется пользователь, если нет - значит есть проблемы с видимостью cookie. Если юзер загрузился то выход тем более должен работать. У вас там объявлена глобальная переменная, значит код отрабатывает внутри какой-то функции. Проверьте переменные, условия и тд. Поделиться сообщением Ссылка на сообщение
zyv4yk 0 12/14/14 11:36 разобрался в проблеме , отпишу в друг кому пригодиться в самом апи надо поменять две строчки в функции logout c IPSCookie::set( "member_id" , "0" ); IPSCookie::set( "pass_hash" , "0" ); IPSCookie::set( "anonlogin" , "-1" ); на IPSCookie::set( "member_id" , "0" , 1 , 0 , FALSE , TRUE ); IPSCookie::set( "pass_hash" , "0" , 1 , 0 , FALSE , TRUE ); IPSCookie::set( "anonlogin" , "-1" ); Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/14/14 14:04 * $local bool If false, will set a cookie on the entire domain * $usePrefix bool If $local is false, controls if the cookie prefix should be used */ static public function set( $name, $value="", $sticky=1, $expires_x_days=0, $local=TRUE, $usePrefix=FALSE ) Поддомены? Указать глобальный домен для cookie не пробовали? Если $local false, куки будут устанавливаться на весь домен. Поделиться сообщением Ссылка на сообщение
zyv4yk 0 12/14/14 14:11 ну решение которое я с кинул я вытянул прямо из файла где происходит выход из форума , проверил и все работаетда и меня висит 10 разных поддоменов и для половины нужны свои куки Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/14/14 14:26 да и меня висит 10 разных поддоменов и для половины нужны свои кукиЛогически правильно прописать глобальный домен в настройках cookie (в теме которая указана выше как раз об этом говорится). Это в последних версиях IPS почему-то начали в коде форсировано устанавливать глобальные cookie авторизации, а было как у нормальных людей. Ну, можете юзать и такой способ. Поделиться сообщением Ссылка на сообщение
rtest 0 08/17/16 07:24 Подниму тему т.к. схожий вопрос, делаю форум с нуля, версия не так важна, поставил как локалхост 3.4.6, нужно сделать внешнюю страницу авторизации, допустим вот стандартная форма <form method="post" action="" class="login"> <p> <label for="login">Логин:</label> <input type="text" name="login" id="login" value="name@example.com"> </p> <p> <label for="password">Пароль:</label> <input type="password" name="password" id="password" value="4815162342"> </p> <p class="login-submit"> <button type="submit" class="login-button">Войти</button> </p> <p class="forgot-password"><a href="index.html">Забыл пароль?</a></p> </form>с ней css'ка еще идет, использовал api_member_login.php с первой страницы но не выходит у меня, нету опыта( В идеале должно быть так - заходишь на сайт.ру, если куки с авторизацией есть, открывается сразу форум, если нет то логинформ просто, где ввел логин/пароль и попал на форум.Я кладу файл в папку, в форме меняю экшн на путь к файлу, но что дальше не понятно для меня( Поделиться сообщением Ссылка на сообщение
siv1987 2628 08/17/16 07:50 Если у вас нет опыта и вы не знакомы с программированием вам проще просто отправить форму авторизации с сайта на обработчик форума. <?php define( 'IPB_THIS_SCRIPT', 'public' ); define( 'IPS_PUBLIC_SCRIPT', 'index.php'); define( 'IPS_ENFORCE_ACCESS', true); require_once( './forum/initdata.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' ); $registry = ipsRegistry::instance(); $registry->init(); $settings =& $registry->fetchSettings(); $memberData =& $registry->member()->fetchMemberData(); if($memberData['member_id']): header('Location: '.$settings['board_url'].'/'); exit; else: ?> <form method="post" action="<?=$settings['board_url']?>/index.php?app=core&module=global§ion=login&do=process" class="login"> <input type="hidden" name="auth_key" value="<?=$registry->member()->form_hash?>"/> <p> <label for="login">Логин:</label> <input type="text" name="ips_username" id="ips_username"> </p> <p> <label for="password">Пароль:</label> <input type="password" name="ips_password" id="ips_password"> </p> <p> <label for="password">Запомнить:</label> <input type="checkbox" id="inline_remember" checked="checked" name="rememberMe" value="1"/> </p> <p class="login-submit"> <button type="submit" class="login-button">Войти</button> </p> </form> <?php endif; ?> 1 Поделиться сообщением Ссылка на сообщение
rtest 0 08/17/16 09:27 Сделал, что то не пойму, после нажатия "войти" открывается Object not found по ссылкеhttp://localhost/%7B$settings['board_url']%7D/index.php?app=core&module=global§ion=login&do=processфорум сразу в корне, я же должен в скрипте заменить board_url на свой путь, в данном случае слеш просто.. даже без слешаhttp://localhost/%7B$settings%7D/index.php?app=core&module=global§ion=login&do=process Поделиться сообщением Ссылка на сообщение