Ik wil in een pagina mijn .htpasswd includen om hem zo in te kunnen lezen (beveiligd in mijn "admin"), echter zit hier geen <br> in en zet hij alles achter elkaar aan één stuk door.

Iemand een idee hoe ik die regels onder elkaar kan krijgen?
<?php nl2br(); ?>
Kun je iets duidelijker zijn over wat je ermee wilt doen? Wil je het weergeven of er data uithalen?
ik wil graag mijn .htpasswd op mijn pagina weergeven, zodat ik de namen van de gebruikers kan zien, nu staat er als ik .htpasswd include:

Ivo:kjh67dxfg76btdsn7fg Piet:ni678f7gfx7ne8x7 Karel:n8734tn37gn6f67 Arie:md,879t98nd

ik wil graag op die pagina zien:

Ivo:kjh67dxfg76btdsn7fg
Piet:ni678f7gfx7ne8x7
Karel:n8734tn37gn6f67
Arie:md,879t98nd

Om misschien nog liever:
Ivo
Piet
Karel
Arie
staat die informatie ook in je database?
of hoe verwerk je hem in je website?
Dan is dit makkelijker denk ik:
<?php
$file = file_get_contents('.htpasswd');
$parts = explode(':',$file);
$count = count($parts);
for($i=0;$i<$count;$i++)
{
if($i % 2 == 0)
{
echo $parts[$i].'<br />';
}
}
?>
Daar zeg je wat sander_b, zat ik ook al aan te denken..... weet iemand ook ergens een script dat van bijvoorbeeld een mysql database met:

naam
wachtwoord

deze kan omzetten naar een .htpasswd file?

dan kan ik deze database gewoon bijhouden, met de orginele wachtwoorden, en dan iedere keer als ik die php laadt, dat hij dan de gehele .htpasswd overschrijft met de gegevens uit de database.

Iemand een idee? Ik heb zitten zoeken, al een tijdje, maar ik kan niets vinden wat daar normaal antwoord op kan geven.
Het zou logischer zijn om je authenticatie dan door de db te laten doen, maar goed:

<?php
$sql = "
SELECT username, password
FROM tabel
ORDER BY username ASC
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
$fp = fopen ('.htpasswd', 'wb');
while ($row = mysql_fetch_assoc ($res)) {
fputs ($fp, $row['username'] . ':' . $row['password']);
}
fclose ($fp);
}
?>
code niet getest
Jan Koehoorn:

Je zij dat het logischer zou zijn om mijn authenticatie dan door de db te laten doen.

Wat ik eigenlijk wil is een database met de gegevens van mijn:

naam bv. ivo
wachtwoord bv. ivoww

dat hij deze dus in een .htpasswd bestand zet,

en elke keer als ik een nieuw naam en wachtwoord aan maak, dat ik dan die phpfile kan draaien om de gele database het bestand .dbpasswd te laten over schrijven.

echter wat ik nu van jou heb gekregen was op zich prima, alleen het wachtwoord "ivoww" word natuurlijk gewoonlijk omgezet naar bijvoor beeld
$1$lmKRdiAn$lE93OYufZLo9P5fJG5HgR0 dat moet ook in de .htpasswd komen wil het gaan werken.

weet jij heel toevallig een script hier voor?
Dat is waarschijnlijk een md5- of een sha1-hash. Als je het op die manier in de database opgeslagen hebt kun dat niet omdraaien (of heel moeilijk, via bruteforce scripts).

Een .htpasswd bestand eist geloof ik dat de password letterlijk overeenkomen met wat er in het bestand staat. Je zou dus de originele passworden (niet de gehashte) in het .htpasswd bestand moeten zien te krijgen, maar dat gaat niet lukken denk ik.

Een alternatief is een inlogscript schrijven dat controleert via je MySQL tabel.
http://modauthmysql.sourceforge.net/

Mocht je toevallig je eigen webserver draaien.. Is dit je directe oplossing. Het vereist nog wel even wat puzzelwerk.

http://www.thewebmasters.net/php/Htpasswd.phtml
Een class om ze zelf te brouwen, OO, best aardig. Wat htacess gebruikt is een DES, SHA of MD5 Hash als ik me niet vergis, in elk geval best een rare hash. (wel een hash, geen encryptie in elk geval).

Het makkelijkste is eigenlijk om gewoon het commando 'htpasswd' te gebruiken om die files aan te maken.

Reageren