Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
rad1k

Как вывисти авторизацию на другие страницы сайта

Recommended Posts

Ну я изменил вверху /initdata.php а борд_урл по разному пробую

Share this post


Link to post
Share on other sites

Не надо ничего менять, скопируйте еще раз код из сообщения и укажите путь до initdata.php.

  • Upvote 1

Share this post


Link to post
Share on other sites

Ух ты, заработало, спасибо большое ! :rolleyes: :) :)

Share this post


Link to post
Share on other sites

Есть только нюанс, я положил это все допустим в index.php, родной index.php назвал index_2.php залогинился, и если я обращаюсь еще раз к этому скрипту он выдает

Warning: Cannot modify header information - headers already sent by (output started at C:\web\OpenServer\domains\localhost\1.php:14) in C:\web\OpenServer\domains\localhost\1.php on line 31

нужно чтобы он как то определял что если человек уже залогинился, то редиректил на index_2.php

Share this post


Link to post
Share on other sites

и если я обращаюсь еще раз к этому скрипту он выдает

Редирект должен выполнятся до вывода контента в браузере. Уберите весь вывод перед php кодом, а также указать конкретный файл раз форум находится в одной папке и у него не индексный файл (хотя это не совсем удачная идея).

 

header('Location: '.$settings['board_url'].'/');

или использовать

 

header('Location: '.$settings['base_url'].'act=idx');

  • Upvote 1

Share this post


Link to post
Share on other sites

Спасибо, со вторым вариантом все заработало))

Если еще подскажите куда копать чтобы скин к этой форме прикрутить :)

Допустим в сети такие базовые формы (файл с формой index.html+style.css обычно)

в index.php такая форма

<div id="login-form">

<h1>АВТОРИЗАЦИЯ</h1>

<fieldset>

<form action="javascript:void(0);" method="get">

<input type="email" required value="Логин" onBlur="if(this.value=='')this.value='Логин'" onFocus="if(this.value=='Логин')this.value='' ">

<input type="password" required value="Пароль" onBlur="if(this.value=='')this.value='Пароль'" onFocus="if(this.value=='Пароль')this.value='' ">

<input type="submit" value="ВОЙТИ">

</form>

</fieldset>

</div>

form action тупо заменить на

<?=$settings['board_url']?>/index2.php?app=core&module=global&section=login&do=process

? как логин с паролем видоизменить чтобы так же получилось, я запутался уже)

 

Зы - сори я случайно два аккуанта зарегил, дома и на работе((

Edited by ntest

Share this post


Link to post
Share on other sites

Прикрутил дизайн, все хорошо, но один момент остался неприятный, сейчас если ввести НЕ правильный пароль, редиректит на страницу родной авторизации, а нужно чтобы страница оставалась на месте.. Как это реализовать?

Share this post


Link to post
Share on other sites

сейчас если ввести НЕ правильный пароль, редиректит на страницу родной авторизации, а нужно чтобы страница оставалась на месте.. Как это реализовать?

Использовать внешнюю авторизации с первой страницы.

Share this post


Link to post
Share on other sites

Эхх, через htaccess нельзя это сделать редиректом просто?(

 

Я это отредактировал и положил

А с этим что теперь, заменяю пути на ссылку к апи

Или я сам не справлюсь тут?

<?php
define( 'IPB_THIS_SCRIPT', 'public' );
define( 'IPS_PUBLIC_SCRIPT', '/admin/api/member/api_member_login.php');
define( 'IPS_ENFORCE_ACCESS', true);
require_once( './initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();

$settings   =& $registry->fetchSettings();
$memberData =& $registry->member()->fetchMemberData();

if($memberData['member_id']):
   header('Location: '.$settings['base_url'].'act=idx');
   exit;
else:
?>
<html>
<div id="login-form">
     <h1>авторизация</h1>
<fieldset>
    <form method="post" action="<?=$settings['board_url']?>/admin/api/member/api_member_login.php" >
    <input type="hidden" name="auth_key" value="<?=$registry->member()->form_hash?>"/>
    <input type="text" name="ips_username" id="ips_username" required value="Логин" onBlur="if(this.value=='')this.value='Логин'" onFocus="if(this.value=='Логин')this.value='' "> 
    <input type="password" name="ips_password" id="ips_password" required value="Пароль" onBlur="if(this.value=='')this.value='Пароль'" onFocus="if(this.value=='Пароль')this.value='' "> 
    <input type="submit" value="ВОЙТИ">
</form>
</fieldset>
</div>
<?php
endif;
?>

Share this post


Link to post
Share on other sites

Эхх, через htaccess нельзя это сделать редиректом просто?(

Можно. Только речь не о редиректе а о авторизации.

 

 

Или я сам не справлюсь тут?

На первой странице есть примеры.

 

<?php
define( 'FORUM_PATH', './');
define( 'IPS_PUBLIC_SCRIPT', 'index.php');
require_once( FORUM_PATH . 'admin/api/member/api_member_login.php' );

$apiMember = new apiMemberLogin();
$apiMember->init();
$memberData = $apiMember->getMember();
$settings   =& ipsRegistry::fetchSettings();

if(!$memberData['member_id'] AND $_POST['ips_username'] AND $_POST['ips_password'])
{
$return = $apiMember->login($_POST['ips_username'], $_POST['ips_password']);

if($return[0])
{
	header('Location: '.$settings['base_url'].'act=idx');
	exit;
}
}

if($memberData['member_id']):
   header('Location: '.$settings['base_url'].'act=idx');
   exit;
else:
?>
<html>
<body>
<div id="login-form">
     <h1>авторизация</h1>
    <form method="post" action="">
    <input type="text" name="ips_username" id="ips_username" required value="Логин" onBlur="if(this.value=='')this.value='Логин'" onFocus="if(this.value=='Логин')this.value='' "> 
    <input type="password" name="ips_password" id="ips_password" required value="Пароль" onBlur="if(this.value=='')this.value='Пароль'" onFocus="if(this.value=='Пароль')this.value=''"> 
    <input type="submit" value="ВОЙТИ">
</form>
</div>
</body>
</html>
<?php
endif;
?>

 

FORUM_PATH - путь к папке форума

IPS_PUBLIC_SCRIPT - имя индексного файла ипб.

  • Upvote 1

Share this post


Link to post
Share on other sites

Супер, все работает как нужно теперь, огромное спасибо :rolleyes:

Share this post


Link to post
Share on other sites

Начал заполнять, вот что вылезло, переименовывать все таки как я сделал index.php нельзя, вылезли глюки странные, когда вернул - все норм.

Т.е. можно сделать чтобы на сайте в корне лежал только index.php наш, а форум в папке, но тогда будет урл у форума смотреться как сайт.ру/forum, а не просто сайт.ру как сейчас.Или как то можно победить это htaccess'ом например?

Share this post


Link to post
Share on other sites

О все я нашел, в штацессе

DirectoryIndex login.php index.php

Share this post


Link to post
Share on other sites

Приветствую всех! Можно ли сделать такую же форму входа на IPS 4 ?

Чтобы логин и пароль вводился сразу на главной странице, а после ввода появлялась панель пользователя, подскажите как это сделать?

Share this post


Link to post
Share on other sites

Можно. Обсуждалось в разделе IPS.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...