Sida 1 av 2

Hjälp med (Skicka nytt lösenord) funktionen

Postat: 2006-04-02 17:29
av WickeD
Hej!

Jag ser att på min sida när man klickar på "Jag har glömt mitt lösenord" så fyller man i de två rader som behövs, och sedan så får man ett mail skickat till sig med en länk som man ska klicka på för att aktivera det nya lösenordet.
Men problemet jag behöver hjälp med är när man klickar på den länken så blir det bara en vit sida, man ska ju komma till någon sida som säger att man har nu aktiverat det nya lösenordet, men dit kommer jag inte.
Vad kan det vara för fel?

Behöver verkligen hjälp med detta.

//Micke

Postat: 2006-04-03 11:46
av Holger
Kontrollera att länken leder till rätt fil med rätt sökväg.

Postat: 2006-04-03 14:52
av WickeD
Holger skrev:Kontrollera att länken leder till rätt fil med rätt sökväg.
Hur kollar jag det?
Till vilken fil ska den gå till?

Postat: 2006-04-03 14:54
av Holger
Låt systemet skicka ett nytt lösenord ...
För en testanvändare!

Postat: 2006-04-03 14:55
av WickeD
Det har jag gjort nu.

Denna länk fick jag från Bikersite då: http://www.bikersite.se/profile.php?mod ... 2a39d23475

Postat: 2006-04-05 15:10
av WickeD
Någon ide på vad som kan vara fel?

Postat: 2006-04-05 20:29
av dallas
Hej.

Har ingen direkt ide vad som är fel, men av länken kan man ju läsa ut att det är först profile.php somn "aktiveras"

Kod: Markera allt

else if ( $mode == 'activate' )
	{
		include($phpbb_root_path . 'includes/usercp_activate.'.$phpEx);
		exit;
även då filen includes/usercp_activate

Kod: Markera allt

else
		{
			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			$message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; 
			message_die(GENERAL_MESSAGE, $message);
		}
där

Kod: Markera allt

$lang['Password_activated']
är texten du skall ha fram från lang_main.php

Kod: Markera allt

$lang['Password_activated'] = 'Ditt konto har återaktiverats. För att logga in använd lösenordet som du hittar i emailet du fick';
fast det blev du förmodligen inte klokare av :?:

dallas

Postat: 2006-04-05 20:53
av WickeD
Det hjälpte en hel del =)

TACK dallas!!

Jag bytte ut usercp_activate.php och då fungerar det, men problemet är ju att jag kan ju inte fortsätta använda den jag la in, för den innehåller inte lika många rader.

Så jag undrar om det är någon som kan kolla på min orginal fil och se om dom ser något fel i den?

Här har ni koden som det det är något fel inuti:

Kod: Markera allt

<?php
/***************************************************************************
 *                            usercp_activate.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: usercp_activate.php,v 1.6.2.7 2003/05/03 23:24:02 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
	die('Hacking attempt');
	exit;
}

$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey 
	FROM " . USERS_TABLE . "
	WHERE user_id = " . intval($HTTP_GET_VARS[POST_USERS_URL]);
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	if ( $row['user_active'] && trim($row['user_actkey']) == '' )
	{
		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
		);

		message_die(GENERAL_MESSAGE, $lang['Already_activated']);
	}
	else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
      if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '') 
      { 
         if (!$userdata['session_logged_in']) 
         { 
            redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key']))); 
         } 
         else if ($userdata['user_level'] != ADMIN) 
         { 
            message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); 
         } 
      }
	{
		$sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = '', user_passwd_change='".(($row['user_newpasswd']==$row['user_password']) ? time() : '0')."'" : '';

		$sql = "UPDATE " . USERS_TABLE . "
			SET user_active = 1, user_actkey = ''" . $sql_update_pass . " 
			WHERE user_id = " . $row['user_id']; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update);
		}
        $sql = "UPDATE " . USERS_TABLE . "
				SET ct_pwreset = '0', ct_unsucclogin = '0'
				WHERE user_id = " . $row['user_id'];
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
		}

		if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' )
		{
			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$emailer->from($board_config['board_email']);
			$emailer->replyto($board_config['board_email']);

			$emailer->use_template('admin_welcome_activated', $row['user_lang']);
			$emailer->email_address($row['user_email']);
			$emailer->set_subject($lang['Account_activated_subject']);

			$emailer->assign_vars(array(
				'SITENAME' => $board_config['sitename'], 
				'USERNAME' => $row['username'],
				'PASSWORD' => $password_confirm,
				'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
			);
			$emailer->send();
			$emailer->reset();

			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			message_die(GENERAL_MESSAGE, $lang['Account_active_admin']);
		}
		else
		{
			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			$message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; 
			message_die(GENERAL_MESSAGE, $message);
		}
	}
	else
	{
		message_die(GENERAL_MESSAGE, $lang['Wrong_activation']);
	}
}
else
{
	message_die(GENERAL_MESSAGE, $lang['No_such_user']);
}

?>

Postat: 2006-04-05 22:26
av dallas
såg att din fil är version:
v 1.6.2.7 2003/05/03

den jag har är:
v 1.6.2.8 2005/07/19
Jag bytte ut usercp_activate.php och då fungerar det, men problemet är ju att jag kan ju inte fortsätta använda den jag la in, för den innehåller inte lika många rader.
har du MODat den eftersom den innehåller fler rader?
eller varför har den fler rader?
kanske har du gjort ngt fel?

dallas

Postat: 2006-04-06 04:58
av WickeD
Jag har inget minne av att jag ska ha moddat den filen.
Det skulle ha varit när jag har uppdaterat hela forumet då.

Detta är min orginal fil:

Kod: Markera allt

<?php
/***************************************************************************
 *                            usercp_activate.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: usercp_activate.php,v 1.6.2.7 2003/05/03 23:24:02 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
	die('Hacking attempt');
	exit;
}

$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey 
	FROM " . USERS_TABLE . "
	WHERE user_id = " . intval($HTTP_GET_VARS[POST_USERS_URL]);
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	if ( $row['user_active'] && trim($row['user_actkey']) == '' )
	{
		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
		);

		message_die(GENERAL_MESSAGE, $lang['Already_activated']);
	}
	else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
      if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '') 
      { 
         if (!$userdata['session_logged_in']) 
         { 
            redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key']))); 
         } 
         else if ($userdata['user_level'] != ADMIN) 
         { 
            message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); 
         } 
      }
	{
		$sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = '', user_passwd_change='".(($row['user_newpasswd']==$row['user_password']) ? time() : '0')."'" : '';

		$sql = "UPDATE " . USERS_TABLE . "
			SET user_active = 1, user_actkey = ''" . $sql_update_pass . " 
			WHERE user_id = " . $row['user_id']; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update);
		}
        $sql = "UPDATE " . USERS_TABLE . "
				SET ct_pwreset = '0', ct_unsucclogin = '0'
				WHERE user_id = " . $row['user_id'];
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
		}

		if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' )
		{
			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$emailer->from($board_config['board_email']);
			$emailer->replyto($board_config['board_email']);

			$emailer->use_template('admin_welcome_activated', $row['user_lang']);
			$emailer->email_address($row['user_email']);
			$emailer->set_subject($lang['Account_activated_subject']);

			$emailer->assign_vars(array(
				'SITENAME' => $board_config['sitename'], 
				'USERNAME' => $row['username'],
				'PASSWORD' => $password_confirm,
				'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
			);
			$emailer->send();
			$emailer->reset();

			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			message_die(GENERAL_MESSAGE, $lang['Account_active_admin']);
		}
		else
		{
			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			$message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; 
			message_die(GENERAL_MESSAGE, $message);
		}
	}
	else
	{
		message_die(GENERAL_MESSAGE, $lang['Wrong_activation']);
	}
}
else
{
	message_die(GENERAL_MESSAGE, $lang['No_such_user']);
}

?>

Detta är filen från Plus portalen jag laddade hem för att prova om det va något fel på min fil:

Kod: Markera allt

<?php
/***************************************************************************
 *                            usercp_activate.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: usercp_activate.php,v 1.6.2.7 2003/05/03 23:24:02 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
	die('Hacking attempt');
	exit;
}

$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey 
	FROM " . USERS_TABLE . "
	WHERE user_id = " . intval($HTTP_GET_VARS[POST_USERS_URL]);
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	if ( $row['user_active'] && trim($row['user_actkey']) == '' )
	{
		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
		);

		message_die(GENERAL_MESSAGE, $lang['Already_activated']);
	}
	else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
	{
		if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '')
		{
			if (!$userdata['session_logged_in'])
			{
				redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key'])));
			}
			else if ($userdata['user_level'] != ADMIN)
			{
				message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
			}
		}
		$sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = '', user_passwd_change='".(($row['user_newpasswd']==$row['user_password']) ? time() : '0')."'" : '';

		$sql = "UPDATE " . USERS_TABLE . "
			SET user_active = 1, user_actkey = ''" . $sql_update_pass . " 
			WHERE user_id = " . $row['user_id']; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update);
		}

		if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' )
		{
			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$emailer->from($board_config['board_email']);
			$emailer->replyto($board_config['board_email']);

			$emailer->use_template('admin_welcome_activated', $row['user_lang']);
			$emailer->email_address($row['user_email']);
			$emailer->set_subject($lang['Account_activated_subject']);

			$emailer->assign_vars(array(
				'SITENAME' => $board_config['sitename'], 
				'USERNAME' => $row['username'],
				'PASSWORD' => $password_confirm,
				'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
			);
			$emailer->send();
			$emailer->reset();

			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			message_die(GENERAL_MESSAGE, $lang['Account_active_admin']);
		}
		else
		{
			$template->assign_vars(array(
				'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
			);

			$message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; 
			message_die(GENERAL_MESSAGE, $message);
		}
	}
	else
	{
		message_die(GENERAL_MESSAGE, $lang['Wrong_activation']);
	}
}
else
{
	message_die(GENERAL_MESSAGE, $lang['No_such_user']);
}

?>
Någon som ser vad det är för skillnad mellan dessa filer?

Postat: 2006-04-06 08:26
av Holger
(@dallas: WickeD kör Plus)

Postat: 2006-04-06 11:46
av WickeD
Jo det gör jag, men det är denna fil det är fel på: usercp_activate.php

Så jag behöver hjälp att jämföra de två filer jag har postat här ovan för att komma på vad som är fel i den filen.

Postat: 2006-04-06 15:40
av dallas
då rekomenderar jag
http://www.prestosoft.com/ps.asp?page=edp_examdiffpro
att jämföra filer

nu körde jag dina två filer i det programmet och det är tre skillnader:

EFTER rad 48 i det du kallar "Detta är min orginalfil"

Kod: Markera allt

else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != '')) 
där fattas jämfört med den andra filen

INNAN rad 61 i det du kallar "Detta är min orginalfil"

Kod: Markera allt

$sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = '', user_passwd_change='".(($row['user_newpasswd']==$row['user_password']) ? time() : '0')."'" : ''; 
där finns som inte finns i den andra filen

EFTER rad 68 i det du kallar "Detta är min orginalfil"

Kod: Markera allt

message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update); 
finns följande i orginalfilen men inte i den andra filen

Kod: Markera allt

} 
        $sql = "UPDATE " . USERS_TABLE . " 
            SET ct_pwreset = '0', ct_unsucclogin = '0' 
            WHERE user_id = " . $row['user_id']; 
      if ( !$db->sql_query($sql) ) 
      { 
         message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);

dallas

(hoppas jag skrev rätt)

Postat: 2006-04-06 15:49
av Holger
ct_ tillhör CrackerTracker ...

Postat: 2006-04-06 16:41
av WickeD
Tack dallas!

Men en fråga då till Holger, eller om du dallas kan svara på det!

Kan jag lägga in den fil som jag laddade hem utan att ställa till med något?

Blir det ett säkerhetshål där då?

Tänkte eftersom det har att göra med "CT"

//Lill-Micke