Все правильно у тебя получается. В точности то, что ты написал и никакой магии. Ты создаешь json строку, ее ты пишешь в конец файла, и все. Ты не добавляешь новые данные в json строку, которая в файле. Ты просто пишешь строку в файл: {...}{...}{...}{...}...
Тебе надо переделать свой код, сначала прочитать файл, потом преобразовать данные в json, добавить туда свои данные, преобразовать обратно в строку и перезаписать файл.
$json = file_get_contents($filename);
$array = json_decode($json);
$array[$emailr] = $passwordr;
file_put_contents($filename, json_encode($array));
Также надо учитывать, что файл может оказаться пустым, или битым, то есть добавить проверки на ошибки и тд.