echo $begrüßung;
$Id = $_POST["Id"];
Hiermit kopierst du den Wert in eine weitere Variable um. $Id verwendest du aber gar nicht weiter, stattdessen überschreibst du den Wert etwas später (in einem list()-Konstrukt). Diese Zeile ist also sinnlos. Außerdem hast du dich nicht überzeugt, ob dieser Wert überhaupt existiert. Das machst du erst anschließend.
$text = implode("", $array); // Das Array in einen String zusammenfügen
$handler = fOpen($datei, "w");
fWrite($handler, $text);
fClose($handler);
$array = file($datei); // Geänderte Datei einlesen
Letzteres ist überflüssig, denn $array verliert ja nicht seinen Inhalt durch das implode(). Allerdings scheint mir dein glue-Parameter bei implode() nicht richtig zu sein. Du verlierst alle Zeilenumbrüche. Die letzte Zeile wird nur $array mit einem einzelnen Element liefern. Brauchst du $array eigentlich noch? Du verwendest es anschließend gar nicht, zumindest nicht in dem geposteten Code. Obendrein ist es kein besonders aussagekräftiger Bezeichner.
$ref = $HTTP_SERVER_VARS["HTTP_REFERER"];
$HTTP_SERVER_VARS ist schon seit vielen Wintern nicht mehr aktuell. Genauso wie es nun $_POST statt $HTTP_POST_VARS heißt es $_SERVER.
header('Location: '.$ref.' ');
Dass der Referrer, da es ein vom Client beliebig beeinflussbarer Wert ist, nicht unbedingt eine und auf keinen Fall immer nur die von dir vorgesehene vertrauenswürdige URL enthalten muss, scheint dir auch nicht bewusst zu sein.
funktioniert lieder nicht.
"Funktioniert nicht" funktioniert nicht. Beobachte und beschreibe genauer, wenn du genauere Antworten erwartest! Hast du dir mit Kontrollausgaben anzeigen lassen, womit du worauf zuzugreifen versuchst?
echo $array[$Id];
Ist das das nunmehr einelementige Array?
echo $array[2]; gibt Zeile drei aus. ICh möchte aber genau die Zeile ausgegeben bekommen, die zur Id gehört.
Oder an welcher Stelle deines geposteten Codes versuchst du die Änderungen vorzunehmen? Unterhalb des implode() und file() gibt es ja nur noch Element 0.
Die Zeile die gelöscht wird, soll nun geändert wieder eingefügt werden.
Möchtest du damit sagen, dass nun statt des Löschens ein Ändern stattfinden soll? Innerhalb der for-$zähler-Schleife hast du doch schon mit $array[$zaehler] einen lesenden Zugriff auf das aktuelle Element. Bekommst du einen schreibenden darauf nun allein hin?
echo "$verabschiedung $name";