mein cgi löscht alle user:pässe
Alain
- perl
0 Cheatah
Hallo,
Ich habe da ein problem mit einem cgi-script.
Das problem sit folgendes,ich habe mehrere scripte die auf das eine htpasswd
zugriff besitzen um neue user einzu fügen oder zu löschen.Nun mit einem script
hab ich aber das problem dass der alle anderen löscht,was eigentlich nicht sein dürfte.
Der verdächtige code vom script ist wie folgt:
open(HTPWDDATEI,">.htpasswd") || die "Fehler beim öffnen Passwort-Datei";
open (MEMBER,">member.txt") || die "Fehler beim öffnen der Member-Datei";
foreach $line (@content)
{
($USERNAME, $ZUGBIS, $pass2) = split(/:/, $line);
if ($ZUGBIS > time())
{
print MEMBER "$USERNAME:$ZUGBIS:$pass2";
print HTPWDDATEI "$USERNAME:$pass2";#hier vermute ich dass der alles löscht
}
}
close(MEMBER);
close(HTPWDDATEI);
---------
ich weiss es fehlt noch flock,aber das tut jetzt nichts zur sache.
Das andere script das die userdaten nicht komplett löscht bzw. es richtig macht sieht so aus:
open(FILE,"$htpass") || Dead();
my @newlines = ();
my @lines = <FILE>;
close (FILE);
foreach my $l (@lines)
{
chomp($l);
push @newlines, $l if ($l !~ /^$username:/i);
}
my $newfile = join("\n",@newlines);
open(FILE,">$htpass") || Dead();
flock(FILE,LOCK_EX);
print FILE "$newfile\n";
system("chmod 666 $htpass");
close (FILE);
-------------
meine frage dazu ist,könnte man den code der funtzt irgendwie mit dem anderen
der mir alles löscht verbinden bzw. umändern,damit es dort auch geht?
Das problem ist jedenfalls dass es sich um zwei verschiedene anbieter handelt die
unterschiedliche befehle zum perl script senden,damit die user gelöscht bzw. hinzu gefügt werden.
M.f.G.
Alain
Hi,
open(HTPWDDATEI,">.htpasswd") || die "Fehler beim öffnen Passwort-Datei";
print HTPWDDATEI "$USERNAME:$pass2";#hier vermute ich dass der alles löscht
natürlich, Du hast die Datei zum Schreiben geöffnet, nicht zum Anhängen.
Cheatah