Pagina 1 van 1

mail wijzige -> account niet inactief

Geplaatst: 25 apr 2005, 18:22
door Danko
misschien beetje rare titel maar ik wist geen beteren.

niet alle gebruikers geven een juist email adres op, daarom heb ik de gebruiker actvering aangezet zodat ze hun account moeten activeren via de mail. als ze nu (later) hun email adres wijzigen wordt het account inactief. pas na op de activeringslink (uit de mail) geklikt te hebben wordt het account weet actief.
maaaar, als een gebruiker nu perongeluk een verkeerd email-adres intypt ontvangt hij/zij dat mailtje dus nooit en zal het account niet meer door de gebruiker geactiveerd kunnen worden.

ik zoek dus een mod die ervoor zorgt dat het account actief blijft na het wijzigen van het email-adres, maar dat het email-adres pas daadwerkelijk wordt gewijzigd als er op de link uit het mailtje wordt geklikt. als de gebuiker nou een verkeerd/fout email-adres heeft ingetypt ontvangt deze geen wijzigings-mail en wordt het adres dus ook niet veranderd.

alvast heel erg bedankt!
greetz,
Danko

Geplaatst: 26 apr 2005, 14:25
door Luuk
Klinkt wel leuk, maar ik ken geen bestaande mod hiervoor. In feite zou het opgegeven emailadres eerst in een ander veld in de database moeten worden opgeslagen en pas bij activering van 'bewaar' veld naar het echte veld.

Geplaatst: 26 apr 2005, 14:52
door Danko
Luuk schreef:Klinkt wel leuk, maar ik ken geen bestaande mod hiervoor. In feite zou het opgegeven emailadres eerst in een ander veld in de database moeten worden opgeslagen en pas bij activering van 'bewaar' veld naar het echte veld.
ik kende ook geen mod daarom in dit forum.
je zegt het precies goed. als een user dan dus niet op de link klikt wordt er ook niets gewijzigd. zo weet je zeker dat het email adres bestaat en bij een foutje is het geen probleem. dan wijzige je je adres gewoon opnieuw en wordt deze in het bewaar-veld overschreven. en er wordt weer een mailje met bevestigingscode verstuurd.

Geplaatst: 26 apr 2005, 21:12
door Luuk
Probeer eens:

Code: Selecteer alles

# 
#-----[ SQL ]------------------------------------------ 
# Please change phpbb_ with your table prefix
#
ALTER TABLE phpbb_users ADD user_act_email VARCHAR(255) ;
# 
#-----[ OPEN ]------------------------------------------ 
# 
includes/usercp_activate.php

# 
#-----[ FIND ]------------------------------------------ 
# 
$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey

# 
#-----[ IN-LINE, FIND ]------------------------------------------ 
# 
user_actkey

# 
#-----[ IN-LINE, AFTER, ADD ]------------------------------------------ 
# 
, user_act_email

# 
#-----[ FIND ]------------------------------------------ 
# 
		$sql = "UPDATE " . USERS_TABLE . "
			SET user_active = 1, user_actkey = ''" . $sql_update_pass . " 
			WHERE user_id = " . $row['user_id'];

# 
#-----[ IN-LINE, FIND ]------------------------------------------ 
# 
user_actkey = ''" . $sql_update_pass . "

# 
#-----[ IN-LINE, AFTER, ADD ]------------------------------------------ 
# 
, user_email = user_act_email, user_act_email = ''

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

# 
#-----[ FIND ]------------------------------------------ 
# 
$user_active = 0;

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
$user_email_field = 'user_act_email';
	
# 
#-----[ FIND ]------------------------------------------ 
# 
$user_active = 1;

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
$user_email_field = 'user_email';

# 
#-----[ FIND ]------------------------------------------ 
# 
			$sql = "UPDATE " . USERS_TABLE . "
				SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "', user_order = $order" . $avatar_sql . "
				WHERE user_id = $user_id";

# 
#-----[ IN-LINE, FIND ]------------------------------------------ 
# 
user_email

# 
#-----[ IN-LINE, REPLACE WITH ]------------------------------------------ 
# 
'" . $user_email_field . "'

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM

Geplaatst: 26 apr 2005, 21:55
door Danko
heb het geprobeerd, ik kan nu me profiel wijzige zonder dat me account innactief wordt. maar het email adres wordt direct doorgevoerd en ik krijg ook geen activerings mail...

Geplaatst: 26 apr 2005, 21:57
door Luuk
Je moet wel de activering aanzetten, op user.

Geplaatst: 26 apr 2005, 22:00
door Danko
Luuk schreef:Je moet wel de activering aanzetten, op user.
dat heb ik, zou het kunne zijn da de admin da nie hoeft te activeren? ff me test-user proberen :)

Geplaatst: 26 apr 2005, 22:02
door Luuk
Admin hoeft zich inderdaad niet te activeren :wink:

Geplaatst: 26 apr 2005, 22:14
door Danko
ik wijzig m'n email adres
Je profiel is bijgewerkt, al heb je wel belangrijke informatie aangepast waardoor je account nu tijdelijk uitgeschakeld is. Controleer je Email om te kijken hoe je je account weer kun activeren of, als dit door de beheerder gedaan word, wacht dan tot de beheerder dit gedaan heeft.

vervolgens wordt ik uitgelogd. het account wordt dus toch innactief.. die moest juist actief blijven en pas het email adres wijzigen na een klik op die link uit de mail.
aangezien ik had gezien dat je account alleen inactief wordt gezet als jij je email-adres wijzigd heb ik het updaten van user_active naar 0 verwijderd, zo blijft de user actief maar is het email-adres nog niet gewijzigd.

hopelijk krijgt de user nu nog wel dat activerings mailtje.. ik ga ff proberen.

Geplaatst: 26 apr 2005, 22:18
door Luuk
Ahzo, ik dacht, je wijzigt je emailadres -> account inactief. Bij activatie wordt ook het emailadres aangepast maar dat eerste moet dus niet. Oftewel, je account moet nooit inactief worden bij iets wijzigen? Of alleen bij het emailadres?
Want dan zou je $user_active = 0; moeten wijzigen in 1.

Geplaatst: 26 apr 2005, 22:23
door Danko
Luuk schreef:Ahzo, ik dacht, je wijzigt je emailadres -> account inactief. Bij activatie wordt ook het emailadres aangepast maar dat eerste moet dus niet. Oftewel, je account moet nooit inactief worden bij iets wijzigen? Of alleen bij het emailadres?
Want dan zou je $user_active = 0; moeten wijzigen in 1.
inderdaad, account nooit inactief maar de data pas aanpassen als is gecontrolleerd dat het email adres bestaat.

ik heb het nu zo aangepast dat je ingelogd blijft en een mail krijgt, pas na het klikke op deze mail wordt je adres aangepast.

ik zal zo posten wat ik heb gewijzigd

Geplaatst: 26 apr 2005, 22:56
door Danko
ok het werkt nu, wat heb ik gedaan na jou wijzigingen?

open
includes/usercp_register.php
zoek
$user_active = 0;
vervang door
$user_active = 1;

een paar regels verderop staat
if ( $userdata['session_logged_in'] )
{
session_end($userdata['session_id'], $userdata['user_id']);
}
verwijder dit, dan logt de user niet automatisch meer uit.

zoek
if ( !$user_active )
vervang door
if ( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN )


verder natuurlijk de language files aangepast. 1 probleempje nog.
het activeren gaat via dezelfde link als het activeren van je acount na registratie. je krijgt dus na het wijzigen van je email adres de melding dat je account weer actief is..