Bueno, estoy haciendo una script que crea usuario en el fichero .htpasswd, para encryptar contraseña... ya logré que abra el fichero y me lee el contenido del fichero, ahora lo que quiero es que haga una lista con los usuarios solamente hasta el delimitador ":", porque apartir de los dos punto es que comienza la contraseña... esta script cuando pongo la array $list[0]; me pone el usuario, pero cuando le pongo $list[$i], me pone la contraseña... este es el código...
Código PHP:
<?php
$passwd ="hunter"; //poner $_POST['usuario']
$user="koko.santiesteban"; // poner $_POST['passwd']
$salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);
$len = strlen($passwd);
$text = $passwd.'$apr1$'.$salt;
$bin = pack("H32", md5($passwd.$salt.$passwd));
for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $passwd{0}; }
$bin = pack("H32", md5($text));
for($i = 0; $i < 1000; $i++) {
$new = ($i & 1) ? $passwd : $bin;
if ($i % 3) $new .= $salt;
if ($i % 7) $new .= $passwd;
$new .= ($i & 1) ? $bin : $passwd;
$bin = pack("H32", md5($new));
}
for ($i = 0; $i < 5; $i++) {
$k = $i + 6;
$j = $i + 12;
if ($j == 16) $j = 5;
@$tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
}
$tmp = chr(0).chr(0).$bin[11].$tmp;
$tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
$path="user";
//Encripto la contraseña conMD5
//Defino la cadena a insertar en el archivo
$cadena=$user.":"."$"."apr1"."$".$salt."$".$tmp."\r\n";
//Inserto un nuevo registro
//Abro el fichero htpasswd
$Anadir=fopen($path, "a");
$lines=count(explode("\n", file_get_contents($path))); //cuenta las lineas del fichero para
#Escribimos la cadena dentro de el
$delimitador = ":";
fputs($Anadir, $cadena);
#$list = explode($delimitador,$contenido);
for ($i=0; $i<$lines; $i++){
$list=explode($delimitador, file_get_contents('user'));
echo $list[$i]. "<br>";
}
#Cerramos el fichero
fclose($Anadir);
?>
Bueno, espero que me ayuden... la script le falta... validación si el usuario existe... modificar y eliminar... pero estoy trabajando en eso...