Sí, pensé eso luego de estudiar un poquito más tu código... pero aún así, si lo que quieres es recuperar la contraseña de la persona, igual tienes que tener un valor para preguntar, en este caso, el email de la persona:
Mira, comparemos las consultas para que veas a lo que me refiero:
--Esta es la consulta original, dada por ti:
Código PHP:
//realizamos una consulta a la bd
$query = mysql_query("
SELECT * FROM registro WHERE email='$email' and contrasena='$contrasena'", $conexion);
Aquí tú estás preguntando a la base de datos "Busca en la tabla 'registro' todos los datos de quien tenga el email '$email' y la contraseña '$contrasena'". Si se supone que tú quieres obtener la contraseña, esta consulta no tiene sentido, pues tú la estás poniendo como condición de la búsqueda. Aparte, si la persona con el email '$email' no tiene la contraseña "vacía", esta consulta siempre dará resultado "No hay coincidencias".
--Esta es la consulta que te propongo:
Código PHP:
//realizamos una consulta a la bd
$query = mysql_query("SELECT contrasena FROM registro WHERE email='$email' ", $conexion);
Aquí tú estás explícitamente diciéndole a la base de datos "Busca en la tabla registro la contraseña de quien tenga el email = '$email' ".