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
no lo probé.. deberia funcionar xD
usuario: prueba
passwrd: prueba
login.php
<?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
<form action="login.php">
Usuario:<input type=text name=u>
Pass:<input type=password name=p>
<input type=submit>
</form>
main.php
<?php
session_start();
if(isset($_SESSION['login'])){
echo "tu eres {$_SESSION['login']}.";
exit;
}
?>
Error
gracias, lo checare ... ;D
hola que tal, estaba probando el codigo que me pasaste pero al correrlo en el navegador me marca este error
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
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?
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.
Trabaja con las sesiones y/o cookies antes de la etiqueta <html>.
S2
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 ...
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 !
pues eso es inseguro.. :P
las cookies las puede modificar el usuario, pero las sesiones no.. (sera¿? :o! ¬¬ hardenedphp tiene algo nuevo :P)
Saludos!!
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?
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.
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
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.
que bien, y para utilizar el md5 en la base de datos (mysql) como es que tengo que hacerlo ahi?
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.
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!!
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
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.
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