Finden von Angaben

Hallo,

ich möchte in einer text Datei nach einem übergebenen String suchen. Bei
der Textdatei handelt es um die .htpasswd.

Ich habe es mit strstr() probiert, aber leider sucht er die Stelle des
Strings und gibt dann den Rest der Datei mit aus?

Welche Methode oder Ansatz ist da besser?

--
MfG

Stefan Becker
Stefan Becker [ Mo, 17 September 2007 11:25 ] [ ID #1822576 ]

Re: Finden von Angaben

Stefan Becker schrieb:
> Hallo,
>
> ich möchte in einer text Datei nach einem übergebenen String suchen=
=2E Bei
> der Textdatei handelt es um die .htpasswd.

Hier werden die Benutzernamen als Key eines Arrays angelegt und dann mit =

einem isset() nachgeschaut.

Gruss
Joerg


--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 11:46 ] [ ID #1822577 ]

Re: Finden von Angaben

Stefan Becker schrieb:
> ich möchte in einer text Datei nach einem übergebenen String suchen. Bei
> der Textdatei handelt es um die .htpasswd.
>
> Ich habe es mit strstr() probiert, aber leider sucht er die Stelle des
> Strings und gibt dann den Rest der Datei mit aus?
>
> Welche Methode oder Ansatz ist da besser?

http://php.net/strpos - Für das Suchen, ob der String existiert
http://php.net/preg_match - Für das Filtern von den Werten zum String

Oder die Datei komplett Parsen (Korrigiert mich, aber ich glaub die
Datei ist im Standard .ini Format):
http://www.php.net/manual/de/function.parse-ini-file.php

Je nachdem was du machen willst.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mo, 17 September 2007 11:52 ] [ ID #1822579 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l70moF6otobU1 [at] mid.individual.net...

>Hier werden die Benutzernamen als Key eines Arrays angelegt ...


Wie ist das zu verstehen und wie macht man das sinnvoll? isset()
überprüft ob der Benutzername vorhanden ist, ok. Das ist schon mal gut.
Wenn ich nun aber das Kennwort ändern möchte, sollte ich doch die Zeile
mit dem entsprechenden Benutzernamen finden und dann das Passwort
ändern, oder?

Stefan
Stefan Becker [ Mo, 17 September 2007 12:09 ] [ ID #1822582 ]

Re: Finden von Angaben

Am 17.09.2007, 12:09 Uhr, schrieb Stefan Becker <spam [at] stefanshome.de>:

> Wie ist das zu verstehen und wie macht man das sinnvoll? isset()
> überprüft ob der Benutzername vorhanden ist, ok. Das ist schon mal gut.
> Wenn ich nun aber das Kennwort ändern möchte, sollte ich doch die Zeile
> mit dem entsprechenden Benutzernamen finden und dann das Passwort
> ändern, oder?

Du dürftest das hier suchen:
http://www.php-faq.de/q/q-datei-einfuegen.html

Gruß
Chris
Chris Kraft [ Mo, 17 September 2007 12:28 ] [ ID #1822583 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l70moF6otobU1 [at] mid.individual.net...
>
>> Hier werden die Benutzernamen als Key eines Arrays angelegt ...
>
>
> Wie ist das zu verstehen und wie macht man das sinnvoll? isset()
> überprüft ob der Benutzername vorhanden ist, ok. Das ist schon mal =
gut.

Du hast nicht gesagt was du letztendlich alles machen moechtest und
somit habe ich nur *die* Frage beantwortet, bzw. einen Hinweis gegeben
wie man es machen koennte. Beim Umgang mit Dateien ist es ungewoehnlich
direkt in der Datei zu editieren da hier der Cursor genau platiert
werden muss.
I.d.R wird eine Aenderung durchgefuehrt in dem die Datei neu geschrieben =

wird.

Die Ueberpruefung ob ein Benutzer vorhanden ist stellt fuer Gewisse
Funktionalitaet eine Vorbedingung da (Benutzer anlegen :)

> Wenn ich nun aber das Kennwort ändern möchte, sollte ich doch die Z=
eile
> mit dem entsprechenden Benutzernamen finden und dann das Passwort
> ändern, oder?

Funktionalitaet:
Benutzer anlegen:
- File locken
- Pruefen ob schon vorhanden
- Neuen Benutzer ans Ende schreiben

Benutzer kann Passwort aendern:
- Benutzer einlesen und Array erzeugen $user[$name] =3D array('name' =3D>=

$foo, 'passwd' =3D> $bar)
- Pruefen von Benutzer und Passwort stimmen
- Array Daten in eine TMP Datei schreiben und dann als .htpasswd ablegen

Benutzer Loeschen:
- Benutzer einlesen und Array erzeugen
- Wenn Benutzer vorhanden Array Key loeschen
- Array Daten in eine TMP Datei schreiben und dann als .htpasswd ablegen

Passwort zurueck setzen
- Benutzer einlesen und Array erzeugen
- Im Array ein vom System erzeugtes Zufallspasswort hinterlegen
- Array Daten in eine TMP Datei schreiben und dann als .htpasswd ablegen


Dafuer schreibts du einen Satz funktionen und das wars dann auch schon.

file_get_contents(), explode() und ein paar foreach()s.


Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 12:41 ] [ ID #1822584 ]

Re: Finden von Angaben

Stefan Becker schrieb:

> > Hier werden die Benutzernamen als Key eines Arrays angelegt ...
>
>
> Wie ist das zu verstehen und wie macht man das sinnvoll?

z.B.
| <?php
| $htpasswd = file('.htpasswd');
| foreach ($htpasswd as &$value) {
| $user = explode(':', $value);
| $value = array($user[0] => $user[1]);
| }
|?>


> Wenn ich nun aber das Kennwort ändern möchte, sollte ich doch die Zeile
> mit dem entsprechenden Benutzernamen finden und dann das Passwort ändern,
> oder?

Keine Ahnung ob du das solltest... willst du denn Kennwörter ändern? Aber
wenn die Datei in einem Array vorliegt, ist das ja das simpelste, den Wert
(Passwort) eines Array-Index (Username) zu ändern:
| $htpasswd['username'] = 'neuespassword';

Danach "kehrst" du obigen Code um, und schreibst die neue "htpasswd" zurück
auf die Platte.


Bei soviel (einfachen) Fragen, solltest du dir aber vielleicht den Einsatz
einer fertigen Class wir z.B. PEAR::File_Passwd [1] überlegen...

Gruß
Carsten

[1] http://pear.php.net/package/File_Passwd
Carsten Wiedmann [ Mo, 17 September 2007 12:46 ] [ ID #1822585 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l73vaF6oufoU1 [at] mid.individual.net...

>Du hast nicht gesagt was du letztendlich alles machen moechtest und
>somit habe ich nur *die* Frage beantwortet, bzw. einen Hinweis gegeben
>wie man es machen koennte. Beim Umgang mit Dateien ist es ungewoehnlich
>direkt in der Datei zu editieren da hier der Cursor genau platiert
>werden muss.
>I.d.R wird eine Aenderung durchgefuehrt in dem die Datei neu
>geschrieben wird.

Ja das ist natürlich richtg, ich wusste ja nicht, dass es doch etwas
umfangreicher ist....

>Benutzer kann Passwort aendern:
>- Benutzer einlesen und Array erzeugen $user[$name] = array('name' =>
>$foo, 'passwd' => $bar)
>- Pruefen von Benutzer und Passwort stimmen
>- Array Daten in eine TMP Datei schreiben und dann als .htpasswd
>ablegen

Nur das möchte ich erstmal machen, die anderen sind auch angedacht, aber
wichtig ist dies erstmal.

Ich habe dank deiner Anregung folgendes:

<?php
error_reporting(E_ALL);
var_dump($_POST);

//Einlesen der Passwort Datei
$passwortDatei = file_get_contents(".htpasswd");

//String in Arrays setzen
$array=explode("\n",$passwortDatei);

//Array durchlaufen
foreach($array as $i)
{
echo $i."<br>";
}
?>
´
So wie ich das verstanden habe, trennst du aber noch Benutzername und
Passwort? Und wie finde ich dann das Arrayelement wo ich die Änderung
durchführen möchte?

Stefan
Stefan Becker [ Mo, 17 September 2007 14:00 ] [ ID #1822588 ]

Re: Finden von Angaben

Stefan Becker schrieb:
> So wie ich das verstanden habe, trennst du aber noch Benutzername und
> Passwort? Und wie finde ich dann das Arrayelement wo ich die Änderung
> durchführen möchte?

Ich verstehe nicht, warum Ihr das ini Format der Datei selbst
auseinander pflücken wollt... :)

So würde ich es machen (eventuell noch Locks benutzen, am Ende den
String halt noch abspeichern je nach belieben):

//Datei laden und in einem Array ablegen
$array = parse_ini_file('.htpasswd');

//Wenn der Benutzer existiert, kann das Passwort geändert werden
if(isset($array[$new_username]))
{
//Dem Benutzer das neue Passwort zuweisen, dabei eventuell
//das Passwort noch hashen oder verschlüsseln (empfohlen)
$array[$username] = $new_password;


//Die Passwortdatei wieder zusammen setzen
$string = '';
foreach($array as $username => $password)
{
$string .= $username .. ':' $password .. '\r\n';
}
}

oder wie schon angedeutet einfach eine fertige Klasse von PEAR verwenden.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mo, 17 September 2007 14:17 ] [ ID #1822589 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l73vaF6oufoU1 [at] mid.individual.net...
>
>> Du hast nicht gesagt was du letztendlich alles machen moechtest und
>> somit habe ich nur *die* Frage beantwortet, bzw. einen Hinweis gegeben=

>> wie man es machen koennte. Beim Umgang mit Dateien ist es
>> ungewoehnlich direkt in der Datei zu editieren da hier der Cursor
>> genau platiert werden muss.
>> I.d.R wird eine Aenderung durchgefuehrt in dem die Datei neu
>> geschrieben wird.
>
> Ja das ist natürlich richtg, ich wusste ja nicht, dass es doch etwas =

> umfangreicher ist....
>
>> Benutzer kann Passwort aendern:
>> - Benutzer einlesen und Array erzeugen $user[$name] =3D array('name' =3D=
>
>> $foo, 'passwd' =3D> $bar)
>> - Pruefen von Benutzer und Passwort stimmen
>> - Array Daten in eine TMP Datei schreiben und dann als .htpasswd ableg=
en
>
> Nur das möchte ich erstmal machen, die anderen sind auch angedacht, a=
ber
> wichtig ist dies erstmal.
>
> Ich habe dank deiner Anregung folgendes:
>
> <?php
> error_reporting(E_ALL);
> var_dump($_POST);
>
> //Einlesen der Passwort Datei
> $passwortDatei =3D file_get_contents(".htpasswd");
>
> //String in Arrays setzen
> $array=3Dexplode("\n",$passwortDatei);
>
> //Array durchlaufen
> foreach($array as $i)
> {
> echo $i."<br>";
> }
> ?>
> =B4
> So wie ich das verstanden habe, trennst du aber noch Benutzername und
> Passwort? Und wie finde ich dann das Arrayelement wo ich die =C4nderung=

> durchführen möchte?

Wenn du $i mal anguckst dann sollte das 'benutername:passwort' sein
welches dann am $serperator zerteilt wird.
$parts =3D explode(':', $i, 2);
$index =3D parts[0];
$users[$index] =3D array('username' =3D> $parts[0],
'password' =3D> $parts[1]
);

Nicht vergessen zugucken ob $parts[x] auch vorhanden ist. Es koennte
evt. Benutzer ohne Password geben.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 14:41 ] [ ID #1822590 ]

Re: Finden von Angaben

Stefan Becker schrieb:

> ich möchte in einer text Datei nach einem übergebenen String suchen. Bei
> der Textdatei handelt es um die .htpasswd.

Was hast Du schon probiert? Was ist dabei rausgekommen?

> Ich habe es mit strstr() probiert, aber leider sucht er die Stelle des
> Strings und gibt dann den Rest der Datei mit aus?

strstr() sucht nicht in Dateien, sondern in Strings. Außerdem gibt
strstr() gar nichts aus, sondern ermittelt nur die Position und gibt
diese zurück.

Wenn sich das bei Dir anders verhält, hast Du irgend etwas falsch gemacht.

Gruß. Claus
Claus Reibenstein [ Mo, 17 September 2007 14:50 ] [ ID #1822593 ]

Re: Finden von Angaben

Christoph Herrmann schrieb:
> Stefan Becker schrieb:
>> So wie ich das verstanden habe, trennst du aber noch Benutzername und =

>> Passwort? Und wie finde ich dann das Arrayelement wo ich die =C4nderun=
g
>> durchführen möchte?
>
> Ich verstehe nicht, warum Ihr das ini Format der Datei selbst
> auseinander pflücken wollt... :)
>
> So würde ich es machen (eventuell noch Locks benutzen, am Ende den
> String halt noch abspeichern je nach belieben):
>
> //Datei laden und in einem Array ablegen
> $array =3D parse_ini_file('.htpasswd');

Und die Funktion kann 'name:passwd' verstehen?

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 14:51 ] [ ID #1822594 ]

Re: Finden von Angaben

Joerg Behrens schrieb:
> Christoph Herrmann schrieb:
>> //Datei laden und in einem Array ablegen
>> $array = parse_ini_file('.htpasswd');
>
> Und die Funktion kann 'name:passwd' verstehen?

Mmh, ok vergesst besser mein Kommentar, heut ist echt nicht mein Tag. ^^
Die .htpasswd haben ja ":" als Trennzeichen, ini ist ja "=" :-|

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mo, 17 September 2007 15:07 ] [ ID #1822595 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l7avjF6l6hnU1 [at] mid.individual.net...

Könntest du mir die zwei folgenden Zeilen erklären? Was ist parts[0]
genau? Dazu finde ich nichts. Diesen Wert speicher ich ja bei jedem
Aufruf in $index. Aber ist diese dann nicht bei jedem Aufruf gleich?
Denn dann wäre ja auch $users[$index] überflüssig? Und was macht dann
der letzte Ausdruck genau?

>$index = parts[0];
>$users[$index] = array('username' => $parts[0],
> 'password' => $parts[1]
> );

Stefan
Stefan Becker [ Mo, 17 September 2007 16:19 ] [ ID #1822596 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l7avjF6l6hnU1 [at] mid.individual.net...



Wenn du $i mal anguckst dann sollte das 'benutername:passwort' sein
welches dann am $serperator zerteilt wird.
$parts = explode(':', $i, 2);
$index = parts[0];
$users[$index] = array('username' => $parts[0],
'password' => $parts[1]
);

Ok nun habe ich verstanden, was diese macht. Nun habe ich ja die
Benutzername und Passwort in einem 2x X Matrix stehen. Aber wozu habe
ich diese Konvertierung gemacht? Komme ich nun einfache an das Passwort
des jeweiligen Benutzers?

Stefan
Stefan Becker [ Mo, 17 September 2007 17:18 ] [ ID #1822597 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l7avjF6l6hnU1 [at] mid.individual.net...
>
>
>
> Wenn du $i mal anguckst dann sollte das 'benutername:passwort' sein
> welches dann am $serperator zerteilt wird.
> $parts =3D explode(':', $i, 2);
> $index =3D parts[0];
> $users[$index] =3D array('username' =3D> $parts[0],
> 'password' =3D> $parts[1]
> );
>
> Ok nun habe ich verstanden, was diese macht. Nun habe ich ja die
> Benutzername und Passwort in einem 2x X Matrix stehen. Aber wozu habe
> ich diese Konvertierung gemacht? Komme ich nun einfache an das Passwort=

> des jeweiligen Benutzers?

Na einfach in das Array greifen mit dem uebermittelten Usernamen als Key =

oder fragst du wegen der Passwortverschluesselung? Da meistens Einweg
Verschluesselung bzw. nen Hash zum Einsatz kommt must du bei einem
Vergleich ein uebermittelt Passwort nochmal verschluesseln und dieses
mit dem bereits hinterlegtem Vergleichen.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 17:26 ] [ ID #1822598 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l7kktF6ou6vU1 [at] mid.individual.net...

>Na einfach in das Array greifen mit dem uebermittelten Usernamen als
>Key oder fragst du wegen der Passwortverschluesselung? Da meistens
>Einweg Verschluesselung bzw. nen Hash zum Einsatz kommt must du bei
>einem Vergleich ein uebermittelt Passwort nochmal verschluesseln und
>dieses mit dem bereits hinterlegtem Vergleichen.

Du hast ja recht, ich kann ja einfach mit ($users["testzugang"]); jetzt
an die Daten ran. Ich habe dein Anraten bzgl. des leeren Passworts mal
versucht einzubauen.

Sieht jetzt so aus:

<?php
error_reporting(E_ALL);
var_dump($_POST);

//Einlesen der Passwort Datei
$passwortDatei = file_get_contents(".htpasswd");

//String in Arrays setzen
$array=explode("\n",$passwortDatei);

//Array durchlaufen
foreach($array as $i)
{
//Teilen von Benutzername und Passwort
$parts = explode(':', $i, 2);
//echo $parts[0]."<br>";
$index = $parts[0];
if(isset ($parts[1]))
{$users[$index] = array('username' => $parts[0],'password' =>
$parts[1]);}
else
{ echo "Fehler, es dürfen keine Benutzerdaten ohne Kennwort existieren!
Benutzer: ".$parts[0];}


}
$users["testzugang"] = array('password' => "test");
print_r($users["testzugang"]);


?>

Und das ist das Ergebnis:
array(0) { } Fehler, es dürfen keine Benutzerdaten ohne Kennwort
existieren! Array ( [password] => test )

Ich denke, dass hat damit zu tun, dass das Array an der Stelle 0
startet, ich aber erst bei 1 anfange zu beschreiben. Bei Java kann ich
ja den Startwert setzen, wie ich mache ich das hier bei dieser Schleife?

Und dann nun die Frage, wie ich das übergebene Passwort in das
verschüsselte Passwort umwandel, da gibt es doch sicherlich eine
vorhande Fkt. ?

Stefan
Stefan Becker [ Mo, 17 September 2007 17:43 ] [ ID #1822599 ]

Re: Finden von Angaben

"Stefan Becker" <spam [at] stefanshome.de> schrieb im Newsbeitrag
news:fcm79i$2u2$03$1 [at] news.t-online.com...
>
> Und dann nun die Frage, wie ich das übergebene Passwort in das
> verschüsselte Passwort umwandel, da gibt es doch sicherlich eine
> vorhande Fkt. ?
>
Ich habe es mal wie hier http://www.php.net/crypt beschrieben getestet.
Allerdings ist das Kennwort was ich über SSH erzeugt habe 8-stellig, das
neue mit crypt >20, habe ich da was falsch gemacht oder wie ist das?

Stefan
Stefan Becker [ Mo, 17 September 2007 18:23 ] [ ID #1822601 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l7kktF6ou6vU1 [at] mid.individual.net...
>
>> Na einfach in das Array greifen mit dem uebermittelten Usernamen als
>> Key oder fragst du wegen der Passwortverschluesselung? Da meistens
>> Einweg Verschluesselung bzw. nen Hash zum Einsatz kommt must du bei
>> einem Vergleich ein uebermittelt Passwort nochmal verschluesseln und
>> dieses mit dem bereits hinterlegtem Vergleichen.
>
> Du hast ja recht, ich kann ja einfach mit ($users["testzugang"]); jetzt=

> an die Daten ran. Ich habe dein Anraten bzgl. des leeren Passworts mal =

> versucht einzubauen.
>
> Sieht jetzt so aus:
>
> <?php
> error_reporting(E_ALL);
> var_dump($_POST);
>
> //Einlesen der Passwort Datei
> $passwortDatei =3D file_get_contents(".htpasswd");
>
> //String in Arrays setzen
> $array=3Dexplode("\n",$passwortDatei);
>
> //Array durchlaufen
> foreach($array as $i)
> {
> //Teilen von Benutzername und Passwort
> $parts =3D explode(':', $i, 2);
> //echo $parts[0]."<br>";
> $index =3D $parts[0];
> if(isset ($parts[1]))
> {$users[$index] =3D array('username' =3D> $parts[0],'password' =3D> $pa=
rts[1]);}
> else
> { echo "Fehler, es dürfen keine Benutzerdaten ohne Kennwort existiere=
n!
> Benutzer: ".$parts[0];}
>
>
> }
> $users["testzugang"] =3D array('password' =3D> "test");
> print_r($users["testzugang"]);
>
>
> ?>

Ich dachte eher an
$users[$index] =3D array('username' =3D> $parts[0],
'password' =3D> (isset($parts[1])) ? $parts[1] : =
''
);

oder so :).

In wiefern bei dir ein Passwort Pflicht ist musst du beim Einfuegen der
Daten festlegen und nicht beim Auslesen. Dein Auslesen 'sollte' dann nur =

alle Faelle beruecksichtigen.


> Und das ist das Ergebnis:
> array(0) { } Fehler, es d=C3=BCrfen keine Benutzerdaten ohne Kennwort
> existieren! Array ( [password] =3D> test )
> Ich denke, dass hat damit zu tun, dass das Array an der Stelle 0
> startet, ich aber erst bei 1 anfange zu beschreiben. Bei Java kann ich =

> ja den Startwert setzen, wie ich mache ich das hier bei dieser Schleife=
?

Wir haben hier ein assoziatives Array und kein 0 indiziertes.

> Und dann nun die Frage, wie ich das übergebene Passwort in das
> verschüsselte Passwort umwandel, da gibt es doch sicherlich eine
> vorhande Fkt. ?

Du must vorher definieren was fuer Art Passwort die Datei hat bzw. die
Anwendung welche die dann auch benutzt. Ist die nicht aufgefallen das es =

Crypt() in Standard und Extended gibt? Je nach Plattform gibts also mehr =

Moeglichkeiten und dazu kommt noch md5 und Klartext.


// Check if the passwords are matched
$match =3D false;
switch($_CONFIG['method']){
case 'crypt_std_des':
$salt =3D substr($user['password'], 0, 2);
if(crypt($oldpass, $salt) =3D=3D $user['password']){
$match =3D true;
}
break;

case 'crypt_ext_des':
$salt =3D substr($user['password'], 0, 9);
if(crypt($oldpass, $salt) =3D=3D $user['password']){
$match =3D true;
}
break;

case 'md5':
if(md5($oldpass) =3D=3D $user['password']){
$match =3D true;
}
break;

case 'cleartext':
if($oldpass =3D=3D $user['password']){
$match =3D true;
}
break;
}

if($match =3D=3D=3D true){
......

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 19:37 ] [ ID #1822603 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l7savF68lo9U1 [at] mid.individual.net...

>Ich dachte eher an
>$users[$index] = array('username' => $parts[0],
> 'password' => (isset($parts[1])) ? $parts[1] :
> ''
> );

> oder so :).

Natürlich ...


>Du must vorher definieren was fuer Art Passwort die Datei hat bzw. die
>Anwendung welche die dann auch benutzt. Ist die nicht aufgefallen das
>es Crypt() in Standard und Extended gibt? Je nach Plattform gibts also
>mehr Moeglichkeiten und dazu kommt noch md5 und Klartext.

Das habe ich in der Apache Doku jetzt auch gelesen...

// Check if the passwords are matched
$match = false;
switch($_CONFIG['method']){
case 'crypt_std_des':
$salt = substr($user['password'], 0, 2);
if(crypt($oldpass, $salt) == $user['password']){
$match = true;
}
break;

case 'crypt_ext_des':
$salt = substr($user['password'], 0, 9);
if(crypt($oldpass, $salt) == $user['password']){
$match = true;
}
break;

case 'md5':
if(md5($oldpass) == $user['password']){
$match = true;
}
break;

case 'cleartext':
if($oldpass == $user['password']){
$match = true;
}
break;
}

if($match === true){
......

Er markert mir nun die Variable Config an, wo wird diese denn
initialisiert?

Stefan
Stefan Becker [ Mo, 17 September 2007 22:26 ] [ ID #1822612 ]

Re: Finden von Angaben

Stefan Becker schrieb:

>
> // Check if the passwords are matched
> $match =3D false;
> switch($_CONFIG['method']){

> Er markert mir nun die Variable Config an, wo wird diese denn
> initialisiert?

Na in meiner Config Datei ;). Eigentlich wollte ich dir nur die Wege
aufzeigen.... und nicht gleich die ganze Strasse alleine pflastern.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mo, 17 September 2007 23:53 ] [ ID #1822617 ]

Re: Finden von Angaben

Joerg Behrens wrote:

>> switch($_CONFIG['method']){

Die Namensgebung ist Irregführend! Variablen mit $_ am Anfag zeigen
eigentlich auf Systemeigen Variablen. Ist nicht besonders schlau diese
zu nutzen zumal PHP durchaus in zukünftigen Versionen mit dieser als
Eigene daher kommen kann.

Sonst fängt der OP erst an sich an so eine Namensgebung zu gewöhnen und
wundert sich irgendwann, was Ihn wieder hier aufschlagen läßt.

MfG. Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Di, 18 September 2007 10:02 ] [ ID #1823485 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l8balF6s07tU2 [at] mid.individual.net...

>Na in meiner Config Datei ;). Eigentlich wollte ich dir nur die Wege
>aufzeigen.... und nicht gleich die ganze Strasse alleine pflastern.

Ja da haben wir es ja ;-) Hätte nicht gedacht, dass es so schwer die
htpasswd zu bearbeiten. Kann ich die Verschlüsselung nicht heruasfinden
und diese dann fest setzen?

Stefan
Stefan Becker [ Di, 18 September 2007 10:31 ] [ ID #1823487 ]

Re: Finden von Angaben

Stefan Becker wrote:

> Ja da haben wir es ja ;-) Hätte nicht gedacht, dass es so schwer die
> htpasswd zu bearbeiten. Kann ich die Verschlüsselung nicht heruasfinden
> und diese dann fest setzen?

http://httpd.apache.org/docs/trunk/programs/htpasswd.html
zeigt Dir unter Options welche Verschlüsselung von welchen OS erkannt
und genutzt wird. Da läßt sich ja dann leicht auf den Code anwenden den
Dir Joerg gepostet hat. (hint: z.B. mit der Konstante PHP_OS arbeiten)

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Di, 18 September 2007 10:46 ] [ ID #1823489 ]

Re: Finden von Angaben

"Ulf Kadner" <dr_logic [at] gmx.net> schrieb im Newsbeitrag
news:fco386$571$01$1 [at] news.t-online.com...

>
> http://httpd.apache.org/docs/trunk/programs/htpasswd.html
> zeigt Dir unter Options welche Verschlüsselung von welchen OS erkannt
> und genutzt wird. Da läßt sich ja dann leicht auf den Code anwenden
> den Dir Joerg gepostet hat. (hint: z.B. mit der Konstante PHP_OS
> arbeiten)

Ja, ich habe die 3 verschiedenen Verschlüsselungen ausprobiert (via
SSH). Ich bekomme nur bei -d das richtige Passwort raus. Und dort steht
ja das crypt() verwendet wird?!

Stefan
Stefan Becker [ Di, 18 September 2007 11:06 ] [ ID #1823491 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l8balF6s07tU2 [at] mid.individual.net...
>
>> Na in meiner Config Datei ;). Eigentlich wollte ich dir nur die Wege
>> aufzeigen.... und nicht gleich die ganze Strasse alleine pflastern.
>
> Ja da haben wir es ja ;-) Hätte nicht gedacht, dass es so schwer die =

> htpasswd zu bearbeiten. Kann ich die Verschlüsselung nicht heruasfind=
en
> und diese dann fest setzen?

Einfacher und sicherer waere es wenn du das vorher festlegen wuerderst.
Wenn du mal div. Varianten ausprobierst dann kann man unter Umstaenden
über die Länge des verschluesselten Passwortes bzw. über die verwen=
deten
Zeichen ein Paar Rueckschluesse ziehen.

Bezueglich des Standard oder Extended Crypts sei gesagt das PHP da zur
Laufzeit Konstanten hat welche kundtun ob PHP das auf deinem OS auch
unterstuezt und was der Default Typ ist. Den Typ legst du dann über die=

Länge des Salts fest.

Hat aber noch nichts damit zutun was eigentlich in deiner .htpasswd
stehen soll.

Gruss
Joerg


--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 12:37 ] [ ID #1823498 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l9o2gF7668lU1 [at] mid.individual.net...

> Einfacher und sicherer waere es wenn du das vorher festlegen
> wuerderst. Wenn du mal div. Varianten ausprobierst dann kann man unter
> Umstaenden über die Länge des verschluesselten Passwortes bzw. über
> die verwendeten Zeichen ein Paar Rueckschluesse ziehen.

Also ich für den Benutzer testzugang das Passwort test gewählt, dieses
steht nun in der .htpasswd T2gSLNRBmvaE.

Stefan
Stefan Becker [ Di, 18 September 2007 13:15 ] [ ID #1823500 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l9o2gF7668lU1 [at] mid.individual.net...
>
>> Einfacher und sicherer waere es wenn du das vorher festlegen
>> wuerderst. Wenn du mal div. Varianten ausprobierst dann kann man unter=

>> Umstaenden über die Länge des verschluesselten Passwortes bzw. ü=
ber
>> die verwendeten Zeichen ein Paar Rueckschluesse ziehen.
>
> Also ich für den Benutzer testzugang das Passwort test gewählt, die=
ses
> steht nun in der .htpasswd T2gSLNRBmvaE.

Crypt in der Standard Variante.

[o3k]:~ $ php -r 'echo crypt("test", "T2");'
T2gSLNRBmvaE.

Mal http://de2.php.net/crypt angeschaut? Da sind ja div. Ausgaben
abgebildet und es schaut so aus als ob man anhand der Laenge sowie des
Prefix auf den Typ schliessen koennte.

Allerdings must du doch einen Default festlegen, weil sonst kannst du
keine Benutzer hinzufuegen bzw. den ersten anlegen wenn die Datei leer is=
t.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 13:33 ] [ ID #1823501 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l9rccF765kkU1 [at] mid.individual.net...

>Crypt in der Standard Variante.

>[o3k]:~ $ php -r 'echo crypt("test", "T2");'
>T2gSLNRBmvaE.

Ok so kann ich aufjedenfall die Passwortänderung machen.


>Allerdings must du doch einen Default festlegen, weil sonst kannst du
>keine Benutzer hinzufuegen bzw. den ersten anlegen wenn die Datei leer
>ist.

Ich habe das Script von http://de2.php.net:80/crypt getestet.

Bei mir werden nur die Werte von Standard DES und MD5 ausgegeben. Also
werden diese nur bei mir unterstütz?! Wie setze ich denn nun einen
Default Wert?

Stefan
Stefan Becker [ Di, 18 September 2007 14:01 ] [ ID #1823503 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l9rccF765kkU1 [at] mid.individual.net...
>
>> Crypt in der Standard Variante.
>
>> [o3k]:~ $ php -r 'echo crypt("test", "T2");'
>> T2gSLNRBmvaE.
>
> Ok so kann ich aufjedenfall die Passwortänderung machen.

*Hier* wird keine Aenderung durchgefuehrt in dem der User geloescht und
erneut Angelegt wird. Da die beiden Funktionen auch gebraucht wurden.
Nur so als Hinweis.

>
>> Allerdings must du doch einen Default festlegen, weil sonst kannst du =

>> keine Benutzer hinzufuegen bzw. den ersten anlegen wenn die Datei leer=

>> ist.
>
> Ich habe das Script von http://de2.php.net:80/crypt getestet.
>
> Bei mir werden nur die Werte von Standard DES und MD5 ausgegeben. Also =

> werden diese nur bei mir unterstütz?! Wie setze ich denn nun einen
> Default Wert?

Mit Default meinte ich eine default Methode... und in deinem Falle also
DES_STD. Wenn dein Script nur eine Methode unterstuetzen soll dann
kannst du das ja auch so hart verdrahten.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 14:27 ] [ ID #1823507 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5l9rccF765kkU1 [at] mid.individual.net...

Ich glaube ich spinne. Ich habe das nochmal gemacht

htpasswd da kam dann IBjjyLCOUx/YC raus und dann nochmal
htpasswd -d jTWehyaJGuH98

wie kam denn vorhin das T2 da rein?

Stefan
Stefan Becker [ Di, 18 September 2007 14:35 ] [ ID #1823512 ]

Re: Finden von Angaben

Stefan Becker schrieb:

> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l9rccF765kkU1 [at] mid.individual.net...

Ja, was schrieb er denn?

> Ich glaube ich spinne. Ich habe das nochmal gemacht
>
> htpasswd da kam dann IBjjyLCOUx/YC raus und dann nochmal
> htpasswd -d jTWehyaJGuH98
>
> wie kam denn vorhin das T2 da rein?

Vielleicht hättest Du dem Link mal folgen sollen, den Joerg in seinem
Posting genannt hat. Dort steht auch etwas zum Thema "salt" und was
passiert, wenn man das nicht nutzt.

Gruß. Claus
Claus Reibenstein [ Di, 18 September 2007 14:50 ] [ ID #1823514 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5l9rccF765kkU1 [at] mid.individual.net...
>
> Ich glaube ich spinne. Ich habe das nochmal gemacht
>
> htpasswd da kam dann IBjjyLCOUx/YC raus und dann nochmal
> htpasswd -d jTWehyaJGuH98
>
> wie kam denn vorhin das T2 da rein?

Du hast das Salz in der Suppe vergessen. *SCNR*

Durch die initialisierung mit einem Zufallswert wird erreicht das man
nicht den gleichen Wert 2x erhaelt. Waere doch unschoen wenn du auf die
schnelle sehen koenntest wer alles das Passwort 'test' hat.

[o3k]:~ $ php -r 'echo crypt("test");'
UFXgENIWtgO0s
[o3k]:~ $ php -r 'echo crypt("test");'
rKgG7diHIOoms

Und nun mit einem SALT
[o3k]:~ $ php -r 'echo crypt("test", "rK");'
rKgG7diHIOoms

Die Laenge des Initialisierungstring bestimmt auch den Typ (Crypt
standard vs. extended)

Evtl. solltest du nochmal genau zu CRYPT nachlesen.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 15:52 ] [ ID #1823518 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5la3grF743fdU1 [at] mid.individual.net...

>Durch die initialisierung mit einem Zufallswert wird erreicht das man
>nicht den gleichen Wert 2x erhaelt. Waere doch unschoen wenn du auf die
>schnelle sehen koenntest wer alles das Passwort 'test' hat.

Da bitte ich auch drum ;-)

Kollege und ich haben diesen Quelltext verwendet:
<?php
$neuesKennwort = "test";
if (CRYPT_STD_DES == 1) {echo crypt($neuesKennwort);}

?>

Nun hat es auf einem Strato Webhosting Paket getest: WksEnXUjLgw.Y
Nun hab ich das bei mir gemacht: $1$SpC9t1VK$uq1ninAvBbkwBZ/S4sQGg/

Da frage ich mich also, wieso das so ist und wo man das einstellen kann?
Wenn ich also auf die 13 Stellen kommen möchte, muss ich den Salt mit
zwei stellen angeben. Dadurch werden aber die Passwörter immer mit der
gleichen Kombinationen anfangen?

Stefan
Stefan Becker [ Di, 18 September 2007 17:13 ] [ ID #1823522 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5la3grF743fdU1 [at] mid.individual.net...
>
>> Durch die initialisierung mit einem Zufallswert wird erreicht das man =

>> nicht den gleichen Wert 2x erhaelt. Waere doch unschoen wenn du auf
>> die schnelle sehen koenntest wer alles das Passwort 'test' hat.
>
> Da bitte ich auch drum ;-)
>
> Kollege und ich haben diesen Quelltext verwendet:
> <?php
> $neuesKennwort =3D "test";
> if (CRYPT_STD_DES =3D=3D 1) {echo crypt($neuesKennwort);}
>
> ?>
>
> Nun hat es auf einem Strato Webhosting Paket getest: WksEnXUjLgw.Y
> Nun hab ich das bei mir gemacht: $1$SpC9t1VK$uq1ninAvBbkwBZ/S4sQGg/
>
> Da frage ich mich also, wieso das so ist und wo man das einstellen kann=
?

Das bedeutet das dein Strato Paket kein Extended unterstuetzt und drum
das Standard nimmt. Deine Maschine aber unterstuetzt das und benutzt das =

als Default.

> Wenn ich also auf die 13 Stellen kommen möchte, muss ich den Salt mit=

> zwei stellen angeben. Dadurch werden aber die Passwörter immer mit de=
r
> gleichen Kombinationen anfangen?

In dem du einen Zufallsstring erzeugtst welcher 2 Zeichen lang ist.


<code>
$text =3D range('a', 'z') + range('A', 'Z');
$salt =3D '';
$max =3D count($text);
for($i =3D 0; $i < 2; $i++){
$rand =3D rand(0, $max - 1);
$salt .=3D $text[$rand];
}
$pass =3D crypt($password, $salt);
</code>

Gruss
Joerg

ps: Hatte ich dir meine KTN schon geschickt oder bezahst du ueber meine
Amazon Whishlist?

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 17:41 ] [ ID #1823525 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5la9tcF788jcU1 [at] mid.individual.net...

>Das bedeutet das dein Strato Paket kein Extended unterstuetzt und drum
>das Standard nimmt. Deine Maschine aber unterstuetzt das und benutzt
>das als Default.

OK, aber kann ich das denn irgendwo auf dem Server einstellen?


>In dem du einen Zufallsstring erzeugtst welcher 2 Zeichen lang ist.
[..]
Auf den waren wir auch schon gestoßen, ich wollte aber erstmal Klarheit
haben, warum dies so ist ....

> ps: Hatte ich dir meine KTN schon geschickt oder bezahst du ueber
> meine Amazon Whishlist?

Ich könnte etwas Obst anbieten.... mehr hat ein armer Student nicht.....
Ich danke dir aber recht Herzlich für deine Hilfe.

Stefan
Stefan Becker [ Di, 18 September 2007 19:38 ] [ ID #1823531 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5la9tcF788jcU1 [at] mid.individual.net...
>
>> Das bedeutet das dein Strato Paket kein Extended unterstuetzt und drum=

>> das Standard nimmt. Deine Maschine aber unterstuetzt das und benutzt
>> das als Default.
>
> OK, aber kann ich das denn irgendwo auf dem Server einstellen?

Nein, die Faehigkeit wird überprueft wenn PHP compiliert wird und sowie=

es ausschaut gibts das auf dem OS deinen Hosters nicht.

Spielt doch auch keine Rolle da du ja das Standard Crypt nehmen must.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Di, 18 September 2007 20:25 ] [ ID #1823533 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5lajhfF7775fU1 [at] mid.individual.net...

>Nein, die Faehigkeit wird überprueft wenn PHP compiliert wird und sowie
>es ausschaut gibts das auf dem OS deinen Hosters nicht.

Ok nun haben wir das Passwort generiert. Jetzt muss ja die Datei wieder
in den ursprünglichen Zustand zusammengebaut werden. Die Fkt. merge()
ist wahrscheinlich nicht zu gebrauchen?! Jeder Benutzer hat ja jetzt ein
eigenes Array, kann ich trotzdem mit einer foreach Schleife
drüberlaufen?

Stefan
Stefan Becker [ Mi, 19 September 2007 09:30 ] [ ID #1824427 ]

Re: Finden von Angaben

Stefan Becker schrieb:
>
> "Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
> news:5lajhfF7775fU1 [at] mid.individual.net...
>
>> Nein, die Faehigkeit wird überprueft wenn PHP compiliert wird und
>> sowie es ausschaut gibts das auf dem OS deinen Hosters nicht.
>
> Ok nun haben wir das Passwort generiert. Jetzt muss ja die Datei wieder=

> in den ursprünglichen Zustand zusammengebaut werden. Die Fkt. merge()=

> ist wahrscheinlich nicht zu gebrauchen?! Jeder Benutzer hat ja jetzt ei=
n
> eigenes Array, kann ich trotzdem mit einer foreach Schleife drüberlau=
fen?

fopen, fwrite und foreach. Alternativ den Inhalt als String komplett
zusammen bauen und put_file_contents() benutzen. Hier wird aber ein temp =

File erstellt und dann mit fwrite zeilenweise reingeschrieben.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mi, 19 September 2007 10:29 ] [ ID #1824428 ]

Re: Finden von Angaben

"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5lc4v2F7aan1U1 [at] mid.individual.net...

>fopen, fwrite und foreach. Alternativ den Inhalt als String komplett
>zusammen bauen und put_file_contents() benutzen. Hier wird aber ein
>temp File erstellt und dann mit fwrite zeilenweise reingeschrieben.

So bekomme ich schon mal die Datei hin:

//Datei wieder zusammenführen
$NeuePasswortDatei = 0;
//print_r ($users);
foreach($users as $i)
{
//print_r ($i);
$NeuePasswortDatei .= $i['username'].':'.$i['password'].'\n';

}

echo $NeuePasswortDatei;

Aber wieso macht er mir keinen Zeilenumbruch? Und am Anfang der Ausgabe
steht eine 0, woher kommt diese??

Stefan
Stefan Becker [ Mi, 19 September 2007 19:57 ] [ ID #1824455 ]
PHP » de.comp.lang.php.misc » Finden von Angaben

Vorheriges Thema: php4 und/oder php5 mit Apache2
Nächstes Thema: Formularprüfung