Efectivamente habia un error de sintaxis tan solo era cerra la funcion sha1() , faltaba un parentesis. me lo comi
haber si pasas estos nombres de variable (en negrita) en la url
$mail->MsgHTML('<a href="http://localhost/volcanicos/views/frm_mod_cont.php?&
time='.base64_encode(time()).'&
us='.base64_encode($destinatario).'&
do='.sha1($_SERVER['HTTP_USER_AGENT'].$destinatario.rand()).' ">Recuperar Contraseña</a><br>');
en esta linea del frm_mod_cont.php tienes que recoger esas variables si te fijas no concuerdan
if($_GET['
ti'] and $_GET['
de'] and $_GET['
do'])
ahora segun te puse yo el link si te fijas veras que si concuerdan
$mail->MsgHTML('<a href="http://localhost/volcanicos/views/frm_mod_cont.php?&
ti='.base64_encode(time()).'&
de='.base64_encode($destinatario).'&
do='.$do.' ">Recuperar.Contraseña</a><br>');
asegurate que los nombres de variables que envies sean los mismo que cuando recoges si no sera imposible acceder a ellos , esto deberias de saberlo
como te puse el script tu sistema ya tendria una seguridad relativa fortificando el encriptamiento eso si e incluso aun puedes blindar aun mas tu sistema con muchos mas metodos etc...... pero lo bueno es que aprendes la metodologia para poder aplicar ya despues tu mas seguridad
tambien puedes añadir la ip con la que realizo la peticion del email , tambien lo incluiria .