Hallo Felix,
[...] Nach den Ausgaben im HTML-Quelltext zu urteilen kommt in der foreach-Schleife immer nur das letzte Array-Element dran. [...]
foreach($dateiinhalt as $login);
mit dem ; am Ende der Zeile beendest du die foreach-Schleife ohne irgendwas mit dem Inhalt von $dateiinhalt zu machen - das was da steht ist also das gleiche wie:
foreach($dateiinhalt as $login){
}
Der folgende Block (das was zwischen den { und }, die eigentlich zu forach gehören, steht) wird dann nur noch genau einmal abgearbeitet - und zwar mit dem Wert, den foreach als letztes in $login geschrieben hat.
Um es kurz zu machen: lass das »;« am Ende der Zeile mit foreach weg :-)
Grüße aus Nürnberg
Tobias