Тема: Форма логина и куда она выкидывает

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

<? if ($is_logged_in == "true")
{echo "<div class=user_menu>
Welcome, ".$member['name']."
<br />
> <a href='news/index.php?mod=addnews'>Add News</a> <br />
> <a href='news/index.php?mod=editnews'>Edit</a> <br />
> <a href='news/index.php?mod=personal'>Personal</a>
<br />
> <a href='index.php?do=bookmark'>Bookmarks</a><br />> <a href='index.php?do=users'>Users</a>
<br />
> <a href='news/index.php?action=logout'>Logout</a></div>";} 
else {echo "
<form name=login action=news/index.php method=post>
<!--<a href='news/index.php?do=users'>Users</a>-->
<input tabindex=1 type=text  name=username value='".$lastusername."' style=\"font-family:Georgia; font-size:12px; font-weight:regular\" size=\"20\">
<br />
<input  type=password name=password style=\"font-family:Georgia; font-size:12px; font-weight:regular\" size=\"20\">
<br />
<input type=submit value='Login'>
<br />
<a href='index.php?do=reg'>Register</a>
<input type=hidden name=action value=dologin>
</form>
";} ?>

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

Отредактировано Kykc (05 Sep 2006 00:59:35)

Re: Форма логина и куда она выкидывает

Kykc, то, что делает Ваша форма - вполне логично, ведь после процедуры авторизации предполагается передача сведений об авторизованном пользователе админцентру методом POST, а для этого просто необходимо его открыть. А если Вас не устраивает лишнее движение по возврату к главной странице сайта, в строке

<form name=login action=news/index.php method=post>

добавьте target=_blank, то есть:

<form name=login action=news/index.php method=post target=_blank>

Админцентр откроется в новом окне, а Ваша главная страница также останется открытой. Это самый простой способ. Более сложный потребует полной переделки формы авторизации, например - с использованием сессий, cookies или промежуточных файлов.

Re: Форма логина и куда она выкидывает

в начале скина для админки (default.skin.php или другой если сменил) укажи

if ($action == "dologin") {

    header('Location: /');
    
}

, где / это то куда перебрасываем

аналогично для выхода в файле logout.mdu указываем, или  заменяем

header('Location: /');

Re: Форма логина и куда она выкидывает

Спасибо! Все нашел, теперь работает как надо smile

Отредактировано Kykc (05 Sep 2006 21:39:34)

Re: Форма логина и куда она выкидывает

Strawberry 1.1.1.
Ссылка news/index.php?do=users открывает главную страничку админки, если я захожу как админ, если же я захожу как обычный юзер, то пишет

Вам запрещён доступ к этому модулю!

Значит ссылка неправильная... Кака её изменить?

Re: Форма логина и куда она выкидывает

Ydes, Ваш вопрос не имеет отношения к заданной теме! А ссылка правильная, она для всех одинаковая - и для админов и для юзеров. Зайдите как админ и проверьте корректность данных юзера, под которым Вы не можете зайти. И поищите в форуме, там есть несколько тем, посвященных Вашей проблеме.

Re: Форма логина и куда она выкидывает

Strawberry 1.1.1.
Использую тот же скрипт, что и Kykc и вставки от muhas. Но скрипт от muhas вписанный в logout.mdu не работает. Или может быть я не правильно понял его задачу. Я хочу чтобы после нажатия "Выход" пользователся перекидывало на нужную мне страницу, а его кидает в http://site.com/news/index.php?action=logout
Как сделать автоматический переход на нужную мне страницу?

Отредактировано cmd (14 Mar 2008 22:24:07)

Re: Форма логина и куда она выкидывает

muhas пишет:

в начале скина для админки (default.skin.php или другой если сменил) укажи

if ($action == "dologin") {

    header('Location: /');
    
}

, где / это то куда перебрасываем

аналогично для выхода в файле logout.mdu указываем, или  заменяем

header('Location: /');

У меня Strawberry 1.1.1
Спасибо это мне очень помогло big_smile
А другие варианты в этой теме непомогли neutral

Век живи, день учись. А можно и наоборот.

Re: Форма логина и куда она выкидывает

ANT-Soft пишет:

Более сложный потребует полной переделки формы авторизации, например - с использованием сессий, cookies или промежуточных файлов.

Я вот думаю, а что если в форму авторизации добавить скрытое поле с переменной

http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

При авторизации эта переменная будет передаваться вместе с логином и паролем.
Логично?

Вот только подскажите пожалуйста, куда этот dologin передается, чтобы я там вставил редирект...

Тогда пользователь после авторизации будет оставаться там, где он и был....

З.Ы. Если я несу ахинею - сообщите пжста. Я все таки стараюсь...
З.З.Ы. Возможно решение уже было найдено в другой теме, а я пропустил...

Отредактировано cmd (03 Mar 2010 02:02:44)

Re: Форма логина и куда она выкидывает

Лично я не парился и форма логирования у меня такая

$lf = "<form name=\"login\" action=\"\" method=\"post\">"
."<table border=\"0\" align=\"center\" width=\"220\" cellpadding=\"2\" class=\"smtext\">"
."<tr>"
."<td width=\"50\">&nbsp;&nbsp;".t("Логин").":&nbsp;</td>"
."<td width=\"170\"><input type=\"text\" name=\"username\" class=\"regtext\"></td>"
."</tr>"
."<tr>"
."<td>&nbsp;&nbsp;".t("Пароль").":&nbsp;</td>"
."<td><input type=\"password\" name=\"password\" class=\"regtext\"></td>"
."</tr>";
//$lf .= pin_cod_auth("login", "auth"); 
$lf .= "<tr>"
."<td colspan=\"2\" align=\"center\"><input type=\"submit\" class=\"regok\" value=\"".t("ВХОД")."\"></td>"
."</tr>";

if (!empty($result_in)) {
$lf .= "<tr>"
."<td colspan=\"2\">".$result_in."</td>"
."</tr>";
}

$lf .= "<tr>"
."<td colspan=\"2\">"
."» <a href=\"index.php?mod=account&amp;act=registration\">".t("Регистрация")."</a><br>"
."» <a href=\"index.php?mod=account&amp;act=forgot\">".t("Забыли пароль?")."</a></td>"
."</tr></table>"
."<input type=\"hidden\" name=\"action\" value=\"dologin\">"
."</form>";

Как вы можете заметить, никакой action не указан! Поэтому скрипт поумоляанию принимает ту страницу на которой вы находитесь. Никаких скрытых полей ненужно...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Стоп... но тогда получается, что пользователь авторизируется, а при переходе на следующую страницу авторизация пропадает. Нет?

Re: Форма логина и куда она выкидывает

Нет! Авторизация пишется в куки (странно что еще тогда разработчик не сделал сессии tongue ) и больше проверка в базе не делается.

К тому же - у меня то работает wink

1 минуту и 43 секунды спустя:

гы, странное у вас понятие о авторизации и методах передачи.
Т.е. по вашему всю дорогу что посетитель сидит на сайте  - его данные передаются из формы какой то?
А то что она пропадает при авторизации эти вас не смущает? smile

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Хм... да-да... Все понимаю. Я чайник и могу говорить глупости так что прошу прощения...
Но у меня кукисы не срабатывают, если action не прописан в news\index.php

Re: Форма логина и куда она выкидывает

Чайник или не чайник - это не важно.
Форма авторизации нужна только один раз.

А если куки не работают, то вам нужно сделать анализ передаваемых данных.
Вывести так:

print_r($_GET); // для метода get
print_r($_POST); // для метода post

этот код вам покажет имена полей (ключи) и их содержимое при отправке данных.

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Зашел для теста на: _http://politzone.in.ua/index.php?id=257

Авторизировался.

Пишет:

Array ( [id] => 257 ) 
Array ( [loginredir] => http://politzone.in.ua/index.php?id=257 
[username] => тут_логин
[password] => тут_пароль [action] => dologin ) 

При переходе на другую страницу сайта авторизаций пропадает.
Пишет:

Array ( ) Array ( )

2 часа, 22 минуты и 26 секунд спустя:

Вот эта часть кода:

[loginredir] => http://politzone.in.ua/index.php?id=257

Скрытое поле о котром я говорил выше.
Убрал его - без изменений.
Opera, FF, Chrome - авторизация проискходит лишь на одной странице.
IE - вообще не авторищирует но данные передает (как и все):

Array ( ) Array ( [username] => тут_логин [password] => тут_пароль [action] => dologin )

Отредактировано cmd (05 Mar 2010 16:18:26)

Re: Форма логина и куда она выкидывает

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

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Если об этом: http://strawberry.goodgirl.ru/forum/vie … php?id=443

Толко что внес изменения - без результата. Куки чистил, разные браузеры запускал, челом об клаву бил.
Может я что не нашел?

9 минут и 49 секунд спустя:

Вообще, это не совсем то, ведь выкидывает только если не указан action="path\index.php"

Re: Форма логина и куда она выкидывает

)) тогда пропишите это ))

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Miksar: мегаконструктив! smile
Неужели ни у кого нет решения? Как же может портал с большим кол-вом зарегистрированных пользователей работать без такого решения... Отправлять всех на гланую страницу... как бэ брутально...

Re: Форма логина и куда она выкидывает

Моя демо площадка не отправляет всех на главную страницу.
Попробуйте сами...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Форма логина и куда она выкидывает

Может это от хостинга зависит или от настроек пхп.

Полазил в админпанеле хостинга. Нашел

session.auto_start                Off
session.cache_expire           180   
session.cookie_lifetime         0
session.cookie_secure          Off
session.gc_maxlifetime          1440
session.use_cookies          On
session.use_only_cookies     Off
session.use_trans_sid          Off

Может тут что-то переключить надо?

Re: Форма логина и куда она выкидывает

Указанные вам параметры... скорее всего просто показывают нам что включено а что нет. На мой замыленный взгляд все нормально )))

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!