cvs: bugtracker /htdocs .htaccess /template/generic/user help.php
| From: | Barry Carlyon | 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;
}
}