когда вы вызывается 1-ый раз функцию writehistory у вас back заполняется данными, но когда вы вызываете ее еще раз, то back уже существует и данные в нем есть и он еще раз дополняется теми данными которые уже есть у вас, потому что вы его в цикле крутите
нужно делать проверку, если в back уже есть такое значение, то делать continue например
|