W3asel: htpassword und Editierung

Beitrag lesen

Moin Leute,

ich hab folgende Idee: Die Datei '.htpasswd' auslesen in Arrays, also jede Zeile ein Array oder noch besser in jedes Array ein Benutzername der '.htpasswd' - leider weiß ich nicht wie des geht, deshalb bin ich bei der Variante mit dem jede Zeile ein Array geblieben! Man soll per Checkbox die User anwählen können und damit löschen.

Also eigentlich ganz einfach, auf den CHMOD hab ich dabei schon geachtet, das Script sieht zur Zeit so aus:

<?php

echo "<html>";
echo "<body>";
echo "<form name="activate" method="post" action="config.php">";

Wieviele User sollen eingelesen werden?

$anz='20';

Zu beschreibene Datei / Zu lesene Datei

$file = ".htpasswd";

Wenn htpasswd existiert

if (file_exists("$file"))
{
 ## Variablen für die while-Schleife
 $i='0';

## Öffnen der Datei
 $htpasswd = fopen($file, "r");

## Anzeigen des Inhalts
 while($anz>=0)
 {
 echo "<input name="loeschen";
 echo $i;
 echo ""type="checkbox" value="">";
 echo " - ";

$array['text']['$i'] = fgets($htpasswd);

echo $array['text']['$i'];
 echo "<br>";
 $i++;
 $anz--;
 }
 fclose ($htpasswd);

echo "<br>";
echo "<input type="submit" name="Submit" value="Loeschen">";
echo "</form>";
echo "</body>";
echo "</html>";
?>

Er zeigt mir dabei aber schon unerwartetes Ende an, kein Plan wo dort der Fehler liegt.

Die config.php schaut dann dazu so aus:

<?php
$anz='0';
$i='20';

In Datei schreiben (erstmals)

$htpasswd = fopen($file, "r+");
 while ($i>=$anz)
 {

if ($anz>'1')
  {
  ##In Datei schreiben (anhängend)
  fclose ($htpasswd);
  $htpasswd = fopen($file, "a");
  }
  else
  {
  }

## Hochzählen + Checkboxen einlesen
  $anz++;
  $loeschen = $HTTP_POST_VARS["loeschen$anz"];

## Wenn Checkbox leer
  if ($loeschen == "")
  {
   ## Eintragen der nicht geändertden Daten
   $array1 = $array['text']['$anz'];
   fputs ($htpasswd, "$array1\n");
   fclose ($htpasswd);
  }
  ## Wenn Checkbox an:
  else
  {
   ## Eintrag verwerfen
   fputs ($htpasswd, "");
   fclose ($htpasswd);
  }

}
?>

Nach meiner Meinung dürfte das so Funktionieren, aber irgendwie auch wieder net, kann mir mal wer unter die Arme greifen - ich hänge zur Zeit.