Ver Mensaje Individual
  #1  
Antiguo 05-11-2013
georkis georkis is offline
Miembro
 
Registrado: abr 2008
Ubicación: Cuba
Posts: 39
Reputación: 0
georkis Va por buen camino
Talking Problemas con la función explode();

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"), 08);
    
$len strlen($passwd);
    
$text $passwd.'$apr1$'.$salt;
    
$bin pack("H32"md5($passwd.$salt.$passwd));
    for(
$i $len$i 0$i -= 16) { $text .= substr($bin0min(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($delimitadorfile_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...
Responder Con Cita