Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jamarchi en 30 Marzo 2007, 22:10 pm



Título: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 30 Marzo 2007, 22:10 pm
Hola gente.....   ;D

Tengo que hacer lo siguiente.... mi cliente quiere que si el usuario no esta logueado no pueda ver ninguna informacion del sitio web (alrededor de 15 paginas), osea que no pueda ver nada de la pagina 13 sin estar logueado.....

Realmente soy nuevo en este tema de la seguridad y nunca he hecho nada parecido.....   :huh:

lo que tengo por el momento hecho es el registro de los usuarios en una base de datos.....

Quisiera que me ayudaran a ver que puedo utilizar para realizar esto

De antemano mil gracias.....  ;D

Saludos , 


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 30 Marzo 2007, 22:38 pm
Bien, ahora lo que tienes que hacer es el logueo y aqui te hago un codigo improvisado que tenia por ahi (mejoralo si quieres):
Código:
<?php
if($_POST["entrar"]){

if($_POST["username"] && $_POST["password"]){

$contraseña = md5("$_POST[password]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo

$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]' or email='$_POST[username]'");
$datos = mysql_fetch_array($query);

if($datos[contraseña] == $contraseña){ // si las pass son =
// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("contraseña",$contraseña,time()+90000);

if($HTTP_REFERER){ // lo redirige
header("Location: $HTTP_REFERER");
} else {
header("Location: TUPAGINADEINICIO.htm");
}

} else {

echo "La contraseña es incorrecta";

}

} else {

echo "Faltan campos por rellenar";

}

} else {

echo "Estas haciendo un uso indevido del login";

}
?>


Y ahora ya tienes el usuario logueado y con las cookies calentitas y dispuestas a ser usadas, entonces entramos a la proteccion de las paginas:

Código:
<?php
if($_COOKIE[id]) {

// Aqui va el codigo que quieras proteger

} else {

echo "Solo los usuarios registrados pueden acceder a esta sección";

}//Fin
?>

Y por ultimo, esto no lo pedias pero creo que te hara falta asique ahi va el deshacedor de las cookies o el logout:

Código:
<?php
if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[contraseña]){

setcookie("id");
setcookie("nick");
setcookie("contraseña");

if($HTTP_REFERER){
header("location: $HTTP_REFERER");
} else {
header("location: TUPAGINADEINICIO.htm");
}


} else {


echo "No estas logueado!";

}
?>

En todos los archivos debes incluir la conexion a la base de datos.

Para utilizar los datos del usuario mediante las cookies lo pones asi:
Código:
<?php

echo $_COOKIE[id];  //para la id
echo $_COOKIE[nick]; //para el nick
echo $_COOKIE[contrasena];  // para la contraseña, no la utilizes xD

?>

Te recomiendo que los pongas en archivos diferentes y te vayas a ellos mediante por ejemplo para el login la accion del form:
Código:
<form ---->action="lapaginadellogin.php"<----  >

Y ya esta, asiqeu si tienes alguna duda mas solo ponmelo aqui


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 30 Marzo 2007, 22:49 pm

oye Degmaster gracias por la respuesta tan pronto.....

dejame ver si entendi bien.....

Este codigo lo pongo en la pagina de inicio o bien de logueo, cierto ?

Si el password son iguales entonces pone las cookies, cierto ? si no pues no.....

ahora bien.... tnego un par de consultas .....  :huh:
1. Que pase si el usuario se dirire directamente a la pagina 13, por ejemplo, osea.... se salta el logueo y digita directamente la ruta (url) la de pagina 13 ?

2. A que te refieres con header("Location: TUPAGINADEINICIO.htm"); es el indix ?

Gracias   :D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 30 Marzo 2007, 22:52 pm
1. si pones la proteccion antes del codigo del pagineo de contenido es imposible que se salte el login
2. si es el index xD

PD: me faltan cosas en el post, que lo estoy modificando


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 30 Marzo 2007, 22:57 pm
Ya esta todo puesto, y como te he dicho antes, si tienes alguna duda, solo posteala que te la respondere jejej

PD: se me olvidaba, los mysql_query, los modificas a tu gusto que estan puestos para unas tablas ya hechas que tengo asique nada.. suerte!

Un saludo!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 30 Marzo 2007, 23:37 pm
oye Degmaster gracias nuevamente por la respuesta tan pronta.....

Quiero hacer u nresumen para ver si entendi bien todo esto...

en la pagina de logueo o en el index.php tiene que ir esto
Código:
<?php
if($_POST["entrar"]){

if($_POST["username"] && $_POST["password"]){

$contraseña = md5("$_POST[password]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo

$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]' or email='$_POST[username]'");
$datos = mysql_fetch_array($query);

if($datos[contraseña] == $contraseña){ // si las pass son =
// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("contraseña",$contraseña,time()+90000);

if($HTTP_REFERER){ // lo redirige
header("Location: $HTTP_REFERER");
} else {
header("Location: TUPAGINADEINICIO.htm");
}

} else {

echo "La contraseña es incorrecta";

}

} else {

echo "Faltan campos por rellenar";

}

} else {

echo "Estas haciendo un uso indevido del login";

}
?>


ahora bien..... cada pagina de mi sitio... por ejemplo la pagina 13.... llamemosla por ejemplo resumen.php tiene que ir este codigo desde el principio.... de hecho creo que este es el inicio, cierto ?

Código:
<?php
if($_COOKIE[id]) {

// Aqui va el codigo que quieras proteger

} else {

echo "Solo los usuarios registrados pueden acceder a esta sección";

}//Fin
?>


para cada pagina tengo un link o referencia a una pagina logout.php que seria esta
Código:
<?php
if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[contraseña]){

setcookie("id");
setcookie("nick");
setcookie("contraseña");

if($HTTP_REFERER){
header("location: $HTTP_REFERER");
} else {
header("location: TUPAGINADEINICIO.htm");
}


} else {


echo "No estas logueado!";

}
?>


Estoy en lo correcto ?  ;D

Ahora bien.... no me quedo muy claro estas dos cosas.....

Para utilizar los datos del usuario mediante las cookies lo pones asi:

Código:
<?php

echo $_COOKIE[id];  //para la id
echo $_COOKIE[nick]; //para el nick
echo $_COOKIE[contraseña];  // para la contraseña, no la utilizes xD

?>

Te recomiendo que los pongas en archivos diferentes y te vayas a ellos mediante por ejemplo para el login la accion del form:

Código:
<form ---->action="lapaginadellogin.php"<----  >

Esas dos cosas no me quedaron muy claras....  me puedes explicar eso por favor ......

Saludos  ;D



Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: [ Alberto] en 30 Marzo 2007, 23:41 pm
tambien podrias usar variables de sesion y obtienes el mismo resultado que con cokies http://dns.bdat.net/trucos/faqphp-v1/x942.html


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 30 Marzo 2007, 23:46 pm
gracias Alberto..... :D

Pero.... que son variables de sesion....   :o me puedes hechar la manos y explicarme eso de las seciones....

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 31 Marzo 2007, 00:27 am
mejor no liemos las cosas jejeje
vamos a ver
en un formulario cuando le das al boton enviar te redirige a una pagina no? pues eso es el action="" para que te redirija a la pagina de logueo.

A la que la has llamado index.php preferiria que como veo que no eres muy experimentado para hacer cosas "raras" qeu lo pusieses por ejemplo en login.php.
Y como tu has dicho para que el usuario se desconecte haz una referencia al logout.php, antes de nada la proteccion de la pagina no la pongas al principio de cada pagina sino donde sea necesario, ya que puedes mezclar php y htm juntos.

Si hay algo mas en lo que te pueda ayudar... ya sabes


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 31 Marzo 2007, 00:54 am
gracias Alberto..... :D

Pero.... que son variables de sesion....   :o me puedes hechar la manos y explicarme eso de las seciones....

Saludos,  ;D

www.php.net    .... busca ahi todo lo que no entiendas


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 31 Marzo 2007, 02:14 am

Gracias Hans el Topo por ese link..... le voy a hechar un ojo ....   :)

Degmaster, a que te refieres con cosas "raras" jejeje .....

Oye, porque en el index.php no puede ir toda esa parte que me dijiste del logueo ?

Y con respecto a la proteccion de la pagina ..... si no quiero se nada se despliegue..... entonces si va desde el inicio.... ?

Saludos   ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 31 Marzo 2007, 09:54 am

Gracias Hans el Topo por ese link..... le voy a hechar un ojo ....   :)

Degmaster, a que te refieres con cosas "raras" jejeje .....

Oye, porque en el index.php no puede ir toda esa parte que me dijiste del logueo ?

Y con respecto a la proteccion de la pagina ..... si no quiero se nada se despliegue..... entonces si va desde el inicio.... ?

Saludos   ;D

Cosas raras:
Un monton de if's que te hacen la picha un lio y cuando quieres cojer un if cojes otro y eso jode mucho, esto sirve para que pongas por ejemplo dos paginas, por ejemplo tu tienes una sola pagina, pongamos ejemplo.php y en ella tienes un if que si no esta enviado el formulario te sale el formulario y si esta enviado te dice "Que bien", y eso sumado a todos los ifs que tendras, la verdad se hace un poco lioso y si te confundes te hara la puñeta jeje (a mi me ha pasado)

La proteccion de la pagina:
Tu puedes proteger toda la pagina si quieres, pero te recomiendo que al index no se lo pongas desde el principio ya que entonces nadie podria entrar y no se podrian loguear. Te recomiendo si quieres que pongas las protecciones por partes, por ejemplo es una web de bolsa de mercado y tu tienes la pagina web del login en el index.php y nada mas, pues el usuario se loguea y por ejemplo le aparece otra vez el login y abajo sus acciones en el mercado, esto ultimo es lo que esta protegido, asi te recomiendo que protejas cosas del index.

Nada mas que comentar

Un saludo!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Kizar en 31 Marzo 2007, 17:34 pm
Para mi es mejor las sesiones, ya que hace lo mismo crear una cookie, solo que ademas te permite variables globales para cada usuario. Por ejemplo despues de haber inicido la sesion le pones:
Código:
$_SESSION['on'] = true;
Y mientras la sesion este activa en cualkier pagina puedes obtener el balor de $_SESSION['on']...son variables que no se pierden al cambiar de pagina.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 31 Marzo 2007, 17:42 pm
las cookies no se pierden al cambiar de pagina, solo " se pierden" (aveces) si las intentas leer desde un subdominio diferente. EJ: foro1.web.com no puede leer cookies de foro2.web.com


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 31 Marzo 2007, 18:43 pm
Gracias SERBice y KiZaR por sus respuestas y comentarios creanme que en este munde de apreder cosas todos los dias son verdaderamente importantes.....  ;D

Degmaster, una consulta......
Si me que dó claro eso protejer ciertas partes de la pagina, pero ..... si yo pongo la proteccion en varias partes de una misma pagina..... no hay problemas que las cookies se esten repitiendo... _  :huh: y que me salga algun error .....

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 31 Marzo 2007, 19:05 pm
las cookies son globale spar ael dominio, sin importar en que directorio se las consulte/escriba a menos que al crearla especifique a que dominio y directorio pertenece


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 31 Marzo 2007, 20:50 pm
ah ok.... pero entonces...... para ver si entiendo bien..... con el codigo que esta aqui.... esto quiere dedir que si yo pongo una cookie en una pagina y me paso a otra pagina, esa cookie se va a mantener ? osea si yo guardo en esa cookie la informacion del usuario y me paso a otra pagina esa información se va a mantener y el usuario no va a tener necesidad de volverse a loguear ?  :huh:

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 31 Marzo 2007, 20:54 pm
mientras que sea dentro del mismo dominio (ej: pirulo.com) la cookie se mantendrá estando en index.php y en verarticulo.php y en cualkier pagina del mismo sitio.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 1 Abril 2007, 00:43 am
A ver, no se repetira ninguna cookie, porque solo creas 3 (id, nick y contraseña) y son diferentes, lo que tu haces en el if que te he puesto para la proteccion de la pagina es que mira si existe esa cookie para ese dominio con ese nombre, en este caso "id" y si existe muestra lo que hay dentro, sigue el codigo que tu quieras y supongamos que viene otro if de proteccion, pues lo que hace es comprobar otra vez si existe esa cookie para ese dominio que se llame "id" y si existe muestra lo de dentro, en conclusion, puedes poner todas las protecciones que quieras, respetando siempre el codigo ya sea php o htm(L)

Un saludo!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Kizar en 1 Abril 2007, 02:42 am
Cuando creas una sesion, por ejemplo yo en mi web al comprobar que el loggin es correcto creo la sesion (ella sola crea una cookie) y pongo $_SESSION['log'] = true ; $_SESSION['nombre'] = "kizar" a partir de ahi esas constantes el servidor las va a guardar y en cualkier pagina que entre para saber si se a logueado o no solo tengo que mirar si $_SESSION['log'] es igual a true, si eso pues es que se loggueo y para cargar sus datos llamo a la base de datos con su nombre...
Es lo mismo que usar cookies, solo que para las cookies o creas un monton o no se... ademas las sesiones las puedes cerrar y demas cuadno quieras o ponerlas que caduquen solas, las cookies es otro mundo porke imaginate que alguien te roba la cookie, seguramente a caso de que no te lo hayas currado va a poder entrar con tu usuario solo con pegarla en la carpeta...
Yo por ejemplo las sesiones hago que caduquen cada x minutos de inactividad y que compruebe si la ip sigue siendo la misma de cuando entro, con eso ya es casi imposible que alguien k no sepa tu contraseña entre...


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 1 Abril 2007, 03:21 am
oigan..... muchas gracias por sus repuestas.....

ahora me entro la duda ...... con lo que dice KiZar con respecto a la seguridad con las cookies..... si hay alguna sugeernecia con respecto a eso se los voy a agradecer.....  :)

Voy a probar bien todo esto y les estoy avisando...

Saludos,  ;D



Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 1 Abril 2007, 12:28 pm
Ya nos contaras!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 1 Abril 2007, 15:14 pm
http://foro.elhacker.net/index.php/topic,160510.0.html

Leetelo, hasta dentro de una semana no te podre responder :( asique supongo que te dejo en bueenas manos aqui con Eritai, SERBice y KiZaR (moderador y participantes jejjee ;))


Un saludo y feliz semana santa!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Kizar en 1 Abril 2007, 17:29 pm
Je ne vais pas non plus être ici durant la semaine sainte.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 2 Abril 2007, 15:08 pm
ah ok..... bueno .... pues feliz samana santa.....

cualquier cosa ahi les escribo...... para que no se olviden de mi ..... jejeje  ;D

saludos,   :D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 3 Abril 2007, 14:49 pm
ya volvi, asique lo que sea, si tienes algunda duda postea :):):)

Un saludo!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 3 Abril 2007, 17:06 pm

Ah ok..... como estuvo el paseo ...... justo a tiempo Degmaster..... ya iba hacer TODAS las pruebas del caso....  ;D

Gracias por tenerme pendiente, y creo que si voy a hacerte mas consultas pero primero quiere poner todo bien....

Saludos,  :D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 8 Abril 2007, 04:00 am
Hola..... estoy haciendo las pruebas de rigor con el codigo.... jejeje

para contarles lo que hice..... tengo el index.php que tiene lo siguente
Código:
  <form name="form1" method="post" action="validar.php">
    <table width="45%"  border="1">
      <tr>
        <td width="47%">Username</td>
        <td width="53%"><input name="username" type="text" id="username"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input name="pass" type="text" id="pass"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>
          <div align="right">
            <input name="entrar" type="submit" id="entrar" value="Entrar">
          </div></td>
      </tr>
    </table>
  </form>

Un index que lo unico que tiene es un formulario donde se llena el username y el password y que llamar al archivo validar.php

Este archivo validar.php tiene el siguiente codigo
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo
$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]'");
$datos = mysql_fetch_array($query);
if($datos[pass] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("pass",$pass,time()+90000);
if($HTTP_REFERER){ // lo redirige
header("Location: resumen.php"); } // Esto es lo que tenia header("location: $HTTP_REFERER");
else {
header("Location: index.php");
}
} else {
echo "La contraseña es incorrecta";
}
} else {
echo "Faltan campos por rellenar";
}
} else {
echo "Estas haciendo un uso indevido del login";
}
?>

Este codigo es que me pasaste Degmaster.... ya con los datos propios de mi base y tabla, al parecer me funciona bien.... le digito el username y el password pero me devuelve al index (formulario) y aunque trate de modificarlo para que me lleve a la pagina resumen.phpno lo hace.....

Alguina sugerencia ....

Saludos  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 8 Abril 2007, 07:03 am

Hola Gente..... ahora si.... tamos listos, ya estan hechos y probados cada uno de los archivos....  :D

Hice 5 archivos: index.php, donde tengo un formulario donde tomo y mando el username y pass, validar.php, donde hace la busqueda en mi base de datos y verifica si el usuario existe y pones las respectivas cookies, resumen.php, que es el archivo o información a proteger, logout.php. que es para hacer el logueo y borrar las cookies, config.php, que es donde realizo la conexion a la base de datos y por ultimo funciones.php, que es donde tengo los datos para la conexcion.....

ahora los archivos mas importantes son
index.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<div align="center">
  <form name="form1" method="post" action="validar.php">
    <table width="45%"  border="1">
      <tr>
        <td width="47%">Username</td>
        <td width="53%"><input name="username" type="text" id="username"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input name="pass" type="text" id="pass"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>
          <div align="right">
            <input name="entrar" type="submit" id="entrar" value="Entrar">
          </div></td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>

validar.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Prueba de acceso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo
$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]'");
$datos = mysql_fetch_array($query);
if($datos[pass] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("pass",$pass,time()+90000);
//if($HTTP_REFERER){ // lo redirige
header("Location: resumen.php"); //} // Esto es lo que tenia header("location: $HTTP_REFERER");
//else {
// header("Location: index.php");
//}
} else {
echo "La contraseña es incorrecta";
header("Location: index.php");
}
} else {
echo "Faltan campos por rellenar";
}
} else {
echo "Estas haciendo un uso indevido del login";
}
?>
</body>
</html>

resumen.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 {color: #0000FF}
-->
</style></head>

<body>
<?php
if($_COOKIE[id])
{echo "<h1>&nbsp;</h1>";
 echo "<h1>YES !!</h1>";
// Aqui va el codigo que quieras proteger
} else
{echo "Solo los usuarios registrados pueden acceder a esta sección";
}//Fin
echo"<p>&nbsp;</p>";
echo"<a href='logout.php'>Salir</a>"
?>
</body>
</html>

logout.php
Código:
<?
//clear the cookie and return to login
$login_page = "index.php";
if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[pass]){
setcookie("");
setcookie("");
setcookie("");
if($HTTP_REFERER){
header("location: $HTTP_REFERER");}
else {
header("location: index.php");}
} else {
echo "No estas logueado!";
header("Location: $login_page");
}

//setcookie ("this_cookie", "", 0, "", "", 0);
//setcookie ("name", "", 0, "", "", 0);
//header("Location: $login_page");
//exit();
?>

config.php
Código:
<?php
$HOSTNAME = "localhost";//SERVIDOR
$USERNAME = "root"; //USUARIO
$PASSWORD = ""; //CONTRASEÑA
$DATABASE = "minasthirit"; //BASE DE DATOS  minasthirit
?>

funciones.php
Código:
<?
/***
función conectar
que = se conecta a mysql y devuelve el identificador de conexión
***/
function conectar(){
$dbh=mysql_connect ("localhost", "USUARIO", "PASS") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("minasthirit");
//global $HOSTNAME,$USERNAME,$PASSWORD,$DATABASE;
//$idcnx = mysql_connect($HOSTNAME, $USERNAME, $PASSWORD) or DIE(mysql_error());
//mysql_select_db($DATABASE, $idcnx);
return $idcnx;
}
?>

Aahora...... el problema es que en mi maquina funciono de lo mejor.... se comporto como debia pero cuando lo subi al servidor me mando estos errores


Warning: Cannot modify header information - headers already sent by (output started at /home/publiweb/public_html/access/validar.php:8) in /home/publiweb/public_html/access/validar.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/publiweb/public_html/access/validar.php:8) in /home/publiweb/public_html/access/validar.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at /home/publiweb/public_html/access/validar.php:8) in /home/publiweb/public_html/access/validar.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /home/publiweb/public_html/access/validar.php:8) in /home/publiweb/public_html/access/validar.php on line 23



No entiendo que es lo que pasa ..... alguna sugerencia.... gracias   :huh: :huh: :huh:

Saludos  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 8 Abril 2007, 14:38 pm
los setcookies van antes de enviar texto de salida ya sea el head y tal xD

Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo
$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]'");
$datos = mysql_fetch_array($query);
if($datos[pass] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("pass",$pass,time()+90000);


//if($HTTP_REFERER){ // lo redirige
header("Location: resumen.php"); //} // Esto es lo que tenia header("location: $HTTP_REFERER");
//else {
// header("Location: index.php");
//}
} else {
echo "La contraseña es incorrecta";
header("Location: index.php");
}
} else {
echo "Faltan campos por rellenar";
}
} else {
echo "Estas haciendo un uso indevido del login";
}
?>


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 8 Abril 2007, 19:53 pm
los setcookies van antes de enviar texto de salida ya sea el head y tal xD

Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo
$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]'");
$datos = mysql_fetch_array($query);
if($datos[pass] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("pass",$pass,time()+90000);


//if($HTTP_REFERER){ // lo redirige
header("Location: resumen.php"); //} // Esto es lo que tenia header("location: $HTTP_REFERER");
//else {
// header("Location: index.php");
//}
} else {
echo "La contraseña es incorrecta";
header("Location: index.php");
}
} else {
echo "Faltan campos por rellenar";
}
} else {
echo "Estas haciendo un uso indevido del login";
}
?>

No necesariamente, si utiliza las funciones ob_...... podra capturar la salida y asi no enviarla hasta que este lista y de este modo poner los setcookies donde se le de la gana.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 8 Abril 2007, 20:33 pm
solamente me limite a contestarle xD
que lo haga él como más le guste o se le ocurra xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 9 Abril 2007, 18:05 pm
Gracias por las respuestas.....  :D

Entonces... quiere decir que si quito esto
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Prueba de acceso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

deberia de funcionar sin ningun problema ?, la pagina puede llevar titulo o no ?

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 9 Abril 2007, 22:44 pm
Gracias por las respuestas.....  :D

Entonces... quiere decir que si quito esto
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Prueba de acceso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

deberia de funcionar sin ningun problema ?, la pagina puede llevar titulo o no ?

Saludos,  ;D

no puedes mostrar nada por pantalla hasta después de las cookis... xD,puede llevar titulo ylo que quieras siempre que no lo muestres antes de sesiones o cookis xD



Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 9 Abril 2007, 23:08 pm

ok Hans el Topo..... voy a quitar todo eso y lo voy a probar.... Dios queira que ya funcione......   >:(

Gracias   ;D

Saludos.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 10 Abril 2007, 17:00 pm
Hola Hans el Topo y toda la gente.....

Pues vamos muy bien.....  ;D ..... quiete la parte del header y lo que iba adelante y funciono de lo mas bien .... muchas gracias.....

Pero luego que lo probe nuevamente me fui a la pagina que quiero proteger que es resumen.php y al parecer el logout no esta funcionando muy bien porque no limpio bien las cookies y puede ver la informacion de resumen.php

en logout.php tengo lo siguiente
Código:
<?
//Limpia las cookies y se dirige al index.php
$login_page = "index.php";
if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[pass]){
setcookie("");
setcookie("");
setcookie("");
header("location: index.php");
}
else
{
header("Location: index.php");
}

?>


Creo que me falta algo para limpiar bien esas cookies pero no estoy seguro de lo que es, alguien me podria decir que es ?  :huh:

Gracias....

Saludos,   ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 11 Abril 2007, 00:52 am
http://es2.php.net/manual/es/function.setcookie.php


Código:
<?php
// establecer la fecha de expiracion hace una hora
setcookie ("CookieDePrueba", "", time() - 3600);
setcookie ("CookieDePrueba", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 11 Abril 2007, 02:36 am

Oye gracias por esa respuesta Hans el Topo.

Un pregunta, a mi se me ocurrio poner esto y al parecer me funcionó de lo mas bien .... como lo vex?

Código:
<?
//clear the cookie and return to login
$login_page = "index.php";
setcookie ("this_cookie", "", 0, "", "", 0);
setcookie ("name", "", 0, "", "", 0);
header("Location: $login_page");
exit();
?>

Como lo ven ? esta bien ?  :huh:

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 11 Abril 2007, 07:23 am

Perdon, estaba equivocado.....  >:(

volvi a probar el acceso y no me borra las cookies.....  :-[ , inclusive probe de dos formas como podran ver .....

el logout lo tengo asi
Código:
<?
$login_page = "index.php";
setcookie ("id", "", time() - 3600);
setcookie ("nick", "", time() - 3600);
setcookie ("pass", "", time() - 3600);
setcookie("id", "", 0, "", "", 0);
setcookie("nick", "", 0, "", "", 0);
setcookie("pass", "", 0, "", "", 0);
header("location: index.php");
?>

Gracias por la ayuda .......  :)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 11 Abril 2007, 19:55 pm
Hola jamarchi, y a todos los que participais, a ti jamarchi decirte que los siento por no haberte respondido antes pero me he tenido que conectar desde un cyber (ya sabes problemas con la linea) y ya estoy en casita, asique vuelvo a estar en activo jeje

Veamos... yo el logout lo tengo asi:
Código:
<?php
// Esto solo son las modificaciones de las cookies ;)

setcookie("id");

setcookie("nick");

setcookie("contrasena");

?>

Ya asi no te funcionan para entrar en las paginas restringidas, por lo menos a mi me funcionan, si quieres hablamos mas detenidamente y te lo enseño paso a paso y personalmente (thesixhalcon@hotmail.com), de todas formas a mi las cookies para proteger los archivos no me fallan :S.

A ver si asi te va ;)

PD: el foro va de culo, de tanto que tarda en cargar no me deja postear xD ;)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 11 Abril 2007, 20:39 pm
Código:
<?php
setcookie("id","0");
setcookie("nick","0");
setcookie("contraseña","0");
?>
no es tan difícil xD sino te las borra es xk haces mal las comprobaciones o algo xD

muestra luego sus valores ave k contienen


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 11 Abril 2007, 21:11 pm

Hola a todos y gracias por responderme .....  :D

Gracias Hans el topo por respondes y Degmaster....

Las pruebas que he hecho con el codigo que has visto es .... trato de ingresar directamente a la pagina que quiero proteger que en este caso es resumen.php, cuando lo trato de hacer la primera vez me manda el error de que no estoy logueado....  ahi vamos bien....

Luego me manda al index donde tengo un Form donde llenos los datos (username y password) y entro, la pagina validar.php es la que verifica si el username y el password estan bien y luego me muestra la pagina resumen.php,  hasta ahi vamos EXCELENTE.....

Ahora bien... cuando estoy en resumen.php, presciono el boton de salir y este me llama a logout.php que es quien supuestamente borras las cookies, ahora bien si yo en ese momento trato de ingresar directo a la pagina resumen.php no me manda ningun error y en teoria deberia decirme que no estoy logueado..... ese es el error

Degmaster, yo puse el ecodigo como tu me lo diste
Código:
<?
//clear the cookie and return to login
$login_page = "index.php";
if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[pass]){
setcookie("");
setcookie("");
setcookie("");
if($HTTP_REFERER){
header("location: $HTTP_REFERER");}
else {
header("location: index.php");}
} else {
echo "No estas logueado!";
header("Location: $login_page");
}

?>


Pero no me funciono.... tambien lo puse asi
Código:
<?
$login_page = "index.php";
setcookie ("id", "", time() - 3600);
setcookie ("nick", "", time() - 3600);
setcookie ("pass", "", time() - 3600);
setcookie("id", "", 0, "", "", 0);
setcookie("nick", "", 0, "", "", 0);
setcookie("pass", "", 0, "", "", 0);
header("location: index.php");
?>

y tampoco me funciono...  :-[

No se se si esto pueda funcionar ... asi como lo dice Hast el Topo
Código:
setcookie("id", "", "" ); 


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 12 Abril 2007, 00:20 am
Validar
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]");

$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx);
$datos = mysql_fetch_array($query);
if($datos['pass'] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos['id'],time()+90000); setcookie("nick",$datos['nick'],time()+90000); setcookie("pass",$pass,time()+90000);
                                       //redireccionas donde quieras login correcto
                                }
}
//pa la pag de error
?>

Resumen

Código:
<?php
//tomaría el valor de la cookie y pediría el valor de la pass del usuario, compararía valores y si es correcto dejaria ver lo k kieras, si es incorrecto yo lo mandaría al logout sin más, y en el log out a ti te da igual k este logeado o no tu le pones las cookies a 0 y listo , en este código te puede entrar cualquiera a ver los contenidos xD solamente tiene que crearse la cookie id.

//código inseguro xD
if($_COOKIE['id'])
{echo "<h1>&nbsp;</h1>";
 echo "<h1>YES !!</h1>";
// Aqui va el codigo que quieras proteger
} else
{echo "Solo los usuarios registrados pueden acceder a esta sección";
}//Fin
echo"<p>&nbsp;</p>";
echo"<a href='logout.php'>Salir</a>"
?>


Te pego un code que usaba para un jueguecillo web k te deslogeaba pasados 10 minutos, te pongo parte del code, tenía bastantes más protecciones xD. Hace time que no programo en php y bueno el code es viejo. Espero que te sirva al menos como estructura de referencia

Código:
<?php
//pillamos valores
$user=$_COOKIE['user'];
$id=$_COOKIE['id'];
//actualizamos valores
setcookie("user","$user",time()+600);
setcookie("id","$id",time()+600);

//comprobamos valores
//comprobamos si el usuario es válido y los posibles intentos de lameradas
if(es_cadena($user)&&es_cadena_num($id)){
$rango=sentencia("select rango from usuario where nick like '$user' and password like '$id' limit 1");
}else{
$rango=0;
}

if($rango==1)
    echo"Sitio protegido";
else
    echo"Mirón";

Te adjunto mi login
Código:
<?php
setcookie("user","$user",time()+600);
setcookie("id","$pass",time()+600);

echo"<center><br><br>Entrando...</center>";

if(es_cadena_num($user)&&es_cadena_num($pass)){ //si son valores viables
$rango=sentencia("select rango from usuario where nick like '$user' and password like '$pass' limit 1");
if($rango==3){
echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=master.php\">";
}elseif($rango==1){
echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=user.php\">";
}else{
echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=salir.php\">";
}
}else{
echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=salir.php\">";
}

Salir
Código:
<?php
setcookie("user","0");
setcookie("id","0");

echo "<center><br>Sesión Finalizada<br>Que tenga un buen día ";

echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">";

Si tienes alguna duda mirate el link de las sesiones que te pase que yo creo que mirandoselo todo esta solucionado xD

La función no es gran cosa pero cumple su cometido xD
Código:
<?php
//letras y símbolos permitidos
define("CONS_CADENA","_abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ");
//COMPRUEBA SI SON TODO CARACTERES VÁLIDOS (devuelve 1 si 0 no)
function es_cadena($cadena){
//buscamos caracteres buenos
$i=0;
$cadena.=1; //centinela
//se puede solventar todo con http://es2.php.net/manual/es/function.stripos.php
while(posicion(CONS_CADENA,$cadena[$i])>=0){
$i++;
}
if($i==strlen($cadena)-1) //centinela
return 1;
else
return 0; //caracteres malos
}


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 12 Abril 2007, 15:18 pm
Hola Gente.....  :D

Oye Hans el Topo, gracias por ese codigo esta muy bueno....

Ayer estuve probando varias modificaciones para borrar las cookies y todas me daban el mismo resultado...

Lo que hacia es, me iba al index, digitaba la informacion, la pagina validar lo quequeaba y me dejaba entrar a la pagina protegido, resumen.php, cuando salia de resumen parecia que borraba las cookies pero si me iba directamente a la pagina de resumen..... me dejaba ingresar (estando deslogueado) despues de mucho darle se me ocurrio prescionar la tecla de F5 para actualizar la pagina resumen..... y adivinen que.... me mostro el mensaje de que no estaba logueado....

Creo que por ahi anda el problema.... no esta actulizando... y aunque puse este codigo que me pasaste Hans el Topo

Código:

echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">";


no me esta acutalizando la pagina.....   >:(

Alguna sugerencia......

Gracias   :)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 12 Abril 2007, 18:04 pm
Hola de nuevo, veo que todos los 3 mensajes que postee, no estan... :S asique te respondo a tu ultima duda, por que no lo haces mediante PHP?

Código:
<?php
header("Location: menu.php");
?>

Si quieres me agregas y hablamos por msn (thesixhalcon@hotmail.com)...

PD: El foro a veces va de culo, o no se, alguien me borra los mensajes xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 12 Abril 2007, 19:27 pm

Hola

Bueno.... de hecho lo estoy haciendo en PHP,  segun lo que aconsejo Hans el Topo, como lo puedes ver

Código:
<?php
setcookie("user","0");
setcookie("id","0");

echo "<center><br>Sesión Finalizada<br>Que tenga un buen día ";

echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">";
?>

No se si te refieres a eso .... que se puede hacer

Ya te agregue al msm

Saludos,  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 12 Abril 2007, 21:04 pm
la página válidar que tenias lo único que miraba es que existiese una cookie llamada id... no que tuviese ni valor ni na, solo que existiese por eso te deja verla, si utilizas firefox no suele actualizar con la frecuencia que debería xD

Código:
session_cache_limiter('nocache,private');
header("Cache-Control: no-store, no-cache, must-revalidate"); 

añade eso a las cabeeceras y listo xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 12 Abril 2007, 23:51 pm
Gracias Hans el Topo por tu respuesta....  :D

Disculpa pero no me quedo claro donde poner eso que me dijiste, el el archivo a proteger, en el validar o en el de salir


Código:
session_cache_limiter('nocache,private');
header("Cache-Control: no-store, no-cache, must-revalidate"); 

añade eso a las cabeeceras y listo xD


Gracias nuevamente  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 13 Abril 2007, 13:23 pm
Citar
añade eso a las cabeceras
todas


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 13 Abril 2007, 15:14 pm
Te funciono lo que te pase por el msn?, lo que le pase es el logout que quitaba las cookies

Un saludo!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 17 Abril 2007, 21:20 pm


Amigos, Hermanos, Brothers, Carnales, Colegas, Compañeros, ilumionados, ......... ;D

Ya gracias a Dios y a la ayuda de todos ustedes tengo el problema solucuionado, gracias Degmaster y Hans el topo por toda la ayuda.....

Gracias  ;D

PD: Si alguien quiere el codigo solo me lo pido..... digo... es sencillo pero util.....  :D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: deya en 18 Abril 2007, 01:23 am


Amigos, Hermanos, Brothers, Carnales, Colegas, Compañeros, ilumionados, ......... ;D

Ya gracias a Dios y a la ayuda de todos ustedes tengo el problema solucuionado, gracias Degmaster y Hans el topo por toda la ayuda.....

Gracias  ;D

PD: Si alguien quiere el codigo solo me lo pido..... digo... es sencillo pero util.....  :D

Pues pon el código para que todos aprendamos.

Salu2  ;)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: The Neurochild en 18 Abril 2007, 14:55 pm
Estoy interesado en el código de este ejemplo, quisiera que lo pusieras, yo también tengo una página con sistema de identificación de usuarios que quisiera mejorar

Saludos

The Neurochild


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 18 Abril 2007, 22:34 pm

Bueno gente.... como lo han pedido lo voy a poner.....

en los proximos minutos pongo todos los archivos aqui para que lo puedan copiar y usar..... claro.... interface ...... nada... el ejemplo es un unico form, nada mas....  ;D

De antemano si alguien lo puede mejorar para hacerlo mas seguro pues adelante y que lo ponga aca para que todos lo copiemos y aprendamos.....

Gracias  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 19 Abril 2007, 02:38 am

Bueno Amigos, Hermanos, Brothers, Carnales, Colegas, Compañeros, ilumionados, ......... lo prometido es deuda   ;D

Este codigo esta compuesto por  cuatro archivos
  • Index.php : Este se encarga de tomar los valores (username y password)
  • Validar.php: Este chequea que el usuario este registrado en la base de datos y pone las cookies
  • Resumen.php: Aqui ponemos la info que queremos protejer
  • Logout.php: Salimos y borra las cookies

A groso modo esa es la explicación de cada uno, ahora si.... vamos al codigo

Index.php
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
  <form name="form1" method="post" action="validar.php">
    <table width="45%"  border="1">
      <tr>
        <td width="47%">Username</td>
        <td width="53%"><input name="username" type="text" id="username"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input name="pass" type="text" id="pass"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>
          <div align="right">
            <input name="entrar" type="submit" id="entrar" value="Entrar">
          </div></td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>

Validar.php
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]"); //esto de md5 es para comparar si guardas la passwd en md5 si no borralo
$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[username]'");
$datos = mysql_fetch_array($query);
if($datos[pass] == $_POST["pass"]){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos[id],time()+90000);
setcookie("nick",$datos[nick],time()+90000);
setcookie("pass",$_POST["pass"],time()+90000);
//if($HTTP_REFERER){ // lo redirige
header("Location: resumen.php"); //} // Esto es lo que tenia header("location: $HTTP_REFERER");
//else {
// header("Location: index.php");
//}
} else {
header("Location: index.php");
echo "La contraseña es incorrecta";
}
} else {
echo "Faltan campos por rellenar";
}
} else {
echo "Estas haciendo un uso indevido del login";
}
?>



Resumen.php
Código:
<?php
if($_COOKIE[id])
{//echo "<META HTTP-EQUIV=\"refresh\" content=\"0\">";
echo "<h1>&nbsp;</h1>";
echo "<h1>YES !!</h1>";
echo"<p>&nbsp;</p>";
echo"<a href='logout.php'>Salir</a>";
// Aqui va el codigo que quieras proteger
} else
{echo "Solo los usuarios registrados pueden acceder a esta sección";
echo"<a href='index.php'>Entrar</a>";
}//Fin

?>
</body>
</html>


Logout.php
Código:
<?php 

if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[pass]){

setcookie("id");
setcookie("nick");
setcookie("pass");

if($HTTP_REFERER){
header("location: $HTTP_REFERER");
} else {
header("location: index.php");
}

};
?>

Bueno gente.... ahi esta el codigo, logicamente ahi falta hacer la conexión a la base de datos, como dije en el post anterior si alguien lo puede mejorar pues adelante y que lo ponga aqui para ir mejorando todos....

Gracias


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 19 Abril 2007, 11:26 am
el code sigue siendo inseguro, además para acceder a la zona privilegiada no hace falta ni logearse...

no recomiendo utilizar ese code a nadie que quiera proteger algún archivo o zona xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 19 Abril 2007, 15:09 pm
Hola Gente.....

Hans el Topo, no entiendo porque dices que es inseguro y esta mal si es practicamente el codigo que me pasaste, me podrias dedir que es lo malo para ver como se puede solucionar por favor

Gracias ;D

PD: Lo raro es que lo acabo de probar con 5 personas y las las 5 les salio la parte donde dice que solo los usuarios registrados pueden ingresar....   >:( , como te digo si hay alguin error como se puede solucionar....


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 19 Abril 2007, 16:35 pm
Hola Gente.....

Hans el Topo, no entiendo porque dices que es inseguro y esta mal si es practicamente el codigo que me pasaste, me podrias dedir que es lo malo para ver como se puede solucionar por favor

Gracias ;D

PD: Lo raro es que lo acabo de probar con 5 personas y las las 5 les salio la parte donde dice que solo los usuarios registrados pueden ingresar....   >:( , como te digo si hay alguin error como se puede solucionar....

Si hubieses visto la estructura de mi código te habrías dado cuenta de que es lo que no haces... bastante hice con pasteartelo y explicartelo como para ahora resumirtelo xD

si te interesa miralo, compara y saca tus propias conclusiones xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 20 Abril 2007, 20:07 pm


OK.... entiendo....

Lo voy a chequear nuevamente y cuando lo tenga listo lo vuelvo a poner aqui.....

Saludos  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 20 Abril 2007, 21:59 pm
te lo hare "cortito, y al pie" como decimos aqui en Argentina:

tu haces todas las cmprobaciones y creas las cookies para luego redirigir al usuario autnticadoa una pagina sin una p**a preoteccion (resumen.php), lo cual es lo mismo que el usuario escriba www.tuweb.com/resumen.php y listo, y no hace falta login ni nada, te esta fallando un pokito la logica, pero vas por buen camino....

si luego tengo mas tiempo te doy un ejemplo utilizable simple (esto quiere decir que no sera seguro al nivel de decir, es casi perfecto, solo será mas seguro que el tuyo, pero un script de estas caracteristicas lleva un tiempo pensarlo y depende del sitio en el que se implemente.... etc etc etc, y ademas llevan un toke personalizado, por lo cual si te lo hiciera "muy perfecto" estaria copiando el login de mi web y por ende dandole el code a otros para que si he cometid un error me ataquen por alli.... en fin, leugo te tiro una mano, ahora estoy algo ocupado...)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 20 Abril 2007, 22:12 pm

Hola SERBice   ;D

Gracias por tu respuesta, oye, te agradezco toda la ayuda que me puedas dar.... yo lo unico que quiero es que la gente tenga que loguearse para poder ver la info privada....

Bueno de hecho ahora estoy chequeando un codigo que Hans el Topo me paso.... (gracias Hans )

validar.php
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]");
$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx);
$datos = mysql_fetch_array($query);
if($datos['pass'] == $pass){//si las pass son =// crea la cookie del user con la id el nick y la pass
setcookie("id",$datos['id'],time()+90000); setcookie("nick",$datos['nick'],time()+90000); setcookie("pass",$pass,time()+90000);
                        //redireccionas donde quieras login correcto
                }
}
}
//pa la pag de error
?>

De antemano gracias por la ayuda....  :D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 27 Abril 2007, 19:14 pm
A mi no me da ningun problema


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 27 Abril 2007, 23:49 pm

Hola SERBice   ;D

Gracias por tu respuesta, oye, te agradezco toda la ayuda que me puedas dar.... yo lo unico que quiero es que la gente tenga que loguearse para poder ver la info privada....

Bueno de hecho ahora estoy chequeando un codigo que Hans el Topo me paso.... (gracias Hans )

validar.php
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]");
$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx);
$datos = mysql_fetch_array($query);
if($datos['pass'] == $pass){//si las pass son =// crea la cookie del user con la id el nick y la pass
setcookie("id",$datos['id'],time()+90000); setcookie("nick",$datos['nick'],time()+90000); setcookie("pass",$pass,time()+90000);
                        //redireccionas donde quieras login correcto
                }
}
}
//pa la pag de error
?>

De antemano gracias por la ayuda....  :D

ese codigo es vulnerable, bastará con que yo cree las cookies en mi navegador, y no importará si los datos son incorrectos ya qe no cmopruebas los valores de las cookies. Luego te pongo un ejemplo cno sesiones, es mas seguro.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 28 Abril 2007, 15:40 pm
claro que es vulnerable, desde luego xk faltan los comentarios iniciales en el que le puse que tenía que comprobar si los valores de las cookies son correctos y no intentos de lameradas, pero supongo que el muchacho estará bastante liado con tanto code como se ha posteado xD

cuando me ponga a realizar un ingreso de usuarios para mi próximo proyecto, comparto el code con vosotros (y de paso criticáis los posibles fallos/inseguridades) la idea seria crear un ingreso de usuario seguro como base para los foreros


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 30 Abril 2007, 21:28 pm
no, no es vulnerable, es super vulnerable.

el contenido de resumen.php despues de loguearte es:
Código:
<h1>&nbsp;</h1><h1>YES !!</h1><p>&nbsp;</p><a href='logout.php'>Salir</a></body>
</html>

y simplemente lo que hice fue crear las cookies falsas "id", "nick" y "pass" jeje....


En Google: http://www.google.com.ar/search?hl=es&q=sesiones+en+php&meta=

Uno de los resultados de la búsqueda: http://www.desarrolloweb.com/articulos/235.php

investiga un poco, si necesitas ayuda la pides.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 30 Abril 2007, 23:53 pm
no, no es vulnerable, es super vulnerable.

el contenido de resumen.php despues de loguearte es:
Código:
<h1>&nbsp;</h1><h1>YES !!</h1><p>&nbsp;</p><a href='logout.php'>Salir</a></body>
</html>

y simplemente lo que hice fue crear las cookies falsas "id", "nick" y "pass" jeje....


En Google: http://www.google.com.ar/search?hl=es&q=sesiones+en+php&meta=

Uno de los resultados de la búsqueda: http://www.desarrolloweb.com/articulos/235.php

investiga un poco, si necesitas ayuda la pides.

llevo desde el comienzo del post advirtiendole de lo que tu acabas de decir... macho leete los temas antes de contestar xD


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 1 Mayo 2007, 14:17 pm
no, no es vulnerable, es super vulnerable.

el contenido de resumen.php despues de loguearte es:
Código:
<h1>&nbsp;</h1><h1>YES !!</h1><p>&nbsp;</p><a href='logout.php'>Salir</a></body>
</html>

y simplemente lo que hice fue crear las cookies falsas "id", "nick" y "pass" jeje....


En Google: http://www.google.com.ar/search?hl=es&q=sesiones+en+php&meta=

Uno de los resultados de la búsqueda: http://www.desarrolloweb.com/articulos/235.php

investiga un poco, si necesitas ayuda la pides.

llevo desde el comienzo del post advirtiendole de lo que tu acabas de decir... macho leete los temas antes de contestar xD

no solo vos venis advirtiendo eso, no te cabrees nadie te va a quitar el merito de haber advertido. Yo tambien lo hago desde el inicio, sino fijate que estoy e este hilo desde los primeros post.

Lo unico que hice fue "demostrar" con un ejemplo practico que es posible, para que jamarchi no se siga fiando de este code.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: romi en 8 Mayo 2007, 02:00 am
Estoy investigando y trabajando con este tema ;D...en mi opinion son mejores las sesiones, las cookies no son soportadas por todos los navegadores, otra cosa si no encriptas de alguna manera la contraseña (vi q usas md5), cualquiera que "tenga" acceso al directorio donde se guardan las cookies podra sacarlo de alguna manera, recordemos que las cookies quedan almacenadas en la maquina del usuario y no nos confiemos de que nadie podra sacar esa info. :-X

Otra cosa que estoy buscando todavia para termianr de convencerme...no hay manera de "hackear" una sesion...o sea puede darse el caso de que un snifer o algun programita o hacker nos saque del trafico de la red justo el paquete q contenga el id_session? o algun otro ataque mas o menos facil o no para hacerse de los datos de la sesion ...?¿? se entiende mi dudA=? :huh:

Bueno espero que aporte algo...


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: SERBice en 8 Mayo 2007, 02:07 am
Estoy investigando y trabajando con este tema ;D...en mi opinion son mejores las sesiones, las cookies no son soportadas por todos los navegadores, otra cosa si no encriptas de alguna manera la contraseña (vi q usas md5), cualquiera que "tenga" acceso al directorio donde se guardan las cookies podra sacarlo de alguna manera, recordemos que las cookies quedan almacenadas en la maquina del usuario y no nos confiemos de que nadie podra sacar esa info. :-X

Otra cosa que estoy buscando todavia para termianr de convencerme...no hay manera de "hackear" una sesion...o sea puede darse el caso de que un snifer o algun programita o hacker nos saque del trafico de la red justo el paquete q contenga el id_session? o algun otro ataque mas o menos facil o no para hacerse de los datos de la sesion ...?¿? se entiende mi dudA=? :huh:

Bueno espero que aporte algo...


Error amigo, las sessiones si son mas seguras, pero te equivocas e lo del soporte de coockies. Mejor dicho, es verdad que algunos navegadores no soportan cookies, por lo tanto tampoco sesiones. las sesiones son "cookies del lado del servidor" y para el servidor saber que id de session le corresponde al visitante utiliza una cookie e el navegador, por lo tanto si el navegador no sooprta cookies las sessiones tampoco sirven.

En lugar de guardar todas las cookies en el cliente se ahce en el servidor y se le da un identificador al cliente apra que el servidor lea la sesion con el identificador que tiene la cookie del cliente.

Si, hay forma de obtener el session ID, simplemente puedes  hackear la we con xss si es vulnerable o si tienes acceso a la "pc victima" peudes sacar el id_session a mano. pero de mucho no sirve aveces, mucha pagnas tienen caducidad de sesiones, y debes actuar rapido. La cookie con el id session po defecto en php es phpsesid.


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 15 Mayo 2007, 03:47 am
Hola Gente.....  ;D

Pues me tuve que perder por un rato debido a circunstancias fuera de mi control pero ya estoy de vuelta.....  ::)

Estaba lleyendo los comentarios que han puesto y se los agradezco.... lo que si me quedo claro con todo eso fue que el codigo de  verdad que esta muy vulnerable..... asi que la pregunta seria.... que seria lo mejor uqe se puede hacer para tener un buen codigo

Gracias.....


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: securedigital en 16 Mayo 2007, 18:41 pm
Hola a todos.

Yo tengo por aaqui un post que colge mi codigo, que teoricamente no es tan facil de vulnerar, contraseñas cifradas en md5, se usan sessions.

Es un logins de usuario y contraseña, usado para acceder a ciertas partes o donde quieras, compuesto de 3 scripts.

1-conexion BBDD
2-Login
3-Code para proteger frente indeseados

Solo es que me esta dando problemas...xd estoy ahora cargandomelo un poco y arreglando problemillas. Ahora mismo ya no da errores SQL ni nada, pero tanto si el user como pass con correctos o no, entra de todas formas....

Enga a ver si alguien me hecha una mano que mi php no da para mas....


Saludos


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Luisango en 16 Mayo 2007, 20:24 pm
ahora lo revisare a ver que tal, pero lo de las contraseñas en md5 base64 etc... son añadiduras que les puedes hacer o no, pero lo que importa es la base de todo eso, si no hay base, no hay nada  :P

S2!


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 31 Mayo 2007, 23:04 pm

Hola Gente.....  :D, como les va?
Despues de algun tiempo de no poder volver a este tema, aqui estoy..... he modificado el codigo un poco para ver si ahora si hace lo que tiene que hacer ..... aqui lo pongo y por favor... si hay algo malo se aceptan sugerencias para arreglarlo, gracias de antemano....

validar.php
Código:
<?php
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
if($_POST["entrar"]){
     if($_POST["username"] && $_POST["pass"]){
$contraseña = md5("$_POST[pass]");
$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx);
$datos = mysql_fetch_array($query);
if($datos['pass'] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass
setcookie("id",$datos['id'],time()+90000);
                setcookie("nick",$datos['nick'],time()+90000);
setcookie("pass",$pass,time()+90000);
header("Location: resumen.php"); //redireccionas donde quieras login correcto
                }
}
}
else
header("Location: index.php");//pa la pag de error
?>

Resumen.php
Código:
<?php
//código inseguro xD
if($_COOKIE['id'])
{echo "<h1>&nbsp;</h1>";
 echo "<h1>YES !!</h1>";
// Aqui va el codigo que quieras proteger
} else
{echo "Solo los usuarios registrados pueden acceder a esta sección";
}//Fin
echo"<p>&nbsp;</p>";
echo"<a href='logout.php'>Salir</a>"
?>

Logout.php
Código:
<?php
setcookie("user","0");
setcookie("id","0");

echo "<center><br>Sesión Finalizada<br>Que tenga un buen día ";

echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=index.php\">";
?>

Espero que este mejor este codigo..... gracias  :)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Hans el Topo en 31 Mayo 2007, 23:34 pm
no compruebas los intentos de lameradas... yo diría que es exactamente el code hace meses xD

Tiene hasta el comentario que le puse de código inseguro xD

Código:
<?php
//código inseguro xD
if($_COOKIE['id'])
{echo "<h1>&nbsp;</h1>";
 echo "<h1>YES !!</h1>";
// Aqui va el codigo que quieras proteger
} else
{echo "Solo los usuarios registrados pueden acceder a esta sección";
}//Fin
echo"<p>&nbsp;</p>";
echo"<a href='logout.php'>Salir</a>"
?>


tienes que comprobar que el username no contenga lameradas...xD
ahi lo lanzas sin más contra la base de datos y por lo tanto es vulnerable a SQLInyection xD

Código:
<?php if($_POST["username"] && $_POST["pass"]){
        //eso no se si funciona... me da que cifra la cadena xD
//$contraseña = md5("$_POST[pass]");
        //así seguro que funciona xD  (de todos modos es inseguro)
        $contraseña = md5($_POST["pass"]);
$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx);


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 31 Mayo 2007, 23:58 pm

Hola Hans, gracias por tu respuestas

Oye... aque te refieres con "lameradas"

Agregando esto 
Código:
 if($_POST["username"] && $_POST["pass"]){
lo have mas seguno ?

Como lo mejoro ...... :-[


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: дٳŦ٭ en 1 Junio 2007, 12:03 pm
Lammeradas = intentos de "hack" por pseudoshackers

Para poner más seguridad hay de muchas formas:

1.- Revisa los referers.
2.- Quita las cookies y crea sesiones, es más seguro.
3.- Limpia las variables $_POST, $_GET, $_COOKIE, etc; addslashes(), htmlspecialchars(), mysql_escape_string().
4.- Revisa las cabeceras de los navegadores.
5.- Crea un mini-sistema de intentos fallidos, si 123.56.89.36 ha intentado autentificarse más de 5 veces dale ban desde un htaccess.
6.- Guarda logs de autentificaciones existosas como fallidas.

Etc.

EDIT

Hay muchas cosas que puedes hacer  ;)

Saludos


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: дٳŦ٭ en 4 Junio 2007, 00:47 am
Te adjunto el autentificator hecho por cluster de forosdelweb. Ya viene parchado contra la inyección sql descubierta por sidarkcat.

Hoy en la noche le voy hacer unas modificaciones al tuyo  ;)

Saludos


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Novalis en 16 Junio 2007, 18:04 pm

Oye Jamarchi..... porque no usas Session.... creo que son un poco mas seguras que las cookies.... y segun se.... hasta mas faciles de usar....  ::)


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 19 Junio 2007, 23:30 pm

Oye Navalis....

Gracias por el consejo.... voy a investigar sobre eso....

Pregunta.... las sesiones son mas seguras que las cookies ?

Saludos pueblo  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: jamarchi en 22 Junio 2007, 16:11 pm

Hola gente.... como les va ?  :D

Pues yo aqui de nuevo.....

Bueno.... despues de un buen rato de INVESTIGAR y BUSCAR tengo el siguiente codigo.... no es con cookies si no con session, aqui se los pongo....


Index.php
Código:
<table width=350 border=1 bgcolor=#3399FF>
<?php

//Se inicia la session
session_start();

$username = $_SESSION['username'];
$password = $_SESSION['password'];

//Chequea si hay username y password
if(!$username && !$password){
echo "Bienvenido Visitante! <br> <a href=login.php>Login</a> | <a href=register.php>Register</a>";
}else{
echo "Bienvenido ".$username." (<a href=logout.php>Salir</a>)";
echo "Aqui va la parte protegida ? ";
//echo "<table width=350 border=1 bgcolor=#3399FF>\n";
echo " <tr>\n";
echo "    <td>Esta parte es protegida ?</td>\n";
echo "  </tr>\n";
//echo "</table>\n";
}
?>
</table>

Login.php
Código:
<?php
session_start();

//Formulario para entrar
function index(){

echo "<form action='?act=login' method='post'>"
    ."Username: <input type='text' name='username' size='30'><br>"
    ."Password: <input type='password' name='password' size='30'><br>"
    ."<input type='submit' value='Login'>"
    ."</form>";   

}

// Esta funcion chequea si la informacion es correcta
function login(){

//Toma la informacion del formulario
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];


//conecta la base de datos
$connect = mysql_connect("localhost", "root", "");
if(!$connect){
die(mysql_error());
}

//Selecciona la base
$select_db = mysql_select_db("base_nombre");
if(!$select_db){
die(mysql_error());
}

//chequea si la informacion es correcta

$result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$row = mysql_fetch_array($result);
$id = $row['id'];

$select_user = mysql_query("SELECT * FROM users WHERE id='$id'");
$row2 = mysql_fetch_array($select_user);
$user = $row2['username'];

if($username != $user){
die("Username incorrecto!");
}


$pass_check = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id'");
$row3 = mysql_fetch_array($pass_check);
$email = $row3['email'];
$select_pass = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id' AND email='$email'");
$row4 = mysql_fetch_array($select_pass);
$real_password = $row4['password'];

if($password != $real_password){
die("Password incorrecto!");
}



//Si todo es correcto crea las sesione y permite engresar

session_register("username", $username);
session_register("password", $password);

echo "Bienvenido, ".$username." Para continuar de click aqui en el <a href=index.php>Index</a>";




}

switch($act){

default;
index();
break;

case "login";
login();
break;

}
?>

Logout.php
Código:
<?php
session_start();

//Aqui se destruye la session
session_destroy();
echo "Usted no esta logueado!, seleccione <a href=index.php>Index</a> o <a href=login.php>Ingresar</a>";

?>

Registrar.php
Código:
<?php

//Muestra el formulario de registro
function register_form(){

$date = date('D, M, Y');
echo "<form action='?act=register' method='post'>"
    ."Username: <input type='text' name='username' size='30'><br>"
    ."Password: <input type='password' name='password' size='30'><br>"
    ."Confirmar password: <input type='password' name='password_conf' size='30'><br>"
    ."Email: <input type='text' name='email' size='30'><br>"
    ."<input type='hidden' name='date' value='$date'>"
    ."<input type='submit' value='Register'>"
    ."</form>";

}

//Registra la informacion del usuario
function register(){

//Connecta la database
$connect = mysql_connect("localhost", "root", "");
if(!$connect){
die(mysql_error());
}

//Selectciona la database
$select_db = mysql_select_db("data_name");
if(!$select_db){
die(mysql_error());
}

//Informacion
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$pass_conf = $_REQUEST['password_conf'];
$email = $_REQUEST['email'];
$date = $_REQUEST['date'];

//Apartir de aqui se empieza a chequear la informacion

if(empty($username)){
die("Favor digitar su username!<br>");
}

if(empty($password)){
die("Favor digitar su password!<br>");
}

if(empty($pass_conf)){
die("Favor confirmar su password!<br>");
}

if(empty($email)){
die("Favor digitar su email!");
}

//Chequeamos que el username no este en uso

$user_check = mysql_query("SELECT username FROM users WHERE username='$username'");
$do_user_check = mysql_num_rows($user_check);

//Ahora chequeamos si el email no este en uso

$email_check = mysql_query("SELECT email FROM users WHERE email='$email'");
$do_email_check = mysql_num_rows($email_check);

//Mostramos errores

if($do_user_check > 0){
die("Ese Username ya esta registrado!<br>");
}

if($do_email_check > 0){
die("Ese email ya esta registrado!");
}

//chequeamos que los passwords sean iguales

if($password != $pass_conf){
die("Los password digitados son diferentes!");
}


//Si todo esta bien, se agrega el usuario

$insert = mysql_query("INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')");
if(!$insert){
die("Hay un problema: ".mysql_error());
}

echo $username.", ha sido registrado. muchas gracias!<br><a href=?act=login>Ingresar</a> | <a href=index.php>Index</a>";

}

switch($act){

default;
register_form();
break;

case "register";
register();
break;

}

?>

ahi se los pongo.... segun las pruebas que le he hecho esta bastante bien... pero talvez omite algo...

Muchas gracias  ;D


Título: Re: Sistema de ingreso de usuario en PHP
Publicado por: Novalis en 22 Junio 2007, 22:11 pm

Pues.... en mi humilde opinion parece que esta bueno.... claro.... si quieres algo con mayor seguridad me imagino que le hace falta "algo" mas .... jejeje