Тема: Блок авторизации на сайте (ХАК)

Данный хак позволяет, вывести форму авторизации, на вашем сайте в удобном для вас месте.


1. там где хотите видеть поля автоизации распологаем данный код:

<? if ($is_logged_in == "true")
{echo "<div class=user_menu>
Вы вошли, как ".$member['name']."
<br />
» <a href='/index.php?mod=addnews'>Добавить новость</a> <br />
» <a href='/index.php?mod=editnews'>Редактировать</a> <br />
» <a href='/index.php?mod=personal'>Личные настройки</a>
<br />
» <a href='/site.php?do=bookmark'>Закладки</a><br />» <a href='/site.php?do=users'>Пользователи</a>
<br />
» <a href='/index.php?action=logout'>Выход</a></div>";} 
else {echo "
<form name=login action=/index.php method=post>
<a href='/site.php?do=users'>Пользователи</a>
<input tabindex=1 type=text name=username value='".$lastusername."' style='width:134'>
<br />
<input type=password name=password style='width:134'>
<br />
<input type=submit style='width:134;' value='Войти'>
<br />
<a href='/site.php?do=reg'>Регистрация</a>
<input type=hidden name=action value=dologin>
</form>
";} ?>

*обязательно пропишите пути к вашим файлам, и замените site.php на ваш индекс фаил.

2. Берем расположеный ниже код, и сохраняем его в созданом ВАМИ файле login.inc
и сохраняем его в дистрибутиве вашего сайта

<table border="0" cellspacing="0" cellpadding="1">
 <form name="login" action="<?=$PHP_SELF; ?>" method="post" onsubmit="return process_form(this)">
  <tr>
   <td width="80"><?=$echo['username']; ?>
   <td><input tabindex="1" type="text" name="username" value="" style="width:134">
  <tr>
   <td><?=$echo['password']; ?>
   <td><input type="password" name="password" style="width:134">
  <tr>
   <td>
   <td><input accesskey="s" type="submit" style="width:134;" value="<?=$echo['login']; ?>">
  <tr>
   <td align="left" colspan="3"><?=$result; ?></td>
  </tr>
 <input type="hidden" name="action" value="dologin">
 </form>
<tr>
<td style="padding-left:30; padding-top:5"><a href="<?=$http_dir; ?>/index.php?do=register">Регистрация</a></td>
</tr
</table>

на все непонятки отвечу, в этом разделе

Тестировал на Strawberry 1.0.2

2

Re: Блок авторизации на сайте (ХАК)

Так. Код вставил 1 в 1, заменив везде site.php на свой index.php

После этого создал файл login.inc.php, который поместил в cute/inc.

Форма появилась в следующем виде:

< ? if ($is_logged_in == "true") {echo "
Вы вошли, как ".$member['name']."
» Добавить новость
» Редактировать
» Личные настройки
» Закладки
» Пользователи
» Выход
";} else {echo "
Пользователи 


Регистрация
";} ? >

Re: Блок авторизации на сайте (ХАК)

Версия?

Re: Блок авторизации на сайте (ХАК)

< ?
? >

Убери пробел между знаком вопроса и знаком неравенства

5

Re: Блок авторизации на сайте (ХАК)

Хм... а есть возможность сделать так, чтобы после входа/выхода - отображалась та страница, с которой проходила регистрация (куда была вставлена форма входа/выхода) - а не индексная страница Кубники?

ЗЫЖ В инструкции советую переписать, что надо site.php менять не на индексную страницу сайта, а на индексную страницу Клубники...

6

Re: Блок авторизации на сайте (ХАК)

Не

<? if ($is_logged_in == "true")

а

<? if ($is_logged_in === true)

или

<? if ($is_logged_in)
Признанный мастер чинпоко, а-ай ^_^

Re: Блок авторизации на сайте (ХАК)

Белый Ящер пишет:

Хм... а есть возможность сделать так, чтобы после входа/выхода - отображалась та страница, с которой проходила регистрация (куда была вставлена форма входа/выхода) - а не индексная страница Кубники?

ЗЫЖ В инструкции советую переписать, что надо site.php менять не на индексную страницу сайта, а на индексную страницу Клубники...

В версиях до 1.0.2 (в следующих х.з., но в 1.1а я неразобрался) в main.mdu

if ($member['level'] == 4 and $action == 'dologin'){
    header('Location: '.$config['http_script_dir'].'/'.$PHP_SELF.'?mod=personal');
}

в нём  надо поменять в строке

header('Location: '.$config['http_script_dir'].'/'.$PHP_SELF.'?mod=personal');

страницу на которую редиректим и в строке

 if ($member['level'] == 4 and $action == 'dologin')

изменить циферку 4 на нужный уровень доступа.
При необходимости добавить ещё и другие уровни доступа....
тоже самое с выходом только не dologin а logout

Лёха, а как в новых версиях такое замутить, тем более с группами. а то какая-то ересь получаеться?

8

Re: Блок авторизации на сайте (ХАК)

muhas, нужно писать не $member['level'], а $member['usergroup']. По умолчанию группы похожи на старые, даже id такие же.

Признанный мастер чинпоко, а-ай ^_^

Re: Блок авторизации на сайте (ХАК)

Отлично, при наличии головы на туловище, почитав эти топы можно реальные вещицы замутить себе на сайт!

10

Re: Блок авторизации на сайте (ХАК)

Aurum, теперь я даже рад, что старая база накрылась, жуткий срач был, ща всё супер, правда и тем не столько, но модераторов много и всё супер вроде smile.

Признанный мастер чинпоко, а-ай ^_^

Re: Блок авторизации на сайте (ХАК)

ну будем надеятся что так и будет держаться, хотя если какамейкеры подтянутся то... big_smile

12

Re: Блок авторизации на сайте (ХАК)

Вы тут радуетесь - я тоже, что я ламер, но на сайте что-то приличное вроде выходит... но всеже... smile))

Скажите мне, как дураку - в каком файле что надо поправить, чтобы используя этот самый Блок авторизации на сайте (ХАК) я при входе - после ввода пароля, и при выходе - после нажатия на кнопку - попадал на индексную страницу сайта, а не клубники.

А то в написанном я так и не понял, чт онадо сделать roll

Re: Блок авторизации на сайте (ХАК)

Ящур впихни в начало файла inc/mod/main.mdu после строки <?php

if ($member['usergroup'] == 4 and $action == 'dologin'){
    header('Location: адрес_вашей_странички_на_которую_редиректим');
    exit;
}

и юзеры из группы 4 будут поподать на ту страницу какую ты укажешь. впихнёшь после этого

if ($member['usergroup'] == 3 and $action == 'dologin'){
    header('Location: адрес_вашей_странички_на_которую_редиректим');
    exit;
}

и юзеры из третьей группы будут поподать при входе на "адрес_вашей_странички_на_которую_редиректим"

Отредактировано muhas (11 May 2006 17:47:10)

14

Re: Блок авторизации на сайте (ХАК)

muhas пишет:

Ящур впихни в начало файла inc/mod/main.mdu после строки <?php

if ($member['usergroup'] == 4 and $action == 'dologin'){
    header('Location: адрес_вашей_странички_на_которую_редиректим');
    exit;
}

и юзеры из группы 4 будут поподать на ту страницу какую ты укажешь. впихнёшь после этого

if ($member['usergroup'] == 3 and $action == 'dologin'){
    header('Location: адрес_вашей_странички_на_которую_редиректим');
    exit;
}

и юзеры из третьей группы будут поподать при входе на "адрес_вашей_странички_на_которую_редиректим"

Вставил. Начало main.mdu получилось такое:

<?php

if ($member['usergroup'] == 4 and $action == 'dologin'){
    header('Location: http://mikemar.spb.ru/index.php');
    exit;
}

Только что при входе, что при выходе - все равно идет редирект на главную страницу Клубники

$echo = cute_lang('main');

15

Re: Блок авторизации на сайте (ХАК)

Код, указанный в ответе, работать отказался sad((( Поправил, заменил файл... но редирект идет все туда же... Может я неверно сформулировал мысль?


Поэтому повторю: как сделать так, чтобы после нажатия на кнопку "вход" (после ввода имени пользователя и пароля) редирект шел не на главную страницу Клубники, а на ту, которую укажешь сам).

Аналогично хочу с выходом - после нажатия "выход" - человек должен попасть на ту страницу, которую я укажу.

Re: Блок авторизации на сайте (ХАК)

А как бы сделать чтобы переменная $result при ошибке ввода вылетала под вводом логина и паса, а не редиректила на $cutepach.'index.php' ?

Отредактировано Mauglio (15 May 2006 03:50:15)

Re: Блок авторизации на сайте (ХАК)

Белый Ящер, а ты у ся на сайте что в группе 4? у членов группы 4 всё должно работать. а у тя долже стоят код

<?php

if ($member['usergroup'] == имя_группы and $action == 'dologin'){
    header('Location: http://mikemar.spb.ru/index.php');
    exit;
}

и так повторяться для каждой группы.

Насчёт $result тоже интересуюсь, может кто подскажет?

Re: Блок авторизации на сайте (ХАК)

Я тоже делал блок авторизации, только он больше приспособлен для чпу.
Создаём файл login.php и засовываем его в папку engine.

<?php
if ($action == 'logout'){
    setcookie('md5_password', '', time() - 3600 * 24 * 365, '/');
    setcookie('username', '', time() - 3600 * 24 * 365, '/');
    setcookie('login_referer', '');
    @session_destroy();
       @session_unset();
    @setcookie(session_name(), '');
}

if( $action == 'logout') {
header("location:".$HTTP_REFERER);
}

// If User is Not Logged In
if (!$is_logged_in){
?>

<form name="login" action="" method="post">
<table border="0" cellspacing="0" cellpadding="1" width="100%" align="center">
  <tr>
   <td align="right">Логин:
   <td><input class=form onfocus="id=className" onblur="id=''"" tabindex="1" type="text" name="username" value="<?=$lastusername; ?>" size="8" >
  <tr>
   <td align="right"><?=$echo['password']; ?>
   <td><input class=form onfocus="id=className" onblur="id=''"" type="password" name="password" size="8" >
  </tr>
</table><br>
<input accesskey="s" class=form onfocus="id=className" onblur="id=''"" type="submit" size="8" value="Войти"><br><br>
<a href="/register"><font face="Verdana, Arial, Helvetica, Sans serif" size="1">[ Регистрация ]</font></a>
<?=$result; ?>
 <input type="hidden" name="action" value="dologin">
</form>

<?php
    }
elseif ($is_logged_in) {
echo "<br>Wusup $username<br><br><font face='Verdana, Arial, Helvetica, Sans serif' size='1'>";
if ($member['level'] < 4) {
echo "[ <a href='/engine'>Админ Центр</a> ]";
}
else {
echo "[ <a href='/engine/index.php?mod=options'>Настройки</a> ]";
}
echo "<br><br>[ <a href='?action=logout'>Завершить сеанс</a> ]</font><br><br>";
}
?>

Там где нужно вывести форму:

<?php
include 'engine/login.php';
?>

Re: Блок авторизации на сайте (ХАК)

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

Отредактировано ruz (04 Jun 2006 20:44:10)

Re: Блок авторизации на сайте (ХАК)

Grabir, респект, скрипт конечно пришлось немного подогнать под себя, но получилось просто отлично и, главное, просто

Re: Блок авторизации на сайте (ХАК)

ruz, у мна это было реализовано как интерфейс админки(скин под мой сайт) может и ты себе так же сделаешь...

Re: Блок авторизации на сайте (ХАК)

Выход с редиректом на нужную страницу:

в конце файла logout.mdu

header('Location: /');

up
http://strawberry.goodgirl.ru/forum/vie … php?id=577 - про перенаправление в strawberry 1.1.1

Отредактировано muhas (11 Sep 2006 11:49:53)

Re: Блок авторизации на сайте (ХАК)

Strawberry 1.1.1.
Проделал всё, что написано в первом посте. Поя вилась у меня эта форма входа пользователей. Зайти я смог, но вот когда я нажимаю на ссылки, которые становятся доступны пользователю после авторизации, ничего не происходит!
Попробовал воспользоваться кодом поста #18, такая же история...
Даже такая ссылка не работает http://www.site.ru/index.php?action=logout

Re: Блок авторизации на сайте (ХАК)

делай всё как по ссылке в моём последнем посте... и в форме подредактируй всё как надо...
пример на моей хомпаге - всё работает, если что-то у тя не работает, значит сделал что-то не так

Re: Блок авторизации на сайте (ХАК)

А что должно быть связянное с регистрацией в индексном сайте?
У меня не используется ничего, вроде ?do=reg и проч.
использую ЧПУ, т.е. ссылка имеет вид sait.tu/registration/ - где указываю regForm('default')
после регистрации выдает, вроде: Регистрация прошла успешно, выполнен автоматический вход в систему.
но по прежнему не определен как зарег. пользователь.
Проясните, плз.

Спасибо!
Strawberry 1.1.1.