Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемка с авторизацией

14K
26 октября 2005 года
babagun
1 / / 26.10.2005
Тут вот какая проблемка вышла, решил я совместить свою страничку с форумом PHPBB или точнее регистрацию форума присобачить к своей странице по этому поводу есть такая беседа :
http://myphpbb.com.ru/go/viewtopic....sc&start=75

Так вот проблемка в том что мне бы нада чтоб всё это работало на моей главной странице а оно если пользователь зарегистрированный кидает сразу на форум
То что нада заменить константу PAGE_INDEX я понял а вот на что и как ну никак, я вобщето ещё зелёный... Помогите. Вот сам код:

<?
ob_start();
define('IN_PHPBB', true);
$phpbb_root_path = './phpbb/'; // ну или какой там каталог с форумом
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX); // тут нужно использовать новую константу, т.к. за этой закреплена главная страница ФОРУМА
init_userprefs($userdata);
?>
<html>
<head>
</head>
<body>
...далее следует дизайн

а в нужное место вставить:
<?
if ($userdata['user_active']==1) // Если вы зарегистрированны то ваш ник опрделиться, иначе выдать форму регистрации
{
print $userdata[username];
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
else
{
print "ЗАРЕГИСТРИРУЙТЕСЬ!";
print" <form method='post' action='phpbb/login.php'>
Логин: <input type='text' name='username' size='15' id=inp>
Пароль: <input type='password' name='password' size='15' maxlength='32' id=inp>
Запомнить: <input type='checkbox' name='autologin' id=inp>
<input type='hidden' name='redirect' value='../index.php?$QUERY_STRING'> <input type='submit' name='login' value='Войти' id=fix_w2>
Регистрация
Забыли пароль? Логин? ";
ob_end_flush();
}
?>
и опять дизайн...
...
...
...
...
</body>
</html>
7.3K
01 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by babagun
Тут вот какая проблемка вышла, решил я совместить свою страничку с форумом PHPBB или точнее регистрацию форума присобачить к своей странице по этому поводу есть такая беседа :
http://myphpbb.com.ru/go/viewtopic....sc&start=75

Так вот проблемка в том что мне бы нада чтоб всё это работало на моей главной странице а оно если пользователь зарегистрированный кидает сразу на форум
То что нада заменить константу PAGE_INDEX я понял а вот на что и как ну никак, я вобщето ещё зелёный... Помогите. Вот сам код:

<?
ob_start();
define('IN_PHPBB', true);
$phpbb_root_path = './phpbb/'; // ну или какой там каталог с форумом
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX); // тут нужно использовать новую константу, т.к. за этой закреплена главная страница ФОРУМА
init_userprefs($userdata);
?>
<html>
<head>
</head>
<body>
...далее следует дизайн

а в нужное место вставить:
<?
if ($userdata['user_active']==1) // Если вы зарегистрированны то ваш ник опрделиться, иначе выдать форму регистрации
{
print $userdata[username];
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
else
{
print "ЗАРЕГИСТРИРУЙТЕСЬ!";
print" <form method='post' action='phpbb/login.php'>
Логин: <input type='text' name='username' size='15' id=inp>
Пароль: <input type='password' name='password' size='15' maxlength='32' id=inp>
Запомнить: <input type='checkbox' name='autologin' id=inp>
<input type='hidden' name='redirect' value='../index.php?$QUERY_STRING'> <input type='submit' name='login' value='Войти' id=fix_w2>
Регистрация
Забыли пароль? Логин? ";
ob_end_flush();
}
?>
и опять дизайн...
...
...
...
...
</body>
</html>



Мой тебе совет чем мучаться ковыряя чужие проги лучше напиши собственную авторизацию.
Например через сесии:
1) На странице авторизации пишешь:

Код:
function Autorized($usrname, $usrpass) {
        if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $usrname)) $usrname = "";
        if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $usrpass)) $usrpass = "";
        $result = mysql_query("SELECT login, password FROM users WHERE login = '".$usrname."' AND password = '".md5($usrpass)."' LIMIT 1");
        if (mysql_num_rows($result) > 0) return true;
            else return false;
    }
if (isset($HTTP_POST_VARS['send'])){
        $usrname = substr($HTTP_POST_VARS['login'], 0, 15);
        $usrpass = substr($HTTP_POST_VARS['password'], 0, 30);
        if (Autorized($usrname,$usrpass)){
            session_name('SID');
            session_start('SID');
            session_register('login');
            session_register('password');
            $HTTP_SESSION_VARS['login'] = $usrname;
            $HTTP_SESSION_VARS['password'] = $usrpass;
            header("Location: твоя страница");
        }
}


ну при иначе выдаешь форму
а на остальных страницах вставляешь:

Код:
$autorized = false;
    session_name('SID');
    session_start ('SID');
   
    if (!session_is_registered('login') || !session_is_registered('password')){
        header("Location: страница авторизации");
        exit;
    }
    else{
        $usrname = $HTTP_SESSION_VARS['login'];
        $usrpass = $HTTP_SESSION_VARS['password'];
        if (Autorized($usrname,$usrpass)){
            $autorized = true;
        }
        else{
            header("Location: страница авторизации");
            exit;
        }
    }
    if ($autorized){
здесь код страницы
}
239
01 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Сессии могут сильно коцать ссылки и криво работать с формами. С ними надо быть осторожными
9.3K
01 ноября 2005 года
Mayor28
28 / / 17.06.2005
Цитата:
Originally posted by babagun
Тут вот какая проблемка вышла, решил я совместить свою страничку с форумом PHPBB или точнее регистрацию форума присобачить к своей странице по этому поводу есть такая беседа :
http://myphpbb.com.ru/go/viewtopic....sc&start=75

Так вот проблемка в том что мне бы нада чтоб всё это работало на моей главной странице а оно если пользователь зарегистрированный кидает сразу на форум
То что нада заменить константу PAGE_INDEX я понял а вот на что и как ну никак, я вобщето ещё зелёный... Помогите.



действительно, не стоит так мудрить... лучше всего действовать куками (на мой взгляд)...
на всех страничках нужно поставить:
<?

if(!isset($HTTP_COOKIE_VARS["username"]))
{
include "enter.php";
}
else
{
$username=$HTTP_COOKIE_VARS["username"];
if(!file_exists("$username"))
{
echo "

<center>Такой пользователь не зарегистрирован.

<a href=reg.php>Зарегистрировать???</a></center>";
}
else
{
include("$username");
$password=$HTTP_COOKIE_VARS["password"];

if($password != $mypw)
{
echo"Неправильно введен пароль!!! Попробуйте еще раз!!!";
include_once "login.php";
}
else
{
Дизайн и все остальное;
...
}
}
}
?>
а при вводе логина и пароля переход на страничку:
<?php
setcookie("username","$username_from_form");
setcookie("password","$password_from_form");
header("Location:login.php");
?>
вуаля, юзер постоянно залогинен... по крайней мере пока не закроет браузер...

7.3K
02 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by Mayor28
действительно, не стоит так мудрить... лучше всего действовать куками (на мой взгляд)...
на всех страничках нужно поставить:
<?

if(!isset($HTTP_COOKIE_VARS["username"]))
{
include "enter.php";
}
else
{
$username=$HTTP_COOKIE_VARS["username"];
if(!file_exists("$username"))
{
echo "

<center>Такой пользователь не зарегистрирован.

<a href=reg.php>Зарегистрировать???</a></center>";
}
else
{
include("$username");
$password=$HTTP_COOKIE_VARS["password"];

if($password != $mypw)
{
echo"Неправильно введен пароль!!! Попробуйте еще раз!!!";
include_once "login.php";
}
else
{
Дизайн и все остальное;
...
}
}
}
?>
а при вводе логина и пароля переход на страничку:
<?php
setcookie("username","$username_from_form");
setcookie("password","$password_from_form");
header("Location:login.php");
?>
вуаля, юзер постоянно залогинен... по крайней мере пока не закроет браузер...



Учитывая сегодняшних продвинутых юзверей и админов куки в большинстве случеев отключены.
Я не говорю что их ненадо использовать, но лучше кроме этого дублировать их другими способами.
Ктомуже куки можно подделать.

9.3K
02 ноября 2005 года
Mayor28
28 / / 17.06.2005
Цитата:
Originally posted by S_K_I_V--WEBER
Учитывая сегодняшних продвинутых юзверей и админов куки в большинстве случеев отключены.
Я не говорю что их ненадо использовать, но лучше кроме этого дублировать их другими способами.
Ктомуже куки можно подделать.



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

7.3K
02 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by Mayor28
не спорю, куки могут быть отключены... но какой смысл их подделывать??? если известен пароль и логин... иначе авторизацию не пройдешь...



Я говорил не про данный конкретный случай авторизации, а об использовании куки вобще.

239
02 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by Mayor28
не спорю, куки могут быть отключены... но какой смысл их подделывать??? если известен пароль и логин... иначе авторизацию не пройдешь...

Достаточно уворовать трояном или адаваром куки с логином и паролем, чтобы залогониться с другого компьютера. Обязательно нужна проверка, что с одних куков грузятся только с одного IP-адреса.

9.3K
02 ноября 2005 года
Mayor28
28 / / 17.06.2005
Цитата:
Originally posted by Dolonet
Достаточно уворовать трояном или адаваром куки с логином и паролем, чтобы залогониться с другого компьютера. Обязательно нужна проверка, что с одних куков грузятся только с одного IP-адреса.



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

239
02 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by Mayor28
все это понятно... но что делать тем кто через телефонную линию от какого-нить ...Телекома??? у них статичный IP-шник только в течение одного подключения... связь оборвалась и потом уже другой IP-шник... лог по IP-шникам ведется, не проблема сделать чтоб все еще и проверялось...

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

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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог