hey guy this code for joomla reset passwor page in joomla using ajax out side joomla root like old password to your own password change. custom ajax page
setp->1
create your reset component paste in your rest view page
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#driver").click(function(event){
var currentpass=$('#oldpassword').val();
var newpass=$('#newpass').val();
var conformpass=$('#conformpass').val();
var userid=$('#userid').val();
var username=$('#username').val();
if(currentpass==''){
$('#oldpassword').addClass('invalid');
return false;
}else if(newpass==''){
$('#oldpassword').removeClass('invalid');
$('#newpass').addClass('invalid');
return false;
}
else if(conformpass==''){
$('#conformpass').addClass('invalid');
return false;
}
else{
$('#oldpassword').removeClass('invalid');
$('#newpass').removeClass('invalid');
$('#conformpass').removeClass('invalid');
}
$('#loading').addClass('resetloader');
$.post(
"http://joomla/ajaxresetpassword.php",
{ oldpass: currentpass,newpass:newpass,confirmpass:conformpass,userid:userid,username:username,},
function(data) {
$('#loading').removeClass('resetloader');
if(data=='passwrod has been changed'){
$('#oldpassword').val('');
$('#newpass').val('');
$('#conformpass').val('');
}
alert(data);
$('#stage').html(data);
}
);
});
});
</script>
<div id="tab2" class="tab_content">
<form action="" method="get" name="" >
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr class="tr-spac">
<td class="left-td gray-color">Username</td>
<td class="right-td"><?php echo $user->username;?></td>
<input type="hidden" value="<?php echo $this->user_state->virtuemart_user_id;?>" name="userid" id="userid" />
<input type="hidden" value="<?php echo $user->username;?>" name="username" id="username" />
</tr>
<tr class="tr-spac">
<td colspan="2" class="left-td gray-color"><a href="#">Current Password</a></td>
<td class="right-td"><input type="password" name="oldpassword" id="oldpassword" class="inputbox" /></td>
</tr>
<tr class="tr-spac">
<td colspan="2" class="left-td gray-color"><a href="#">New Password</a></td>
<td class="right-td"><input type="password" name="newpass" id="newpass" class="inputbox" /></td>
</tr>
<tr class="tr-spac" style="border-bottom:none;">
<td colspan="2" class="left-td gray-color" style="padding-bottom:16px;"><a href="#">Confirm Password</a></td>
<td class="right-td"><input type="password" name="conformpass" id="conformpass" class="inputbox" /><div id="loading"> </div></td>
</tr>
<tr >
<td colspan="2">
<div class="editbg" style="float:right;">
<a href="#" id="driver" >Save</a>
</td>
</tr>
</table>
</form>
</div>
-------------------------------------------------------------------------------------------------------
create joomla/ajaxresetpassword.php
<?php
//access joomla db and other liabray class
################################################################################
#######
define('_JEXEC',1);
define('DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ].'/joomla' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$mainframe =& JFactory::getApplication('site');
$db =& JFactory::getDBO();
################################################################################
#########
//get user post request
########################################################
$currentpass =JRequest::getVar('oldpass'); #
#
$newpassword =JRequest::getVar('newpass'); #
$confirmpassword =JRequest::getVar('confirmpass');#
$ExistUserid =JRequest::getVar('userid'); #
$ExistUsername =JRequest::getVar('username'); #
##############################################
//store temp session user id and username for check exist
###############################################
$check_user_username = $ExistUsername; #
$check_user_id = $ExistUserid; #
#
###############################################
//retrive user current password from database for checking
#########################################################################
#####################################
$TablePrefix=$db->getPrefix();
$TableName=$TablePrefix.'users';
$sqlquery="select password from $TableName where username='$check_user_username' and id=$check_user_id";
$db->setQuery($sqlquery);
$result=$db->loadObject();
checkpassword($currentpass,$newpassword,$confirmpassword,$result->password,$check_user_id,
$TableName,$db);
//785f9b9a8385a739b05cc92105dda7ca:JtjrzbzPQNQAYWKVvORRawlV0TwaGWzm
function checkpassword(&$currentpass,&$newpass,&$confimpass,&$retrivepass,&$userid,&$TableName,&$db){
$makepass_array = explode(':',$retrivepass);
$joomla_pass = $makepass_array[0];
$joomla_salt = $makepass_array[1];
$comparepass=md5($currentpass.$joomla_salt);
if($joomla_pass == $comparepass)
{
if($newpass==$confimpass)
{
$gnrtnewpas=md5($confimpass.$joomla_salt);
$gnrtnewpas = $gnrtnewpas.':'.$joomla_salt;
$updtquery="UPDATE $TableName SET password ='$gnrtnewpas' where id=$userid";
$db->setQuery($updtquery);
$db->query();
if ($db->getErrorNum())
{
echo $db->getErrorMsg();
return false;
}
echo "passwrod has been changed";
return true;
}else{
echo "Confirm password dose not match";
return false;
}
}else
{
echo "incorrect Current password ";
return false;
}
}
setp->1
create your reset component paste in your rest view page
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#driver").click(function(event){
var currentpass=$('#oldpassword').val();
var newpass=$('#newpass').val();
var conformpass=$('#conformpass').val();
var userid=$('#userid').val();
var username=$('#username').val();
if(currentpass==''){
$('#oldpassword').addClass('invalid');
return false;
}else if(newpass==''){
$('#oldpassword').removeClass('invalid');
$('#newpass').addClass('invalid');
return false;
}
else if(conformpass==''){
$('#conformpass').addClass('invalid');
return false;
}
else{
$('#oldpassword').removeClass('invalid');
$('#newpass').removeClass('invalid');
$('#conformpass').removeClass('invalid');
}
$('#loading').addClass('resetloader');
$.post(
"http://joomla/ajaxresetpassword.php",
{ oldpass: currentpass,newpass:newpass,confirmpass:conformpass,userid:userid,username:username,},
function(data) {
$('#loading').removeClass('resetloader');
if(data=='passwrod has been changed'){
$('#oldpassword').val('');
$('#newpass').val('');
$('#conformpass').val('');
}
alert(data);
$('#stage').html(data);
}
);
});
});
</script>
<div id="tab2" class="tab_content">
<form action="" method="get" name="" >
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr class="tr-spac">
<td class="left-td gray-color">Username</td>
<td class="right-td"><?php echo $user->username;?></td>
<input type="hidden" value="<?php echo $this->user_state->virtuemart_user_id;?>" name="userid" id="userid" />
<input type="hidden" value="<?php echo $user->username;?>" name="username" id="username" />
</tr>
<tr class="tr-spac">
<td colspan="2" class="left-td gray-color"><a href="#">Current Password</a></td>
<td class="right-td"><input type="password" name="oldpassword" id="oldpassword" class="inputbox" /></td>
</tr>
<tr class="tr-spac">
<td colspan="2" class="left-td gray-color"><a href="#">New Password</a></td>
<td class="right-td"><input type="password" name="newpass" id="newpass" class="inputbox" /></td>
</tr>
<tr class="tr-spac" style="border-bottom:none;">
<td colspan="2" class="left-td gray-color" style="padding-bottom:16px;"><a href="#">Confirm Password</a></td>
<td class="right-td"><input type="password" name="conformpass" id="conformpass" class="inputbox" /><div id="loading"> </div></td>
</tr>
<tr >
<td colspan="2">
<div class="editbg" style="float:right;">
<a href="#" id="driver" >Save</a>
</td>
</tr>
</table>
</form>
</div>
-------------------------------------------------------------------------------------------------------
create joomla/ajaxresetpassword.php
<?php
//access joomla db and other liabray class
################################################################################
#######
define('_JEXEC',1);
define('DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ].'/joomla' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$mainframe =& JFactory::getApplication('site');
$db =& JFactory::getDBO();
################################################################################
#########
//get user post request
########################################################
$currentpass =JRequest::getVar('oldpass'); #
#
$newpassword =JRequest::getVar('newpass'); #
$confirmpassword =JRequest::getVar('confirmpass');#
$ExistUserid =JRequest::getVar('userid'); #
$ExistUsername =JRequest::getVar('username'); #
##############################################
//store temp session user id and username for check exist
###############################################
$check_user_username = $ExistUsername; #
$check_user_id = $ExistUserid; #
#
###############################################
//retrive user current password from database for checking
#########################################################################
#####################################
$TablePrefix=$db->getPrefix();
$TableName=$TablePrefix.'users';
$sqlquery="select password from $TableName where username='$check_user_username' and id=$check_user_id";
$db->setQuery($sqlquery);
$result=$db->loadObject();
checkpassword($currentpass,$newpassword,$confirmpassword,$result->password,$check_user_id,
$TableName,$db);
//785f9b9a8385a739b05cc92105dda7ca:JtjrzbzPQNQAYWKVvORRawlV0TwaGWzm
function checkpassword(&$currentpass,&$newpass,&$confimpass,&$retrivepass,&$userid,&$TableName,&$db){
$makepass_array = explode(':',$retrivepass);
$joomla_pass = $makepass_array[0];
$joomla_salt = $makepass_array[1];
$comparepass=md5($currentpass.$joomla_salt);
if($joomla_pass == $comparepass)
{
if($newpass==$confimpass)
{
$gnrtnewpas=md5($confimpass.$joomla_salt);
$gnrtnewpas = $gnrtnewpas.':'.$joomla_salt;
$updtquery="UPDATE $TableName SET password ='$gnrtnewpas' where id=$userid";
$db->setQuery($updtquery);
$db->query();
if ($db->getErrorNum())
{
echo $db->getErrorMsg();
return false;
}
echo "passwrod has been changed";
return true;
}else{
echo "Confirm password dose not match";
return false;
}
}else
{
echo "incorrect Current password ";
return false;
}
}
No comments:
Post a Comment