cvs: bugtracker /htdocs .htaccess /template/generic/user help.php

From: Date: Mon, 11 Aug 2008 22:00:36 +0000
Subject: cvs: bugtracker /htdocs .htaccess /template/generic/user help.php
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-2380@lists.php.net to get a copy of this message
bcarlyon Mon Aug 11 22:00:36 2008 UTC Modified files: /bugtracker/htdocs .htaccess /bugtracker/template/generic/user help.php Log: Recover password function added http://cvs.php.net/viewvc.cgi/bugtracker/htdocs/.htaccess?r1=1.7&r2=1.8&diff_format=u Index: bugtracker/htdocs/.htaccess diff -u bugtracker/htdocs/.htaccess:1.7 bugtracker/htdocs/.htaccess:1.8 --- bugtracker/htdocs/.htaccess:1.7 Mon Aug 11 19:49:49 2008 +++ bugtracker/htdocs/.htaccess Mon Aug 11 22:00:34 2008 @@ -18,8 +18,8 @@ #Other shuntage RewriteRule ^login(/)?$ /user/login/ [L,PT] RewriteRule ^user/verify/(.*)/(.*)?$ index/index.php?page=user/verify&email=$1&tehkey=$2 [L,PT] +RewriteRule ^(.*)/(.*)/(.*)/(.+)$ index/index.php?page=$1/$2&method=$3&resource=$4 [L,PT] RewriteRule ^(.*)/(.*)/(.+)$ index/index.php?page=$1/$2&method=$3 [L,PT] -#RewriteRule ^(.*)/(.*)/(.*)/(.+)$ index/index.php?page=$1/$2&method=$3&resouece=$4 [L,PT] #the big rewrite RewriteRule (.*)$ index/index.php?page=$1&%{QUERY_STRING} [L,PT] http://cvs.php.net/viewvc.cgi/bugtracker/template/generic/user/help.php?r1=1.1&r2=1.2&diff_format=u Index: bugtracker/template/generic/user/help.php diff -u bugtracker/template/generic/user/help.php:1.1 bugtracker/template/generic/user/help.php:1.2 --- bugtracker/template/generic/user/help.php:1.1 Mon Aug 11 19:49:50 2008 +++ bugtracker/template/generic/user/help.php Mon Aug 11 22:00:35 2008 @@ -34,7 +34,62 @@ $content = ''; +//$content .= $method . $resource; + switch($method) { + case('password'): + { + if ($resource) + { + $handle = loadvar('handle'); + $pass = loadvar('newpass'); + if ($pass) + { + //resource = md5(md5 handle . md5 email) + $query = 'SELECT handle,email FROM ' . USER_TABLE . ' WHERE handle = \'' . $handle . '\''; + $db->get_data($query); + if ($db->total_rows) + { + //we have data + $data = $db->fetch_row(); + $thiskey = md5( md5($data['handle']) . md5($data['email']) ); + + if ($thiskey == $resource) { + //update the password + $pass = md5($pass); + $query = 'UPDATE ' . USER_TABLE . ' SET password = \'' . $pass . '\' WHERE handle = \'' . $handle . '\''; + $db->get_data($query); + $template->meta_refresh('/'); + if ($db->affected_rows) { + $content = '<div id="success">Successfully updated your password</div>'; + } else { + trigger_error('Failed Update of your password, or no change needed', E_USER_ERROR); + } + } else { + $template->meta_refresh('/'); + trigger_error('Privacy Key mismatch', E_USER_ERROR); + } + } else { + $template->meta_refresh('/'); + trigger_error('Its all gone pete tong, we failed to update your password', E_USER_ERROR); + } + } else { + $resource = explode('-',$resource); + $content = ' +<form action="./." method="post" class="form"> +<div class="slim"> +<input type="hidden" name="resource" value="' . $resource[1] . '" /> +<input type="hidden" name="handle" value="' . $resource[0] . '" /> +<label for="newpass">New Password:</label> <input type="password" name="newpass" id="newpass" /> +<br /><br /> +<input type="submit" value="Change Password" /> +</div> +<br /><br /> +</form>'; + } + } + break; + } case('resend'): case('recover'): case('check'): @@ -128,7 +183,24 @@ } case('recover'): { - $content = 'Hmm not quite sure what to do with this one yet....<br /><br />'; + + //md5 handle + md5 email then md5 + $dest = isset($user_data['email']) ? $user_data['email'] : $temp_data['email']; + $subject = 'PHP Bugz: Password Recovery'; + + $message = 'You or someone else has requested a password recovery on your PHP Bugtracker Account'; + $message .= "\n\r\n\r"; + $message .= 'To reset your password, copy and paste the link into your browser or click it'; + $message .= "\n\r\n\r"; + $message .= 'http://' . $_SERVER['HTTP_HOST'] . '/user/help/password/' . $user_data['handle'] . '-'; + $message .= md5( md5($user_data['handle']) . md5($user_data['email']) ); + $message .= "\n\r\n\r"; + + if ($email->send_to_user($dest,$subject,$message)) { + $content = '<div id="success">An email with details as been sent, for resestting your password</div>'; + } else { + trigger_error('Failed to send you a password recovery email', E_USER_ERROR); + } break; } }

« previous php.webmaster (#2380) next »