Danke für dein Feedback.
- Die Variable aus $_POST habe ich korrigiert, ist mir garnicht aufgefallen, danke.
$BenutzerPasswortArray = file ("../../../htaccess/user/.htpasswd"); //laden der .htpasswd in Array
$keys = count ($BenutzerPasswortArray); //Benutzer zählen$fp=fopen ("../../../htaccess/user/.htpasswd","w"); //öffnen der .htpasswd zum schreiben
An dieser Stelle hat der Request den Dateiinhalt gelöscht. Nicht weiter schlimm, er hat die Daten ja im Array. Jetzt kommt ein zweiter Request des Wegs und liest mit file() den Inhalt aus - steht nichts (mehr) drin. Der erste Request ist mittlerweile fertig und hat alles wieder brav zurückgeschrieben. Der zweite öffnet nun die Datei und verwirft den vom ersten Request geschriebenen Inhalt.
for ($i=0; $i < $keys; $i++) //solange Zahl < Anz. Benutzer
Das verstehe ich jetzt nicht ganz. file () läd die .htpasswd in ein Array (löscht meines Wissens nichts - oder?) und legt für jeden "Benutzernamen:Passwort" ein neues Feld an.
Mit count gehe ich nun durch das Array und zähle die Schlüssel, um zu ermitteln wie oft ich durch die Schleife muss und Feld für Feld prüfen, ob der Feldinhalt der Eingabe entspricht.
$keys ist 0, die Schleife wird nicht ausgeführt.
Wenn ich mir $key ausgeben lasse stehen dort immer die Anzahl der vorhanden Schlüssel des $BenutzerPasswortArray drin.
fclose ($fp); //.htpasswd schließen
Die leere Daten wird geschlossen. Und du fragst dich, wo deine Benutzer hin sind und warum dieser Fehler immer nur sehr spradisch auftritt und nicht wirklich nachvollziehbar ist. => Sperren von Dateien
Hmm, meine Datei ist aber nicht leer. Sie beinhaltet nun die Benutzer (kommend aus $BenutzerPasswortArray), die ich haben möchte, also ohne den zu löschenden Benutzer aus $_POST.