Redirect MOD

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
cloud7
Mitglied
Beiträge: 10
Registriert: 13.06.2003 11:07

Redirect MOD

Beitrag von cloud7 »

Hi All!

Wenn man bei PHPBB nach dem registrieren, einloggen usw. den parameter $redirect mitgibt, wird der entsprechende pfad innerhalb des PHBB Forums angewählt... Ich suche nun eine erweiterte möglichkeit, nämlich dass man damit innherhalb der ganzen seite redirecten kann (und PHPBB dann auch keine probleme bekommt *g*)

Hintergrund ist der, dass ich so auf einer beliebigen Seite ein "Registrier Formular" machen könnte, da ich aus bequemheitsgründen will, dass der user vor einem "member bereich" nach dem einloggen gleich wieder auf der ursprünglichen seite ist und nicht im forum ladet...

hoffentlich kann mir jemand helfen, da ich sonst nebst PHPBB noch ein registrier script schreiben müsste... :-(
Benutzeravatar
andreasOymann
Ehemaliges Teammitglied
Beiträge: 2392
Registriert: 10.06.2003 16:29
Wohnort: Hamminkeln
Kontaktdaten:

Beitrag von andreasOymann »

Vielleicht sowas?

Code: Alles auswählen

##############################################################
## MOD Title: Smart Log In Redirect
## MOD Author: Smartor < smartor_xp@hotmail.com > (Hoang Ngoc Tu) http://smartor.is-root.com
## MOD Description:	This MOD will redirect user to the page when he
##					clicked "log in.out" after logging in successfully
##					It can bring much more convenience to your surfing experience :)
## MOD Version: 1.0.1
##
## Installation Level: easy
## Installation Time: 1 Minutes
## Files To Edit: 2
##		includes/page_header.php
##		includes/functions.php
##
## Included Files: N/A
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##############################################################
## Author Notes:
##
##############################################################
##
## Revision History:
##
## v1.0.1
##	- Did not redirect if user on profile.php, login.php
## v1.0.0
##	- Initial Release and Final.
##
#################################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]--------------------------------------------
#
includes/page_header.php

#
#-----[ FIND ]--------------------------------------------
#
if ( $userdata['session_logged_in'] )
{
	$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
}
else
{
	$u_login_logout = 'login.'.$phpEx;
	$l_login_logout = $lang['Login'];
}


#
#-----[ REPLACE WITH ]------------------------------------
#
if ( $userdata['session_logged_in'] )
{
	$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
}
else
{
	$smart_redirect = strrchr($HTTP_SERVER_VARS['PHP_SELF'], '/');
	$smart_redirect = substr($smart_redirect, 1, strlen($smart_redirect));

	if( ($smart_redirect == ('profile.'.$phpEx)) or ($smart_redirect == ('login.'.$phpEx)) )
	{
		$smart_redirect = '';
	}

	if( isset($HTTP_GET_VARS) and !empty($smart_redirect) )
	{		
		$smart_get_keys = array_keys($HTTP_GET_VARS);

		for ($i = 0; $i < count($HTTP_GET_VARS); $i++)
		{
			if ($smart_get_keys[$i] != 'sid')
			{
				$smart_redirect .= '&' . $smart_get_keys[$i] . '=' . $HTTP_GET_VARS[$smart_get_keys[$i]];
			}
		}
	}

	$u_login_logout = 'login.' . $phpEx;
	$u_login_logout .= (!empty($smart_redirect)) ? '?redirect=' . $smart_redirect : '';
	$l_login_logout = $lang['Login'];
}


# This step is only needed for phpBB 2.0.4
# It's just trying to fix a bug of phpBB 2.0.4, which may affect this mod
#-----[ OPEN ]----------------------------------------
#
includes/funtions.php

#
#-----[ FIND ]----------------------------------------
#
function redirect($url)
{
	global $db, $board_config;

	if (!empty($db))
	{
		$db->sql_close();
	}

	$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
	$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
	$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
	$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
	$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
	$url = preg_replace('#^\/?(.*?)\/?$#', '/\1', trim($url));


#
#-----[ AFTER, ADD ]----------------------------------
#
	$url = str_replace('&', '&', $url);

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
[/quote]
Kein Support per PN / Mail / ICQ / MSN ! Dafür gibt´s dieses Forum...
cloud7
Mitglied
Beiträge: 10
Registriert: 13.06.2003 11:07

Beitrag von cloud7 »

hmm, gillt das nur für den login dialog oder auch beim registrieren?
Ausserdem bräucht ich noch nen hack um die passwortbestätigung auszuschalten, also dass man zum registieren nur benutername, email und einmal(!) ein passwort eingeben muss...

Hat das jemand?
Benutzeravatar
andreasOymann
Ehemaliges Teammitglied
Beiträge: 2392
Registriert: 10.06.2003 16:29
Wohnort: Hamminkeln
Kontaktdaten:

Beitrag von andreasOymann »

Das obige gilt nur beim Login!

Schau dir mal den Bereich in der /includes/usercp_register.php an:

Code: Alles auswählen

if ( isset($HTTP_POST_VARS['submit']) )
{
        include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);

        $passwd_sql = '';
        if ( $mode == 'editprofile' )
        {
                if ( $user_id != $userdata['user_id'] )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
                }
        }
        else if ( $mode == 'register' )
        {
                if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
                }
        }

        $passwd_sql = '';
        if ( !empty($new_password) && !empty($password_confirm) )
        {
                if ( $new_password != $password_confirm )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];
                }
                else if ( strlen($new_password) > 32 )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_long'];
                }
                else
                {
                        if ( $mode == 'editprofile' )
                        {
                                $sql = "SELECT user_password
                                        FROM " . USERS_TABLE . "
                                        WHERE user_id = $user_id";
                                if ( !($result = $db->sql_query($sql)) )
                                {
                                        message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql);
                                }

                                $row = $db->sql_fetchrow($result);

                                if ( $row['user_password'] != md5($cur_password) )
                                {
                                        $error = TRUE;
                                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Current_password_mismatch'];
                                }
                        }

                        if ( !$error )
                        {
                                $new_password = md5($new_password);
                                $passwd_sql = "user_password = '$new_password', ";
                        }
                }
        }
        else if ( ( empty($new_password) && !empty($password_confirm) ) || ( !empty($new_password) && empty($password_confirm) ) )
        {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];
        }
ersetze das mal mit dem:

Code: Alles auswählen

if ( isset($HTTP_POST_VARS['submit']) )
{
        include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);

        $passwd_sql = '';
        if ( $mode == 'editprofile' )
        {
                if ( $user_id != $userdata['user_id'] )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
                }
        }
        else if ( $mode == 'register' )
        {
                if ( empty($username) || empty($new_password) || empty($email) )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
                }
        }

        $passwd_sql = '';
        if ( !empty($new_password))
        {
                if ( strlen($new_password) > 32 )
                {
                        $error = TRUE;
                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_long'];
                }
                else
                {
                        if ( $mode == 'editprofile' )
                        {
                                $sql = "SELECT user_password
                                        FROM " . USERS_TABLE . "
                                        WHERE user_id = $user_id";
                                if ( !($result = $db->sql_query($sql)) )
                                {
                                        message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql);
                                }

                                $row = $db->sql_fetchrow($result);

                                if ( $row['user_password'] != md5($cur_password) )
                                {
                                        $error = TRUE;
                                        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Current_password_mismatch'];
                                }
                        }

                        if ( !$error )
                        {
                                $new_password = md5($new_password);
                                $passwd_sql = "user_password = '$new_password', ";
                        }
                }
        }
Kein Support per PN / Mail / ICQ / MSN ! Dafür gibt´s dieses Forum...
Benutzeravatar
andreasOymann
Ehemaliges Teammitglied
Beiträge: 2392
Registriert: 10.06.2003 16:29
Wohnort: Hamminkeln
Kontaktdaten:

Beitrag von andreasOymann »

und in der gleichen Datei musst du hier:

Code: Alles auswählen

                        if( $coppa )
                        {
                                $emailer->assign_vars(array(
                                        'SITENAME' => $board_config['sitename'],
                                        'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),
                                        'USERNAME' => $username,
                                        'PASSWORD' => $password_confirm,
                                        'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),

                                        'FAX_INFO' => $board_config['coppa_fax'],
                                        'MAIL_INFO' => $board_config['coppa_mail'],
                                        'EMAIL_ADDRESS' => $email,
                                        'ICQ' => $icq,
                                        'AIM' => $aim,
                                        'YIM' => $yim,
                                        'MSN' => $msn,
                                        'WEB_SITE' => $website,
                                        'FROM' => $location,
                                        'OCC' => $occupation,
                                        'INTERESTS' => $interests,
                                        'SITENAME' => $board_config['sitename']));
                        }
                        else
                        {
                                $emailer->assign_vars(array(
                                        'SITENAME' => $board_config['sitename'],
                                        'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),
                                        'USERNAME' => $username,
                                        'PASSWORD' => $password_confirm,
                                        'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),

                                        'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)
                                );
                        }
auch noch was ändern: ersetze

Code: Alles auswählen

'PASSWORD' => $password_confirm
mit

Code: Alles auswählen

'PASSWORD' => $new_password
Kein Support per PN / Mail / ICQ / MSN ! Dafür gibt´s dieses Forum...
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“