Пропустить

[FAQ RC] Интеграция входа на конференцию с сайтом

Темы по наиболее часто задаваемым вопросам по phpBB 3.0.x. Читать в первую очередь!
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Maksim90 » 26.10.2011 21:15

Здравствуйте. Подскажите как можно отделить в вашем скрипте php и html в отдельные файлы?
Причем в html-шаблоне можно было бы использовать переменные такого вида как {L_REGISTER},{S_LOGIN_ACTION} и. т. д и условия <!-- IF .... --> ?

Например, как сделано в конференции
includes/functions.php
/**
* Generate login box or verify password
*/
function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true)
{
	global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $config;

	if (!class_exists('phpbb_captcha_factory'))
	{
		include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
	}

	....

	page_header($user->lang['LOGIN'], false);

	$template->set_filenames(array(
		'body' => 'login_body.html')
	);
	make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

	page_footer();
}


А вот его html код
styles/prosiler/template/login_body.html
!-- INCLUDE overall_header.html -->

<script type="text/javascript">
// <![CDATA[
	onload_functions.push('document.getElementById("<!-- IF S_ADMIN_AUTH -->{PASSWORD_CREDENTIAL}<!-- ELSE -->{USERNAME_CREDENTIAL}<!-- ENDIF -->").focus();');
// ]]>
</script>

<form action="{S_LOGIN_ACTION}" method="post" id="login">
<div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>

	<div class="content">
		<h2><!-- IF LOGIN_EXPLAIN -->{LOGIN_EXPLAIN}<!-- ELSE -->{L_LOGIN}<!-- ENDIF --></h2>
           ......

<!-- IF not S_ADMIN_AUTH and S_REGISTER_ENABLED -->
	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>

		<div class="content">
			<h3>{L_REGISTER}</h3>
			<p>{L_LOGIN_INFO}</p>
			<p><strong><a href="{U_TERMS_USE}">{L_TERMS_USE}</a> | <a href="{U_PRIVACY}">{L_PRIVACY}</a></strong></p>
			<hr class="dashed" />
			<p><a href="{U_REGISTER}" class="button2">{L_REGISTER}</a></p>
		</div>

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->

</form>

<!-- INCLUDE overall_footer.html -->

Maksim90
phpBB 1.4.2
 
Сообщения: 54
Зарегистрирован: 24.05.2008 1:26
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение KODEAK » 12.11.2011 20:32

Если с английским хорошо, то http://wiki.phpbb.com/Tutorial.Adding_pages

KODEAK
phpBB 1.2.1
 
Сообщения: 20
Зарегистрирован: 06.10.2008 23:25
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение firg » 16.11.2011 12:32

Запостил я тут в одну тему свой вариант решения интеграции системы авторизации в любую страничку HTML, модераторы пропустили сообщение, так что думаю и тут пропустят.

Это можно сказать готовое решение, в общем смотрите архив, там есть пример.
Пользуйтесь на здоровье. :)

Для создания данного решения я использовал скрипт предоставленный пользователем rxu.
Вложения
PHPBB login integration.rar
(6.43 КБ) Скачиваний: 51

firg
phpBB 1.0.0
 
Сообщения: 3
Зарегистрирован: 15.11.2011 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 08.02.2012 18:17

скачал архив и поставил на сайт. Вход без проблем работает в опере. При логине в хроме страница просто обновляется, но в базу добавляется сессия. В чем проблема? И как активировать ссылку для зарегистрированных юзеров на странице сайта? У меня раньше при использовании скрипта с первого поста работал вот этот код:
if(isset($login))
	{
print <<<HERE
<div id="add_comm">
<a class="add_comment">добавить</a>   
<form action="comment_video.php" method="post" name="form_com">
<p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
<p><label>Текст комментария (HTML теги не поддерживаются): </label><br><textarea name="text" cols="50" rows="4"></textarea></p>
<p>Введите число, указанное на картинке:</p>
<p class='pr1'><img src="$myrow_check_img[img]" >
<input  name="pr" type="text" size="7" maxlength="7"></p>
<input name="id" type="hidden" value="$id">
<input name="id2" type="hidden" value="$myrow_check_img[id]">
<input name="cat" type="hidden" value="$id_cat">
<p><input name="sub_com" type="submit" value="Добавить комментарий"></p>
<br>
</form> 
</div><br>
HERE;
}
else {echo "<p>Вы не можете добавлять комментарии</p>";}?>

а сейчас не работает.
И почему то еще после входа вижу только Hello, user и кнопку выхода. Приходится делать php include ('auth.php'); сразу после include ("init.php"); чтобы увидеть содержимое страницы.
И еще вопросик. Как сделать, чтобы после входа юзера не выбразывало на index.php, а оставался на той же странице, где осуществлял вход?

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 11.02.2012 15:26

С кодом в login.php
if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS)
{	
	// Reset permissions data if user has just logged in
	if(!empty($login))
	{
		$auth->acl($user->data);
		header("Location: index.php");
		//echo ('<script language="JavaScript">javascript:history.go(-1);</script>');
	}
}

вход проходит без проблем в Опере, в хроме страница просто обновляется, но создается сессия и, похоже сразу удаляется.

С кодом
if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS)
{
	// Reset permissions data if user has just logged in
	if(!empty($login))
	{
		$auth->acl($user->data);
	}
	echo 'Hello, ' . get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']);
	echo '<form method="post" action="login.php">';
	echo '	<input type="submit" name="logout" value="LOGOUT" />';
	echo '</form>';
}

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

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 11.02.2012 16:01

В случае со вторым кодом после входа в Хроме перехожу на главную - вход не произведен. На хроме - вход произведен. Короче, и в 1м и во 2м коде имеется нормальный вход в опере, но не в хроме. Что такое может быть в этом хроме?

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu » 11.02.2012 16:05

Настройки куки проверьте.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 11.02.2012 16:11

А где их проверять, в браузере или на сайте? Я просто вообще раньше с куками не связывался. В настройках браузера я вообще все куки удалил

Добавлено спустя 11 минут 30 секунд:
При входе в хроме создается вот такой непонятный файл куки (прикреплен к сообщению). Вместо адреса, какая то билиберда...

Добавлено спустя 28 минут 46 секунд:
Мне кажется проблема с локальным сервером, т.к. на нем мой сайт. Наверное не может правильно передавать куки, хотя с оперой все ок
Вложения
Снимок-1.png

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu » 11.02.2012 20:00

А причем тут гугл?
Надо сравнить домен сайта, домен форума и домен куки из (админки).
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 11.02.2012 20:16

я про первую строчку, а не про гугл. я сейчас в инет выложил сайт, проблем с куками не стало. Так что в локальном серваке проблема

Добавлено спустя 1 час 39 минут 38 секунд:
Все, разобрался. Деменное имя было из одного слова. Добавил .zz, и заработало)

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение zevilz » 13.02.2012 17:58

В какой файл форума выводит сообщения об ошибках ввода пароля и логина? Дело в том, что у меня форма входа находится в выдвигающейся панели и хотелось бы чтобы сообщения об ошибках выводились в этой же панели без перезагрузки страницы. Изначально в файлах логина этой панели ошибки появлялись в этой же панели без перезагрузки. Вот пример кода:
	if(!$_POST['username'] || !$_POST['password'])
		$err[] = 'Все поля должны быть заполнены!';

zevilz
phpBB 1.0.0
 
Сообщения: 7
Зарегистрирован: 07.02.2012 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение firg » 16.02.2012 0:52

Не уверен, но мне кажется, что система авторизации phpBB предусматривает перезагрузку страницы в любом случае.
Возможно реально как-то, с помощью JavaScript (возможно Ajax) провернуть проверку наличия/отсутствия активной сессии пользователя и принять соответствующие действия (создать сессию или выдать данные пользователя в нужном месте странички), но я не знаком с этими технологиями.

Сообщения о неправильном вводе логина/пароля генерируются самим движком phpBB в файле login.php (говорю про мой способ решения) на 69-ой строке:

if ($login['error_msg'] == 'LOGIN_ERROR_USERNAME' || $login['error_msg'] == 'LOGIN_ERROR_PASSWORD')
		{
			$err = (!$config['board_contact']) ? sprintf($user->lang[$login['error_msg']], '', '') : sprintf($user->lang[$login['error_msg']], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>');
		}


Потом эта переменная отправляется обратно на главную страничку.

Вот где-то примерно здесь нужно копать.

firg
phpBB 1.0.0
 
Сообщения: 3
Зарегистрирован: 15.11.2011 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение george_of_314 » 12.03.2012 20:47

Интересная ситуация
Форум лежит по адресу www.somesite.com.ua/forum
В настройках куки домен: www.somesite.com.ua, путь /forum/
Есть страница в корне сайта, форма обратной связи
В странице инклудится файл init.php, тоже в корне сайта
<?PHP
define('IN_PHPBB', true);

// Set phpBB root folder properly. Change in according to the actual board folder
define('PHPBB_ROOT_PATH', './forum/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');
?>

В странице в поле имя вставляется имя залогиненого пользователя $user->data['username']; (должно вставляться)

Ситуация такова: на Форуме залогинен, лажу по форуму, все нормально. Захожу на страницу обратной связи - вместо имени пользователя показывает Anonymous, а в форуме разлогинивает

Уже второй день над этим бьюсь
Подскажите, что может быть не так?

george_of_314
phpBB 1.0.0
 
Сообщения: 5
Зарегистрирован: 07.09.2011 12:42
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Nekstati » 13.03.2012 8:14

george_of_314 писал(а):В настройках куки домен: www.somesite.com.ua, путь /forum/

Причина в этом. Задайте путь "/" (один слэш).
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2558
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 769 раз.

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение george_of_314 » 13.03.2012 14:34

При одном слеше вообще на форум попасть не могу
Ввожу пароль, пишет - вы авторизированы, далее редиректит на главную с формой входа
Попробую перенастроить форум с нуля - эту версию переносил с локального хоста с другими настройками

george_of_314
phpBB 1.0.0
 
Сообщения: 5
Зарегистрирован: 07.09.2011 12:42
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в FAQ (phpBB 3.0.x)

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Изображение