Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: pedraxito en 24 Abril 2007, 05:52 am



Título: usuarios en PHP
Publicado por: pedraxito en 24 Abril 2007, 05:52 am
hola que tal, soy nuevo en esto de programacion en PHP, y ando buscando algun manual para poder crear una pagina donde pueda hacer que un usuario inicie session y pueda ver sus datos, etc, etc y claro, tambien el cerrar esa sesion

gracias!! espero haberme explicado jeje


Título: Re: usuarios en PHP
Publicado por: sirdarckcat en 24 Abril 2007, 06:38 am
no lo probé.. deberia funcionar xD
usuario:  prueba
passwrd: prueba

login.php
Código:
<?php
session_start();
$password['prueba']="c893bad68927b457dbed39460e6afd62";
if(isset($_GET['u'])){
   if($password[$_GET['u']]==md5($_GET['p'])){
      $_SESSION['login']=$_GET['u'];
      header("location: main.php");
   }
}
?>
Error

index.php
Código:
<form action="login.php">
Usuario:<input type=text name=u>
Pass:<input type=password name=p>
<input type=submit>
</form>

main.php
Código:
<?php
session_start();
if(isset($_SESSION['login'])){
echo "tu eres {$_SESSION['login']}.";
exit;
}
?>
Error


Título: Re: usuarios en PHP
Publicado por: pedraxito en 24 Abril 2007, 08:35 am
gracias, lo checare ...  ;D


Título: Re: usuarios en PHP
Publicado por: pedraxito en 24 Abril 2007, 17:45 pm
hola que tal, estaba probando el codigo que me pasaste pero al correrlo en el navegador me marca este error

Código:
arning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/local/apache2/htdocs/sistema/index.php:16) in /usr/local/apache2/htdocs/sistema/index.php on line 28

Código:
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache2/htdocs/sistema/index.php:16) in /usr/local/apache2/htdocs/sistema/logIn.php on line 27
bienvenido


sera algo de confiugracion del php.ini???? o que sera?


Título: Re: usuarios en PHP
Publicado por: alone-in-the-chat en 24 Abril 2007, 20:16 pm
Ni siquiera te tomaste la molestia de buscar en google ...
ese error se da cuando ya se han enviado cabeceras al navegador puede que x alli estes enviando un espacio en  blanco o cualkier cosa , antes de enviar cualkier cosa al navegador debes de usar la funcion session_start()

Saludos.


Título: Re: usuarios en PHP
Publicado por: eLank0 en 24 Abril 2007, 22:37 pm
Trabaja con las sesiones y/o cookies antes de la etiqueta <html>.

S2


Título: Re: usuarios en PHP
Publicado por: pedraxito en 25 Abril 2007, 08:37 am
ya lo hice eLanK0, pero aunasi me marca ese error ...

mira, tengo mi pagina index.php y dentro de esa pagina incluyo el codigo de login.php ( include "login.php"; ) que es donde tengo mi formulario y el codigo para iniciar sesion, y cuando ya hago el inicio de sesion me marcar ese error ...


Título: Re: usuarios en PHP
Publicado por: pedraxito en 26 Abril 2007, 19:17 pm
ahora si ... ya pude jeje. esque todavia soy novato en php pero ya pude resolver el problema .. en lugar de usar variables de sesion estoy usando cookies

gracias !


Título: Re: usuarios en PHP
Publicado por: sirdarckcat en 27 Abril 2007, 03:10 am
pues eso es inseguro.. :P
las cookies las puede modificar el usuario, pero las sesiones no.. (sera¿? :o! ¬¬ hardenedphp tiene algo nuevo :P)

Saludos!!


Título: Re: usuarios en PHP
Publicado por: pedraxito en 27 Abril 2007, 17:48 pm
a okok .. oye pero en las cookies solo estoy guardando el usuario y la contrase~a, ahi si el usuario las cambia el unico problema que veo yo esque tendria que volver a iniciar sesion, no? o habra algun otro problema?


Título: Re: usuarios en PHP
Publicado por: LuffyFF en 27 Abril 2007, 20:33 pm
pedraxito, depende.

Si compruebas los datos con la DB o sea...

haciendo que el password de la COOKIE sea igual al que esta guardado en la base de datos segun el usuario que esta almacenado en la cookie USUARIO, entonces se tendria que volver a loggear.

Pero si no lo validas, y el usuario cambia el valor de la cookie de usuario, podria actuar de cualquier usuario.

Salu2.


Título: Re: usuarios en PHP
Publicado por: pedraxito en 28 Abril 2007, 03:13 am
ok .. entonces para el usuario seria transparente, me refiero a que cada vez que entre a la pagina mientras no haya expirado la sesion el seguira logeado, pero yo debo de comprobar su usuario y contrase~a en cada pagina que sea solo para usuarios logeados .... estoy en lo correcto?

nota: los usuarios y passwords si lo estoy sacando de una DB

gracias! ;D


Título: Re: usuarios en PHP
Publicado por: LuffyFF en 28 Abril 2007, 04:47 am
Si.

SESSION dura hasta que se cierre el navegador.

Y COOKIE queda almacenado por un tiempo definido por tu, un dia, un mes, un año, un minuto, etc.

De todso modos lo mejor es siempre validar.
Por ej, que la COOKIE usuario y COOKIE contraseña sean validas con el respectivo usuario.

A lo mejor podrías cifrar los datos también para que sea más dificil.

Algo simple.
Guardar en la COOKIE el md5 del usuario y el md5 del password.
Luego, comprobar que el valor que este en las COOKIES sea igual al md5 de lo que esta en la base de datos.
y si tienes la contraseña en la base de datos cifrada por ej. en md5, pues haces un doble md5, y puedes hacerte tu propio algoritmo para eso, md5, md5, md5, base64, y algún otro calculo. O hacer el md5 del md5 del md5 del md5, etc XD

Saludos.


Título: Re: usuarios en PHP
Publicado por: pedraxito en 28 Abril 2007, 05:42 am
que bien, y para utilizar el md5 en la base de datos (mysql) como es que tengo que hacerlo ahi?


Título: Re: usuarios en PHP
Publicado por: LuffyFF en 28 Abril 2007, 07:35 am
Demasiado simple.

Por ej.
Al registrar un usuario seguramente haya un query de INSERT.

Y que inserte en el campo contraseña, la contraseña que inserto el usuario.

Pues simplemente, conviertes la contraseña en md5.

La funcion es md5();

O sea,
$password = md5($_POST["CAMPO_DE_PASSWORD"]);

Haria que la variable $password fuera el MD5 de lo que inserto el usuario y luego te queda poner la variable $password en el query de INSERT.

Y para verificar al loggear, simple.

Que lo que ingrese el usuario se transforme a MD5 y se compare con el que esta en la base de datos.

Y para las cookies seria lo mismo, a menos que dejes el MD5 original como COOKIE.

Salu2.


Título: Re: usuarios en PHP
Publicado por: pedraxito en 28 Abril 2007, 07:48 am
ah okok ... ya entendi, bueno, no se de donde seas tu pero yo estoy en mexico y ya es tarde jeje, asi que ya me voy a dormir ... ma~ana posteo como me va  ;D

muchas gracias!!


Título: Re: usuarios en PHP
Publicado por: pedraxito en 30 Abril 2007, 04:38 am
muchas gracias Mugiwara ... hasta ahorita me va muy bien ... ya tengo las passwords con md5, solo me falta ponerle a las cookies algun tipo de encriptacion ...

tengo una duda sobre mysql . yo ahorita mientras desarrollo la pagina me estoy conectando desde la pagina como root ... mi duda es, esto no es recomendable?? tambien me podrias pasar alguna pagina donde pueda leer mas acerca de esto .. ;D

gracias por tu ayuda


Título: Re: usuarios en PHP
Publicado por: LuffyFF en 30 Abril 2007, 08:42 am
Estas en un servidor local?

Igual, si solo tu accedes no pasa nada.

Puedes ponerle una contraseña al usuario root de mysql y listo. Puedes hacerlo con el mysqld o mysqladmin o phpmyadmin.

Salu2.


Título: Re: usuarios en PHP
Publicado por: pedraxito en 30 Abril 2007, 16:29 pm
si, estoy en un servidor local y ya tengo clave en el usuario de root
 ;D

bueno, voy a seguirle con la pagina  ::) y si me atoro regreso aqui jeje

gracias por la ayuda