Не уверен, что это единственная проблема, но я предполагаю, что ваше поле для сброса пароля является строкой, в базе данных - для хранения конкатенации нескольких md5, которые являются строками, это должно.
Итак, в значении SQL, указанном в этом поле, в кавычках должны быть кавычки:
mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = $id");
И, в общем случае, вы должны экранировать свои строковые значения с помощью mysql_real_escape_string
:
mysql_query("UPDATE members SET passwordreset = '"
. mysql_real_escape_string($passwordreset)
. "' WHERE id = $id");
Здесь ничего не изменится, так как в md5 нет цитаты ... Но всегда полезно делать это, никогда не оказываться в ситуации, когда это было необходимо, а вы этого не делали .