Ayuda con PHP!!!

yonkispucela

RangoClásico
Registro
23 Ago 2003
Mensajes
3.727
Reacciones
37
Por si hay algún gurú del tema.
A ver tengo este código, lo que quiero saber es la estructura del fichero passwd.txt que incluirá unas claves de usuario para que entren. Y donde lo tengo que situar, porque me resulta imposible. Le he dado 100 vueltas y no consigo hacerlo. Socorro!!!

<?
$data['guest'] = 'guest';
$data['admin'] = '../content/';
$data['pain'] = '../content/';
$data['test'] = '../content/Nosotros/';
$data['mjau'] = '../content/Varios/';


$pass=strtolower($_GET['pass']);
/*$dfile='passwd.txt';
if($lines = @file($dfile) or die('none')) {



foreach($lines as $str) {
list($key,$var)= explode("\t", $str);
$data[$key]=$var;

}
*/

echo 'success=';
if(!$data[$pass]) { echo 'none'; }
else{ echo urlencode($data[$pass]); }

// }

?>
 
yonkispucela rebuznó:
Por si hay algún gurú del tema.
A ver tengo este código, lo que quiero saber es la estructura del fichero passwd.txt que incluirá unas claves de usuario para que entren. Y donde lo tengo que situar, porque me resulta imposible. Le he dado 100 vueltas y no consigo hacerlo. Socorro!!!

<?
$data['guest'] = 'guest';
$data['admin'] = '../content/';
$data['pain'] = '../content/';
$data['test'] = '../content/Nosotros/';
$data['mjau'] = '../content/Varios/';


$pass=strtolower($_GET['pass']);
/*$dfile='passwd.txt';
if($lines = @file($dfile) or die('none')) {



foreach($lines as $str) {
list($key,$var)= explode("\t", $str);
$data[$key]=$var;

}
*/

echo 'success=';
if(!$data[$pass]) { echo 'none'; }
else{ echo urlencode($data[$pass]); }

// }

?>

Si le quitases las lineas de comentario igual iria :D :
/* comentario
multilineal */
 
Pues es verdad, vaya fallo mas tonto. Voy a probarlo ahora mismo, aun así no tengo muy claro lo de la estructura del fichero.
 
vayamos por partes como decia jack el destripador
primero, no te recomiendo que guardes contraseñas en un fichero de texto plano por los motivos de seguridad que implica, a menos que asignes correctamente los permisos cualquiera los podria ver, e incluso se podria ver desde fuera si esta dentro del ambito que permita el servidor web
yo te recomendaria guardarlas en un fichero php como variables facilitandote asi el sistema de autenticacion
las contraseñas deberian estar encriptadas(con md5 bastaria, ya que solamente se van a hacer comparaciones)
tampoco te recomiendo que hagas la validacion de usuario por GET, ya que muchos navegadores guarda las direcciones visitadas, de tal manera que simplemente viendo el historial se podria entrar
por lo tanto, se podria tener el fichero users.php:
Código:
<?
    $users = Array();
    $users['paquito']       = "f1aaaa4510293f29504303fc3111a7ae"; // password: paquito
    $users['chocolatero']   = "f156ef09c76279d3a3903c39bbbb5ee5"; // password: chocolatero
?>

y luego el propio fichero que se encargase de hacer la validacion(login.php por ej.):
Código:
<?
    include "users.php";
    $login      = isset($_REQUEST['login'])?$_REQUEST['login']:"";
    $password   = isset($_REQUEST['pass'])?$_REQUEST['pass']:"";
    
    $logged     = false;
    
    if (array_key_exists($login, $users) 
        && $users[$login] == md5($password))
    {
        $logged = true;
    }
    
    if ($logged)
    {
        echo "ya estas dentro";
    }
    else
    {
        echo "a la puta calle";
    }
    
?>

asi, simplemente comprobamos que el usuario existe dentro de los usuarios permitidos y ademas si la contraseña concuerda con la introducida desde el navegador, ahorrandote tener que leer cada linea de fichero
si haces una llamada a login.php?login=paquito&pass=paquito veras que te dejara, pero si pruebas otra combinacion de login/pass pues ya no

espero que te sirva
 
bmsv rebuznó:
vayamos por partes como decia jack el destripador
primero, no te recomiendo que guardes contraseñas en un fichero de texto plano por los motivos de seguridad que implica, a menos que asignes correctamente los permisos cualquiera los podria ver, e incluso se podria ver desde fuera si esta dentro del ambito que permita el servidor web
yo te recomendaria guardarlas en un fichero php como variables facilitandote asi el sistema de autenticacion
las contraseñas deberian estar encriptadas(con md5 bastaria, ya que solamente se van a hacer comparaciones)
tampoco te recomiendo que hagas la validacion de usuario por GET, ya que muchos navegadores guarda las direcciones visitadas, de tal manera que simplemente viendo el historial se podria entrar
por lo tanto, se podria tener el fichero users.php:
Código:
<?
    $users = Array();
    $users['paquito']       = "f1aaaa4510293f29504303fc3111a7ae"; // password: paquito
    $users['chocolatero']   = "f156ef09c76279d3a3903c39bbbb5ee5"; // password: chocolatero
?>

y luego el propio fichero que se encargase de hacer la validacion(login.php por ej.):
Código:
<?
    include "users.php";
    $login      = isset($_REQUEST['login'])?$_REQUEST['login']:"";
    $password   = isset($_REQUEST['pass'])?$_REQUEST['pass']:"";
    
    $logged     = false;
    
    if (array_key_exists($login, $users) 
        && $users[$login] == md5($password))
    {
        $logged = true;
    }
    
    if ($logged)
    {
        echo "ya estas dentro";
    }
    else
    {
        echo "a la puta calle";
    }
    
?>

asi, simplemente comprobamos que el usuario existe dentro de los usuarios permitidos y ademas si la contraseña concuerda con la introducida desde el navegador, ahorrandote tener que leer cada linea de fichero
si haces una llamada a login.php?login=paquito&pass=paquito veras que te dejara, pero si pruebas otra combinacion de login/pass pues ya no

espero que te sirva

Muy completo el post , pero yo recomendaria usar base de datos , puesto que son mucho mas comodas de usar (db5, mysql, ...) , y las paginas tardan menos en generarse que con includes.
yonkispucela , si no te tienes el php bien aprendido , te recomiendo que uses un par de IF's para ver si el usuario y el pass son correctos y no te compliques la vida. Pero en cambio , si es para una web de mucho uso , te recomiendo que uses la funcion md5() , como bien bmsv dice.

En lo de $_GET[] tambien le doy la razon , puesto que es muy inseguro para los usuarios que acceden desde un sitio compartido con otros usuarios. Yo que tu usaria $_REQUEST[] acompañado de <form method="post">.
 
El tema está aquí, es un scrip completo para hacer galerías de imágenes con php

https://www.mjau-mjau.com/docs/

Es para hacer una galería de imágenes.
He hecho todo lo que pone, pero al entrar en el panel de administración no logro entrar como administrador y no me lee el directorio de fotos. Los permisos y la estructura están bien asignados. Así que me estoy haciendo la picha un lío
 
yonkispucela rebuznó:
El tema está aquí, es un scrip completo para hacer galerías de imágenes con php

https://www.mjau-mjau.com/docs/

Es para hacer una galería de imágenes.
He hecho todo lo que pone, pero al entrar en el panel de administración no logro entrar como administrador y no me lee el directorio de fotos. Los permisos y la estructura están bien asignados. Así que me estoy haciendo la picha un lío

Solo te digo que el login va por FLASH , por lo tanto olvidate de lo que te hemos dicho de GET y POST. Lo mejor que puedes hacer es , ir a Hot Scripts - The net's largest PHP, CGI, Perl, JavaScript and ASP script collection and resource web portal. y buscarte una galeria de fotos mas simple. :D
 
Arriba Pie