Проблемка с авторизацией
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>
Тут вот какая проблемка вышла, решил я совместить свою страничку с форумом 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) На странице авторизации пишешь:
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: твоя страница");
}
}
ну при иначе выдаешь форму
а на остальных страницах вставляешь:
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){
здесь код страницы
}
Тут вот какая проблемка вышла, решил я совместить свою страничку с форумом 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");
?>
вуаля, юзер постоянно залогинен... по крайней мере пока не закроет браузер...
действительно, не стоит так мудрить... лучше всего действовать куками (на мой взгляд)...
на всех страничках нужно поставить:
<?
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");
?>
вуаля, юзер постоянно залогинен... по крайней мере пока не закроет браузер...
Учитывая сегодняшних продвинутых юзверей и админов куки в большинстве случеев отключены.
Я не говорю что их ненадо использовать, но лучше кроме этого дублировать их другими способами.
Ктомуже куки можно подделать.
Учитывая сегодняшних продвинутых юзверей и админов куки в большинстве случеев отключены.
Я не говорю что их ненадо использовать, но лучше кроме этого дублировать их другими способами.
Ктомуже куки можно подделать.
не спорю, куки могут быть отключены... но какой смысл их подделывать??? если известен пароль и логин... иначе авторизацию не пройдешь...
не спорю, куки могут быть отключены... но какой смысл их подделывать??? если известен пароль и логин... иначе авторизацию не пройдешь...
Я говорил не про данный конкретный случай авторизации, а об использовании куки вобще.
не спорю, куки могут быть отключены... но какой смысл их подделывать??? если известен пароль и логин... иначе авторизацию не пройдешь...
Достаточно уворовать трояном или адаваром куки с логином и паролем, чтобы залогониться с другого компьютера. Обязательно нужна проверка, что с одних куков грузятся только с одного IP-адреса.
Достаточно уворовать трояном или адаваром куки с логином и паролем, чтобы залогониться с другого компьютера. Обязательно нужна проверка, что с одних куков грузятся только с одного IP-адреса.
все это понятно... но что делать тем кто через телефонную линию от какого-нить ...Телекома??? у них статичный IP-шник только в течение одного подключения... связь оборвалась и потом уже другой IP-шник... лог по IP-шникам ведется, не проблема сделать чтоб все еще и проверялось...
все это понятно... но что делать тем кто через телефонную линию от какого-нить ...Телекома??? у них статичный IP-шник только в течение одного подключения... связь оборвалась и потом уже другой IP-шник... лог по IP-шникам ведется, не проблема сделать чтоб все еще и проверялось...
Если мы говорим об удобстве юзера, то не проверять на IP адрес.
Если говорить о его безопасности и, если он имеет какие-то права, то и о безопасности сайта, то можно либо пропустить тех немногих оставшихся любителей диалапа, либо вести лог разрешенных IP-адресов для пользователя. Или даже диапозонов адресов.