Maestros del Web


Estás en Inicio / Editorial / PHP

03.08.2002

Registro y reconocimiento de usuarios con PHP

En esta oportunidad crearemos un sistema de registro de usuarios utilizando a PHP.

¿En que consiste? y ¿para que sirve? muy sencillo, en algunas webs como
por ejemplo esta, queremos interactuar con los usuarios, deseamos que estos
puedan enviar scripts al sistema para ayudar a crecer la coleccion de scripts
que disponemos, pero deseamos llevar un control sobre los autores de los scripts
asi que no cualquiera puede enviar scripts, para hacerlo tienes que registrarte
y hacer el respectivo "ingreso" para que el sistema te reconosca
y te deje enviar scripts, archivos y articulos como este, de otra manera no
puedes hacer ninguna de estas acciones.

¿Pero como se logra esto?, se hace teniendo en una base de datos una tabla de usuarios(Podria
hacerse con archivos, aunque seria un poco inseguro) y por medio de archivos
PHP y manejo de sesiones(session) o por "cukis"(cookies).

En este articulo explicare como crear un sistema de registro y reconocimiento de usuarios teniendo
una tabla en una base de datos MySql y por medio de "cukis"(COOKIES)
para nuestra web de una manera sencilla.

A la hora de crear un sistema de registro de usuarios siempre pensamos en lo mismo:

registro + login
+ reconocimiento

Queremos que los usuarios se registren dejando sus datos y puedan acceder a algunas zonas
de la pagina y sea reconocido por nuestra pagina(por ejemplo "bienvenido
jlmm" o "bienvenido visitante" en caso de no estar ingresado
(o registrado) en el sistema).

Muchos piensan en crear un sistema de usuarios por que les parece "bonito", pero hay
pocos que realmente lo necesitan(lo digo por experiencia con dichas personas),
y cuando les haces las dos preguntas:

1- ¿que beneficios tienen los usuarios registrados con respecto a los demas?

2- ¿que zonas de tu web quieres que sean de acceso restringido y PORQUE?

La mayoria no es capaz de responder la primera pregunta, y es que antes de aventurarnos a crear
un sistema de usuarios para nuestra web debemos de pensar si realmente vale
la pena, ya que las tematicas de la web y sus contenidos no siempre son adecuados
para tener un sistema de registro de usuarios.

Para ello respondemos las 2 preguntas, en el caso de misCODIGOS.com serian:

1- ¿que beneficios tienen los usuarios registrados con respecto a los demas?

R://Posibilidad de enviar scripts, articulos y archivos al sistema, al igual
que disponibilidad de un panel de control entre otros.

2- ¿que zonas de tu web quieres que sean de acceso restringido y PORQUE?

R://Quiero que solo los usuarios que esten registrados puedan enviar scripts/articulos/archivos,
ya que asi puedo llevar un mejor cotrol sobre los mismos y prevenir el envio
indiscriminado de scripts/articulos/archivos al sistema por parte de los usuarios.

Ya tenemos nuestras razones para crear nuestro sistema de registro de usuarios, claro que pueden
haber muchas razones dependiendo del tipo de web, podrian ser por ejemplo para
que solo usuarios registrados puedan bajar software/musica/videos/etc, para
restringir el acceso a ciertas zonas de la web "obligando" al usuario
a registrarse para poder "ver" dicha zona, etc…

Siempre teniendo en cuenta que las razones sean validas y que no molesten al usuario,
ya que en mi caso hace algunos meses me encontre con una web de "scripts"
la cual para poder ver los "scripts" tenias que registrarte, obviamente
lo que hice fue salir de esa web y olvidarla (por ello no les puedo dar la direccion),
tenemos que tener muy en cuenta que zonas restringir a usuarios registrados
ya que el usuario en general prefiere la comodidad y en este caso que les comento
de webs con recursos y scripts para webmasters hay muchas (pero ninguna como
esta :-P) y hay que buscar siempre la comodidad de los usuarios.

Ahora a lo que vinimos, crearemos nuestro sistema de registro de usuario, lo primero que debemos pensar
es que datos debera introducir el usuario para registrarse, como siempre deberan
de haber aunque sea dos campos basicos:

  • nick
  • password

Lo mas común para identificar a los usuarios es por medio de nick/password,
aunque también podria ser email/password, para este articulo utilizare
el primero(nick/password).

Ya sabemos que nuestra tabla de "usuarios" tendra esos dos campos:

CREATE TABLE usuarios (
      id bigint(7) NOT NULL auto_increment,
      nick char(100) NOT NULL,
      password char(100) NOT NULL,
      KEY id (id))

¿Pero
son suficientes?, tambien seria bueno tener el email de los usuarios en caso
de querer enviar informacion a los usuarios registrados y tener el nombre de
dichos usuarios para personalizar dichos emails o mensajes que le demos al usuario
en la pagina(ejemplo "hola jorge luis"), entonces nuestra tabla creceria
un poco:

CREATE TABLE usuarios (
      id bigint(7) NOT NULL auto_increment,
      nick char(100) NOT NULL,
      password char(100) NOT NULL,
      nombre char(255) default NULL,
      email char(100) default NULL,
      KEY id (id))

Listo, ya tenemos la estructura de nuestra tabla de usuarios, es pequeña y sencilla
pero para efectos prácticos y de aprendizaje es perfecta (eso depende
de ti, según lo que desees saber de tus usuarios).

Ahora viene lo sencillo,
crear el sistema de registro de usuarios, un formulario y una aplicacion que
agregue al nuevo usuario a la base de datos, para ello crearemos un formulario
del tipo:

FORM ACTION="registrar.php" METHOD="post">
      Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
      <BR>
      Email: <INPUT TYPE="text" NAME="email" SIZE=28 MAXLENGTH=100>
      <BR>
      Password: <INPUT TYPE="password" NAME="password"
      SIZE=28 MAXLENGTH=20>
      <BR>
      Nombre: <INPUT TYPE="text" NAME="nombre" SIZE=28
      MAXLENGTH=255>
      <BR>
      <INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
      </FORM>

Y ahora necesitamos una aplicacion que lo procese (registrar.php), por motivos
practicos haremos algo sencillo sin demasiadas comprobaciones (dependera de
ti mejorarlo si quieres algo mas personalizado), primero el codigo luego la
explicacion:

<?php
//AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
function quitar($mensaje)
{
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',""",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
{
$sql = "SELECT id FROM usuarios WHERE nick=’".quitar($HTTP_POST_VARS["nick"])."’";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "Error, nick escogido por otro usuario";
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "’".quitar($HTTP_POST_VARS["nick"])."’";
$sql .= ",’".quitar($HTTP_POST_VARS["password"])."’";
$sql .= ",’".quitar($HTTP_POST_VARS["nombre"])."’";
$sql .= ",’".quitar($HTTP_POST_VARS["email"])."’";
$sql .= ")";
mysql_query($sql);
echo "Registro exitoso!";
}
mysql_free_result($result);
}
else
{
echo "Debe llenar como minimo los campos de email y password";
}
mysql_close();
?>

Al principio no he echo conexion con la base de datos pero he puesto el comentario "//AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.", ya que la conexion depende de ti, si no sabes como hacer una conexion te aconsejo
buscarte un manual antes de estar queriendo hacer un sistema como este.

Vemos que he declarado una funcion, llamada quitar($mensaje), la cual recibe el parametro "mensaje",
esta funcion se encargara de deshabilitar el codigo html("<" y
">") al reemplazarlos por su respectivo codigo("<"
y ">"), ademas de reemplazar el apostrofe(’) y las comillas dobles(")
por sus respectivos codigos HTML, esto para no tener conflictos con la instruccion
sql, y al final retorna la cadena con las nuevas modificaciones en caso de haberlas:

function quitar($mensaje)
      {
      $mensaje = str_replace("<","<",$mensaje);
      $mensaje = str_replace(">",">",$mensaje);
      $mensaje = str_replace("\'","'",$mensaje);
      $mensaje = str_replace('\"',""",$mensaje);
      $mensaje = str_replace("\\\\","\",$mensaje);
      return $mensaje;
      } 

Ahora
comprobaremos que los campos de nick y password que seran los "requeridos"
como minimo para completar el registro no esten vacios, para ello utilizamos
la funcion "trim()" la cual quita los espacios al comienzo y al final
de la cadena, por lo que en caso de ser una cadena vacia o con solo espacios
en blanco retornara "", en caso de ser valido continuamos con el registro,
de lo contrario retornamos un mensaje de error:

if(trim($HTTP_POST_VARS["nick"]) != ""
      && trim($HTTP_POST_VARS["password"]) != "")

Ahora suponiendo que las cadenas estaban correctas comprobaremos que el nick seleccionado
por el usuario no exista en la base de datos, para ello hacemos una instruccion
sql para pedirle a la base de datos que nos retorne la fila donde el nick sea
igual al nick introducido con el usuario(quitandole el apostrofe, html y demas
con la funcion quitar()):

$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"]."’";
      $result = mysql_query($sql);

En caso de existir dicho nick, osea que nos devuelve una fila:

if($row = mysql_fetch_array($result))

Mostraremos un mensaje de error al usuario informandole del "incidente", de lo
contrario continuaremos con el proceso de registro.

Ahora
lo que hacemos es simplemente una instruccion sql donde insertamos en la tabla
usuarios el nick, password, nombre y email introducidos por el usuario en el
formulario, a todos estos les quitamos el html, apostrofe y demas haciendo uso
de nuestra instruccion "quitar()", y mostramos un mensaje de "exito" al usuario:

$sql = "INSERT INTO usuarios (nick,password,nombre,email)
      VALUES (";
      $sql .= "'".quitar($HTTP_POST_VARS["nick"]).”‘”;
      $sql .= “,’”.quitar($HTTP_POST_VARS["password"]).”‘”;
      $sql .= “,’”.quitar($HTTP_POST_VARS["nombre"]).”‘”;
      $sql .= “,’”.quitar($HTTP_POST_VARS["email"]).”‘”;
      $sql .= “)”;
      mysql_query($sql);
      echo “Registro exitoso!”;

Nota:Por efectos practicos hemos echo esto muy sencillo, podrian agregar más
comprobaciones como la del email o manejo de errores mysql.

Tambien podria hacerse más seguro mediante el uso de la funcion de encriptacion
md5() para el password, aunque se esta haciendo lo mas sencillo posible ya que
la finalidad de este articulo es la de enseñar como reconocer a los usuarios,
de ustedes dependen estos "detalles" a la hora de "depurar" este codigo.

Bien, listo ya tenemos la aplicacion de registro, ¿pero y ahora que?, que hago
con todos esos usuarios, ahora necesitamos que los usuarios ingresen y sean
"reconocidos" y como lo dije lo haremos por medio de cookies.

Crearemos un formulario HTML para que los usuarios introduscan su nick y password al igual que deberemos
de realizar una aplicacion ingresar.php que sera la encargada de procesar si
el usuario es valido y darle "ingreso" al sistema por medio de una
cookie.

Es recomendable tener este archivo en la carpeta raiz de nuestra web, el formulario html seria algo
asi:

<FORM ACTION="ingresar.php" METHOD="post">
      Nick : <INPUT TYPE="text" NAME="nick" SIZE=20 MAXLENGTH=20>
      <BR>
      Password: <INPUT TYPE="password" NAME="password"
      SIZE=28 MAXLENGTH=20>
      <BR>
      <INPUT TYPE="submit" CLASS="boton" VALUE="Ingresar">
      </FORM>

Y
ahora el codigo de nuestra aplicacion ingresar.php, luego la explicacion:


<?php 

//AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.

function quitar($mensaje)
{
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',""",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["nick"]) != “” && trim($HTTP_POST_VARS["password"]) != “”)
{
$nickN = quitar($HTTP_POST_VARS["nick"]);
$passN = quitar($HTTP_POST_VARS["password"]);

$result = mysql_query(”SELECT password FROM usuarios WHERE nick=’$nickN’”);
if($row = mysql_fetch_array($result))
{
if($row["password"] == $passN)
{
//90 dias dura la cookie
setcookie(”usNick”,$nickN,time()+7776000);
setcookie(”usPass”,$passN,time()+7776000);
?>
Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE=”javascript”>
location.href = “index.php”;
</SCRIPT>
<?
}
else
{
echo “Password incorrecto”;
}
}
else
{
echo “Usuario no existente en la base de datos”;
}
mysql_free_result($result);
}
else
{
echo “Debe especificar un nick y password”;
}
mysql_close();
?>

Bien, arriba ya explique que debes de realizar la conexion y explique el funcionamiento
de la funcion quitar($mensaje), asi que saltemos hasta el primer "if".

Lo primero que hacemos es comprobar que los campos de "nick" y "password" para
que no esten vacios, ya sabemos para que sirve trim() asi que no lo repetire:

if(trim($HTTP_POST_VARS["nick"]) != “”
      && trim($HTTP_POST_VARS["password"]) != “”)

Asi que continuamos suponiendo que todo este bien, ahora lo que hacemos es quitarle
el html, apostrofe comillas y demas al nick y password enviados por el usuario
para su comprobacion con la base de datos, para ello utilizamos la funcion quitar($mensaje)
que explicamos antes, y guardamos las nuevas cadenas en dos nuevas variables:

nickN = quitar($HTTP_POST_VARS["nick"]);
      $passN = quitar($HTTP_POST_VARS["password"]);

Ahora ejecutamos una instruccion sql, en la cual le pedimos a la base de datos que
de la tabla usuarios nos devuelva la fila cuyo nick corresponda por el enviado
por el usuario:

$result = mysql_query("SELECT password FROM usuarios
      WHERE nick='$nickN'");

Si devuelve una columna quiere decir que el nick SI existe en la base de datos,
de lo contrario devolvemos un mensaje de error:

if($row = mysql_fetch_array($result))
      {
      ...
      }
      else
      {
      echo "Usuario no existente en la base de datos";
      }

Ahora continuamos con el proceso suponiendo que el usuario exista en la base de datos
ahora debemos comprobar que el password sea correcto, para ello hacemos una
simple comparacion, si es correcto continuamos de lo contrario mostramos el
mensaje de password incorrecto:

if($row["password"] == $passN)
      {
      …
      }
      else
      {
      echo “Password incorrecto”;
      }

Ahora suponiendo que el password es correcto continuamos y lo proximo a hacer es establecer
las cookies de nick y password (Las cuales nombramos "usNick"/"usPass" y contienen el nick y password respectivamente) en la maquina del usuario, informamos
que se ha realizado correctamente el login y lo enviamos a la pagina principal,
una vez mas recalco que estamos haciendo esto lo mas sencillo posible, de ti
depende personalizar y mejorar los mensajes :

setcookie("usNick",$nickN,time()+7776000);
      setcookie("usPass",$passN,time()+7776000);
      ?>
      <SCRIPT LANGUAGE="javascript">
      alert("Ingreso exitoso");
      location.href = "index.php";
      </SCRIPT>
      <?

Listo, el usuario ya tiene las cookies en su sistema, ¿pero ahora que?, como
hacemos para comprobar en las paginas que queramos si el login es correcto,
osea que el usuario posee las cookies y son validas?.

Para ello crearemos un ultimo archivo, lo llamaremos login.php, este se encargara de leer las cookies
y decirnos si el usuario es un usuario registrado y que ha echo el respectivo "ingreso" al sistema, el contenido de dicho archivo seria el siguiente:

<?php
      $loginCorrecto = false;
      $idUsuarioL;
      $nickUsuarioL;
      $emailUsuarioL;
      $nombreUsuarioL; 

if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
{
$result = mysql_query(”SELECT * FROM usuarios WHERE nick=’”.$HTTP_COOKIE_VARS["usNick"].”‘ AND password=’”.$HTTP_COOKIE_VARS["usPass"].”‘”);

if($row = mysql_fetch_array($result))
{
setcookie(”usNick”,$HTTP_COOKIE_VARS["usNick"],time()+7776000);
setcookie(”usPass”,$HTTP_COOKIE_VARS["usPass"],time()+7776000);
$loginCorrecto = true;
$idUsuarioL = $row["id"];
$nickUsuarioL = $row["nick"];
$emailUsuarioL = $row["email"];
$nombreUsuarioL = $row["nombre"];
}
else
{
//Destruimos las cookies.
setcookie(”usNick”,”x”,time()-3600);
setcookie(”usPass”,”x”,time()-3600);
}
mysql_free_result($result);
}
?>

Lo primero que hacemos es declarar unas variables que utilizaremos para guardar
los datos del usuario en caso de tener las cookies en su sistema y de estas
ser correctas:

$loginCorrecto = false;
      $idUsuarioL;
      $nickUsuarioL;
      $emailUsuarioL;
      $nombreUsuarioL;

Hay una variable boleana que tenemos que mirar de cerca y es la de $loginCorrecto
ya que esta sera la que utilizaremos para comprobar el login en nuestros archivos,
mas adelante veremos como.

Seguidamente lo que hacemos es comprobar que las cookies existan, si no existen pues no hay problema
simplemente no hay "ingreso" :

if(isset($HTTP_COOKIE_VARS["usNick"]) &&
      isset($HTTP_COOKIE_VARS["usPass"]))

Ahora lo que hacemos es una sentencia sql, en la cual le pedimos a la base de datos
que nos devuelva la fila donde el nick y password correspondan al nick y password
guardado en las cookies:

$result = mysql_query("SELECT * FROM usuarios WHERE
      nick='".$HTTP_COOKIE_VARS["usNick"].”‘ AND password=’”.$HTTP_COOKIE_VARS["usPass"].”‘”);

Si ese nick y password corresponden a una fila en la base de datos esto quiere
decir que son correctos de lo contrario la informacion de las cookies esta mal
y debemos destruirlas:

if($row = mysql_fetch_array($result))
      {
      ...
      }
      else
      {
      //Destruimos las cookies.
      setcookie("usNick","x",time()-3600);
      setcookie("usPass","x",time()-3600);
      }

Si la informacion es correcta procedemos con el ingreso, establecemos de nuevo
las cookies con lo que se actualiza el tiempo de destruccion a otros noventa
dias apartir de ahora:

setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
      setcookie(”usPass”,$HTTP_COOKIE_VARS["usPass"],time()+7776000);

Seguido de esto establecemos la variable $loginCorrecto a "true", y las otras
variables las llenamos con la informacion del usuario:

$loginCorrecto = true;
      $idUsuarioL = $row["id"];
      $nickUsuarioL = $row["nick"];
      $emailUsuarioL = $row["email"];
      $nombreUsuarioL = $row["nombre"];

Listo ya tenemos nuestro archivo "login.php", ahora ¿como lo utilizamos?,
bien supongamos que queremos en nuestro "index.php" darle la bienvenida
al usuario en caso de estar ingresado en el sistema deseamos saludarlo por su
nick o nombre en caso contrario lo saludaremos como visitante, para ello tendriamos
que incluir el archivo "login.php" al comienzo de nuestro archivo
"index.php" asi:

Nota:Antes de incluir el "login.php" debe recordar realizar la conexion con la base de datos,
de lo contrario obtendra errores.

<?php
      //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
include("login.php");
...

Con eso el "login.php" se encargara de realizar las acciones que vimos
arriba, ahora en nuestro "index.php" donde queramos saludar al visitante
ponemos lo siguiente:

... if($loginCorrecto)
{
echo "Estas identificado en el sistema como ".$nickUsuarioL;
}
else
{
echo "Bienvenido visitante, el sistema no te ha reconocido";
}
...

Como ven, hicimos uso de la variable $loginCorrecto la cual sera "true"
en caso de que el usuario fuera reconocido por el sistema, de lo contrario sera
"false".

Y asi podemos usarlo en muchas areas, supongamos que tenemos una seccion donde solo pueden accesar
los usuarios registrados, la llamaremos "restringida.php", entonces lo que hariamos para prevenir que usuarios no registrados vean el contenido seria algo asi:

<?php
      //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS. 

include("login.php");

if($loginCorrecto)
{
echo "Aqui el contenido solo para usuarios registrados";
}
else
{
echo "El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
}
?>

Eso es todo, espero haya quedado claro. PD: Sobre el proceso de "logout"
o "salir" no lo explico ya que es algo muy sencillo, simplemente se
"borran" las cookies.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (61 votos, promedio: 4.08 de 5)
Loading ... Loading ...

Sobre el autor

Jorge Luis Martinez M
Encargado del sitio de Mis códigos en Jlmnetwork.com

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

335 comentarios en total.

Páginas: « 1 [2] 3 4 »

  1. No Registrado 11.12.2004 - 05:43 - #

    Hola, solo queria saber, si me podrian decir como puedo hacer para que en una pagina de mi web solo puedan entrar, socios, soy muy novato en esto.
    Gracias de antemano.
    Fevi

  2. No Registrado 11.12.2004 - 05:58 - #

    Hola, solo queria saber, si me podrian decir como puedo hacer para que en una pagina de mi web solo puedan entrar, socios, soy muy novato en esto.
    Gracias de antemano.Fevi47@hotmail.com
    Fevi

  3. No Registrado 11.12.2004 - 12:06 - #

    HOLA YO AGO TODO LO QUE ME DiCE LA PAGINA PERO NO LOGRO QUE ANDE E INCLUSO TENGo UNA IP FiJA Y PUBLICA SI ALGUIEN ME PUDE AGUDARE LES DEJO MI DiRECcION DE MAIL machis_dj@curuzu.net

  4. aLeaTioN 19.12.2004 - 17:38 - #

    he probado todo y casi todo me funciona referente a este genial tutorial, solo me falla una cosa: las cookies

    cuando pones esto :

    setcookie(”cNick”, $nick,time()+7776000);
    setcookie(”cPass”, $pass,time()+7776000);

    he mireado en la carpeta de archivos temporales de internet y se crea un archivo para esas cookies, lo malo es que solo guarda una, si kieres guardar otra lo tienes ke hacer a parte y eso es muy problemático.

    si pudieran dar alguna solución lo agradecería

  5. No Registrado 26.12.2004 - 22:50 - #

    ami tambien me aparece el mismo error de las cookies!!

    y antes ya habia usado ese script y funcionaba todo a la perfeccion!
    y recuerdo perfectamente que en el archivo ingresar no tenia ningun tipo de codigo html alguien dijo eso por ahi! tiene razon! no debe existir html!

    ahora que lo puse me sale error! kitenlo

  6. No Registrado 26.12.2004 - 23:27 - #

    jajaja soy el del mensaje de arribita!!
    ya kite el html y aun si no funciona!

    x cierto si alguien quiere que los datos del la persona le lleguen asu email yo se como hacerlo! escribanme a bjosue@hotmail.com con el asunto:

    [Datos x email] | si no no abrire su mensaje ok?

  7. aLeaTioN 16.01.2005 - 12:47 - #

    he encontrado la solucion a lo de que no se puedan hacer dos cookies,
    creas una variable nueva, que se llame logueo por ejemplo, y que sea un array que contenga el user y el pass :), kien no sepa crear arrays ke lo mire por ai, ke es facil

  8. lalogaden 26.01.2005 - 13:10 - #

    hola, saluydos a todos por a akí, la verdad es ke e hecho todo con los pasos ke estna al pie de la letra pero me saka un error, de ahí en fuera toso esta bien con eso de la conección a la base de datos y lo demas.
    Ahora muestro mi problema ke me saka:

    Al parecer se conecta a mi base de datos, pero cuando integro mis datos, entran directamente sin problema.
    el error es ke cuando doy a mi boton de registrar, me indica despues de ke corre todo en el servidor esto:
    “Debe llenar como minimo los campos de email y password “
    Al parecer parece me descarta el hecho de ke no puse mi mail, ó password, pero en realidad si los pongo.
    Cual será el error ke estoy teniendo?
    en ke parte del codigo del archivo registrar tengo ke restaurar?

  9. lalogaden 26.01.2005 - 13:11 - #

    hola, saluydos a todos por a akí, la verdad es ke e hecho todo con los pasos ke estna al pie de la letra pero me saka un error, de ahí en fuera toso esta bien con eso de la conección a la base de datos y lo demas.
    Ahora muestro mi problema ke me saka:

    Al parecer se conecta a mi base de datos, pero cuando integro mis datos, entran directamente sin problema.
    el error es ke cuando doy a mi boton de registrar, me indica despues de ke corre todo en el servidor esto:
    “Debe llenar como minimo los campos de email y password “
    Al parecer parece me descarta el hecho de ke no puse mi mail, ó password, pero en realidad si los pongo.
    Cual será el error ke estoy teniendo?
    en ke parte del codigo del archivo registrar tengo ke restaurar?

  10. ShinDragon 12.02.2005 - 22:47 - #

    Tras mirar y remirar el hilo del foro sólo veo gente con problemas y nadie que dé soluciones, el rpoblema de error de cannot modify header informatón que les sale a algunos es pq la función setcookie debe hacerse antes de escribir nada en la web, es decir si enmarcamos el código en una página con módulos por ejemplo, obetendremos ese error, la solución es poner al principio de la web (no del script), ob_start(); y al final de la misma ob_end_flush(); no me pregunteis para que sirve pq no lo sé, pero funciona.

    El otro problema de que no se logea en las páginas lo tengo yo y tampoco lo he podido solucionar, al parecer tengo un grabe problema con las variables globales ya que cuando se creó este tutorial estas se usaban habitualmente y estaban en ON, pero en las últimas versiones de PHP estan en desuso y configuradas a OFF esto se puede cambiar modificando el archivo php.ini, pero no me parece una buena opción ya que si está en desuso usarla sería como limitar la vida media de nuestra web y forzar una readaptación del código en un futuro.

    En definitiva el tutorial no está mal, pero está obsoleto.

  11. No Registrado 27.02.2005 - 22:10 - #

    y a alguno no le a dado por crear un archivo zip, rar, o lo que sea con unas web demos con el sistema ya creado y que cada cual lo modifique a su gusto.

  12. No Registrado 01.03.2005 - 15:11 - #

    kawoq, Saludos amigos, he estado trabajndo este tutorial, y me ha funcionado, bueno eso es lo que digo yo pues no me ha marcado ningun error.

    Mi pregunta es como realmente compruebo, si el sistema exigirá estar registrado, pues haciendo pruebas locales, es muy dificil determinarlo.

    ¿A donde se van (ruta)las cookies que genera este sistema?
    ¿Como se puede hacer un boton de Salir(para borrar las cookies?

    destruir la cookies solo así:
    [PHP]
    < ?
    {
    //Destruimos las cookies.
    setcookie(”usNick”,”x”,time()-3600);
    setcookie(”usPass”,”x”,time()-3600);
    }
    ?>
    Hasta pronto

    [/PHP]

    Gracias por las respuestas.

    Saludos.

    facil, vas al navegador de internet, - opciones de internet - eliminar cookies

  13. -chukie- 01.03.2005 - 19:20 - #

    yo he estado “mejorando” el script le puso un logout y para cambiar password

    logout.php
    < ?php
    if ($_COOKIE["usNick"]) { //Si está la cookie
    setcookie (”usNick”);
    setcookie (”usPass”);
    } //Esto lo unico que hace es borrar el cookie
    ?>

    Esta para cambiar el password
    change.php

    Nick :

    Old Password:

    Password:

    getchange.php
    < ?php
    $link = mysql_connect(”freecoolsite.com”, “habbocau_algo”, “antro”);
    mysql_select_db(”habbocau_algo”, $link);

    $HTTP_COOKIE_VARS["nick"];
    $HTTP_COOKIE_VARS["oldpass"];
    $HTTP_COOKIE_VARS["password"];
    $resp = mysql_query (”SELECT password FROM usuarios WHERE nick=’$nick’”);
    $row = mysql_fetch_array ($resp);
    $passvieja = $row["password"];
    if ($oldpass == $passvieja)
    {
    mysql_query (”UPDATE usuarios SET password=’$password’ WHERE nick=’$nick’”);
    echo “La contraseña ha sido cambiada exitoamente.”;
    }
    else{
    echo “Error: La contraseña no pudo cambiarse.”;
    }
    ?>

    estos scripts son si has echo al pie de la letra el script principal ( has hecho igual la tabla los campos usuarios,passwords,etc… )

    PD: Esta muy bueno el script ;)

  14. -chukie- 01.03.2005 - 19:29 - #

    ya hice el sistema de usuarios en un .zip para que se lo descarguen y lo descompriman

    http://www.habbocau.freecoolsite.com/sdu.zip

  15. No registrado 02.03.2005 - 11:56 - #

    Pusiste mal en enlace. (Menos mal que me di cuenta)

    En realidad es:

    http://habbocau.freecoolsite.com/sdu.zip (sin los WWW)

    Bueno, voy a ver qué tal está el PHP. Gracias.

    PD: no soy ninguno de los que escribieron anteriormente, por evitar dudas. ;)

  16. No Registrado 02.03.2005 - 12:27 - #

    ¡¡Funciona!!! Gracias! :D Ahora lo editaré para mi web. Gracias por exponerlo, ha sido de grandísima ayuda.

  17. No Registrado 03.03.2005 - 19:17 - #

    alguien me puede decir como hacer ´para reconocer al usuario para que entre a paginas de “solo usuarios” porque ya habia hecho un codigo:

    < ?php
    if ($_COOKIE["usNick"]) {
    //Mostrar contenido debido
    }
    else {
    echo ““;
    }
    ?>

    si tienes la cookie si muestra lo ke pones pero si no la tiene se actualizaa la misma pagina en donde esta no te lleva al index.php

  18. -chukie- 03.03.2005 - 19:33 - #

    ya resolvi como hacerlo

    < ?php
    //Escribes en la variable pagina todo el body de tu pagina

    $pagina = “Aki todo el body ke kieras ke aparesca en tu pagina cuando el usuario esta registrado”;

    if ($_COOKIE["usNick"]) {
    //Mostrar contenido debido
    echo $pagina;
    }
    else {
    echo ““;
    }
    //Tambien lo púedes redireccionar a otra pagina cambiando el url o dejarlo mas segundos cambiando el 1
    ?>

  19. -chukie- 03.03.2005 - 19:35 - #

    Tambien al echo del else le puedes poner algo asi como
    No estas autorizado para ver esta pagina! o algo asi

    < ?php
    //Escribes en la variable pagina todo el body de tu pagina

    $pagina = “Aki todo el body ke kieras ke aparesca en tu pagina cuando el usuario esta registrado”;

    if ($_COOKIE["usNick"]) {
    //Mostrar contenido debido
    echo $pagina;
    }
    else {
    echo “Solo usuarios registrados pueden ver esta pagina“;
    }
    //Tambien lo púedes redireccionar a otra pagina cambiando el url o dejarlo mas segundos cambiando el 1
    ?>

  20. No Registrado 05.03.2005 - 18:53 - #

    url]http://habbocau.freecoolsite.com/sdu.zip[/url] (sin los WWW)

    Me interesaria acceder a esta página, que puso -chukie-, pero no tengo acceso directo a ella. Por favor, si alguno habeís podido descargar el archivo de un sistema de usuario, que me diga cómo?.

    Muchas gracías.

  21. -chukie- 09.03.2005 - 20:52 - #

    eske ya kite el archivo de mi hosting :S pero lo unico ke hice de nuevo fue poner cambiar password y logout que ya puse los codigos

  22. No Registrado 10.03.2005 - 05:44 - #

    aLeaTioN, he encontrado la solucion a lo de que no se puedan hacer dos cookies,
    creas una variable nueva, que se llame logueo por ejemplo, y que sea un array que contenga el user y el pass :), kien no sepa crear arrays ke lo mire por ai, ke es facil

    A mi me pasaba el mismo error que a ti, pero no se que solucion has usado, puedes explicarla un poco más?

    Mi error es solo con las cookies:

    Warning: Cannot modify header information - headers already sent by (output started at C:\proyecto\home\conexion.php:14) in C:\proyecto\home\procesar_abrirsesion.php on line 29

    Warning: Cannot modify header information - headers already sent by (output started at C:\proyecto\home\conexion.php:14) in C:\proyecto\home\procesar_abrirsesion.php on line 30

    ————–

    setcookie(”usDni”,time()+7776000);
    setcookie(”usPass”,time()+7776000);

  23. No Registrado 10.03.2005 - 06:19 - #

    Error solucionado.

    Ambas funciones de cookies tienen que estar antes que cualquier código HTML.

    Tened cuidado al poner el include() con la funcion de conexión, ahi se os puede haber colado algo.

  24. No Registrado 15.03.2005 - 02:58 - #

    al final tanto mensaje m eperdi, como quedo la cosa??. Sobre todo el boton de logout

  25. No Registrado 16.03.2005 - 06:26 - #

    buenos dias yo quiero hacer una pagina web con inicio de sesion de usuarios pero no tengo php y no se como hacerlo alguien me podria ayudar, gracias

  26. l2uben 19.03.2005 - 01:45 - #

    ke se supone ke ay ke acer con todo eso ke sale?
    eske yo no se como se have me podriais ayudar?

    rrojo@hotmail.com

    gracias

  27. No Registrado 20.03.2005 - 18:10 - #

    A ver, lo primero felicitar por el manual, me pasa lo siguiente, yo soy muy ordenadito, y he metido dentro de una carpeta todos los .php y .html del registro.

    Entonces desde mi index.php de la carpeta raiz o cualquier pagina que no este dentro de la propia carpeta de “registro”, pues me dice que no me reconoce como usuario autentificado, yo creo que es un problema de variables.

    yo incluyo este codigo en mis paginas pero para todas las paginas php o html que estan fuera de la carpeta “Registro” la variable if($loginCorrecto) es false, sin embargo meto esa misma pagina dentro de la citada carpeta y me dice “bienvenido”.

    por que? variables globales? problema de los cookies? los cookies solo funcionan para las paginas de una carpeta?

    < ?php
    include (”../conexion.php”);
    include (”login.php”);
    if($loginCorrecto)
    {
    echo “Bienvenido el sistema te ha reconocido”;
    }
    else
    {
    echo “Bienvenido visitante, el sistema no te ha reconocido, autentificate”;
    }
    ?>

    para una pagina que esta fuera de la carpeta registro tengo que modificar del codigo de arriba, estas dos lineas nada mas, por razones claras.

    include (”conexion.php”); por que ahora esta en el raiz
    include (”Registro/login.php”); por que login está en la carpeta Registro.

    yo he probado a poner a pelo $loginCorrecto=true en la pagina que no funciona y me entra.

    Un saludote

    Hugo

  28. Mr. Desmauser 22.03.2005 - 16:37 - #

    http://www.habbocau.freecoolsite.com/sdu.zip
    No puedo descargar le archivo, alguien que me lo pase o como le hacemos. Pero a mi me urge!!

  29. No Registrado 22.03.2005 - 17:44 - #

    HOLA, ESTA MUY INTERESANTE SU CODIGO Y ME HA FUNCIONADO TODO A EXCEPCION DEL MOMENTO EN QUE HAGO EL LOGIN, PUES ME SALE ESTE ERROR CUANDO INTENTA ABRIR EL INDEX UNA VEZ DIGITADO EL USER Y EL PASSWORD:
    ———————————————-

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 43

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 44

    ———————————————-

    Y ME DIRIGE HACIA EL INDEX PERO SIGUE DICIENDO QUE SOY ·VISITANTE·
    LE AGRADEZCO MUCHO SI ME RESPONDE… GRACIAS.

    alexmolospi@yahoo.es

  30. No Registrado 22.03.2005 - 17:47 - #

    Mich Buchanan, ingresar.php:
    [PHP]< ?php
    // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (mysql_error());

    include(’identificar.inc.php’);

    //Inicializamos la variable sid para utilizarla más tarde
    $sid = md5(SID);

    function quitar($mensaje)
    {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\″,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["password"]) != “”)
    {
    $nickN = quitar($_POST["nick"]);
    $passN = quitar($_POST["password"]);

    $result = mysql_query(”SELECT id, password FROM usuarios WHERE nick=’$nickN’”);
    if($row = mysql_fetch_array($result))
    {
    if($row["password"] == md5($passN))
    {
    //Introduce en la BD los datos encriptados de IP,Host,y navegador
    $identificador = md5(get_full_ip() .’-’. browser_detection());
    $sql = “Update usuarios Set
    sid = ‘”.$sid.”‘,
    identificador = ‘”.$identificador.”‘,
    ultima_visita = NOW()
    Where
    id = ‘”.$row['id'].”‘”;
    mysql_query($sql) or die (mysql_error());
    //90 dias dura la cookie
    setcookie(”usNick”,$nickN,time()+7776000);
    setcookie(”usPass”,$sid,time()+7776000);
    //También las de sesión
    $_SESSION['usNick'] = $nickN;
    $_SESSION['usPass'] = $sid;
    $_SESSION['id'] = $row['id'];
    ?>

    < ?
    }
    else
    {
    echo ‘Password incorrecto

    Login
    ‘;
    }
    }
    else
    {
    echo ‘Usuario no existente en la base de datos

    Login
    ‘;
    }
    mysql_free_result($result);
    }
    else
    {
    echo ‘Debe especificar un nick y password

    Login
    ‘;
    }
    mysql_close();
    ?> [/PHP]

    registrar.php:
    [PHP]< ?php
    // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    function quitar($mensaje)
    {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\”,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["email"]) != “”)
    {
    $sql = “SELECT id FROM usuarios WHERE nick=’”.quitar($_POST["nick"]).”‘”;
    $result = mysql_query($sql);
    if($row = mysql_fetch_array($result))
    {
    echo ‘Error, nick escogido por otro usuario

    Registro
    ‘;
    }
    else
    {
    $sql = “INSERT INTO usuarios (nick,password,nombre,email) VALUES (”;
    $sql .= “‘”.quitar($_POST["nick"]).”‘”;
    $sql .= “,md5(’”.quitar($_POST["password"]).”‘)”;
    $sql .= “,’”.quitar($_POST["nombre"]).”‘”;
    $sql .= “,’”.quitar($_POST["email"]).”‘”;
    $sql .= “)”;
    mysql_query($sql);
    echo ‘Registro exitoso!

    Index
    ‘;
    }
    mysql_free_result($result);
    }
    else
    {
    echo ‘Debe llenar como minimo los campos de email y password

    Registro
    ‘;
    }
    mysql_close();
    ?>[/PHP]

    logout.php:
    [PHP]// Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    // Cambiamos de la base de datos el valor aleatorio de la cookie por si acaso fue robada
    $sql = “UPDATE usuarios SET
    sid = ‘”.md5(rand(0,time())).”‘,
    identificador = ‘”.md5(rand(0,time())).”‘,
    ultima_visita = NOW()
    Where
    id = ‘”.$_SESSION['id'].”‘”;
    mysql_query($sql) or die (mysql_error());

    //Destruimos las cookies.
    setcookie(”usNick”,”x”,time()-3600);
    setcookie(”usPass”,”x”,time()-3600);
    setcookie(”Acepta”,”x”,time()-3600);

    // Destruimos la sesión
    session_destroy();
    ?>

    [/PHP]

    y el fichero tabla.sql para importar con phpmyadmin o como queráis :

    [PHP]# phpMyAdmin SQL Dump
    # version 2.5.5-pl1
    # http://www.phpmyadmin.net
    #
    # Servidor: vigilantes.no-ip.com
    # Tiempo de generación: 05-02-2004 a las 02:52:30
    # Versión del servidor: 4.0.17
    # Versión de PHP: 4.3.5RC2
    #
    # Base de datos : `aaaa`
    #

    # ——————————————————–

    #
    # Estructura de tabla para la tabla `usuarios`
    #

    DROP TABLE IF EXISTS `usuarios`;
    CREATE TABLE `usuarios` (
    `id` bigint(7) NOT NULL auto_increment,
    `nombre` varchar(100) NOT NULL default ”,
    `nick` varchar(30) NOT NULL default ”,
    `password` varchar(32) NOT NULL default ”,
    `sid` varchar(32) NOT NULL default ”,
    `identificador` varchar(32) NOT NULL default ”,
    `ultima_visita` timestamp(14) NOT NULL,
    `email` varchar(100) NOT NULL default ”,
    UNIQUE KEY `id_2` (`id`),
    KEY `id` (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=10 ;[/PHP]

    Como veis es básicamente la que viene en el tutorial, pero un poco modificada, bueno, espero que no os moleste que no la explique mucho, si tenéis alguna duda ya sabéis preguntadme lo que queráis y todos los fallos que le encontréis avisadlos cuanto antes.

    Y aprovecho para agradecer al foro y especialmente a Cluster su ayuda por resolver pacientemente todas mis dudas como hacen siempre con todos. :adios:

    HOLA, ESTA MUY INTERESANTE SU CODIGO Y ME HA FUNCIONADO TODO A EXCEPCION DEL MOMENTO EN QUE HAGO EL LOGIN, PUES ME SALE ESTE ERROR CUANDO INTENTA ABRIR EL INDEX UNA VEZ DIGITADO EL USER Y EL PASSWORD:
    ———————————————-

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 43

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 44

    ———————————————-

    Y ME DIRIGE HACIA EL INDEX PERO SIGUE DICIENDO QUE SOY ·VISITANTE·
    LE AGRADEZCO MUCHO SI ME RESPONDE… GRACIAS.

    alexmolospi@yahoo.es

  31. newnoise 13.04.2005 - 04:02 - #

    -Ya que no esta colgado el archivo -> http://www.habbocau.freecoolsite.com/sdu.zip, por favor pedirle a Chukie o a alguien que lo tenga que me lo envie. Por favor.
    Email: socialdistorsion@hotmail.com

  32. No Registrado 13.04.2005 - 09:39 - #

    A mi mail tambien podrias enviar este archivo que estaba en esta pagina
    http://www.habbocau.freecoolsite.com/sdu.zip

    Porque me interesa trabajar con el fichero a mi mail: sam_al75@yahoo.es

    Desde ya gracias

  33. KeRNeLL 15.04.2005 - 11:04 - #

    Hola!! me podiais enviar mi tambien?? oinatz_1@hotmail.com
    Muchisimas gracias.

  34. nenametal 21.04.2005 - 15:43 - #

    por favor enviar a mi email este archivo

    http://habbocau.freecoolsite.com/sdu.zip

    nena_metal02@yahoo.com

  35. ramon92 10.05.2005 - 23:57 - #

    < ?php
    // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    function quitar($mensaje)
    {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\”,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["email"]) != “”)
    {
    $sql = “SELECT id FROM usuarios WHERE nick=’”.quitar($_POST["nick"]).”‘”;
    $result = mysql_query($sql);
    if($row = mysql_fetch_array($result))
    {
    echo ‘Error, nick escogido por otro usuario

    Registro
    ‘;
    }
    else
    {
    $sql = “INSERT INTO usuarios (nick,password,nombre,email) VALUES (”;
    $sql .= “‘”.quitar($_POST["nick"]).”‘”;
    $sql .= “,md5(’”.quitar($_POST["password"]).”‘)”;
    $sql .= “,’”.quitar($_POST["nombre"]).”‘”;
    $sql .= “,’”.quitar($_POST["email"]).”‘”;
    $sql .= “)”;
    mysql_query($sql);
    echo ‘Registro exitoso!

    Index
    ‘;
    }
    mysql_free_result($result);
    }
    else
    {
    echo ‘Debe llenar como minimo los campos de email y password

    Registro
    ‘;
    }
    mysql_close();
    ?>

    Siguiendo el procedimiesto me sale este error en el archivo registrar.php

    Parse error: parse error, unexpected ‘\”‘, expecting T_STRING or T_VARIABLE or T_NUM_STRING

    /registrar.php on line 29

    ésto sucede cuando trato de probar ingresando un usuario en index.php

    Gracias por su aporte :arriba:

  36. No Registrado 14.05.2005 - 00:37 - #

    Hola alguien seria tam amable de ayudarme con este sistema ya que ya pude contnectar todo pero los datos no se almacenan en la bace y la contraceña de los usuarios ya almacenados manualmente en la bace los reconoce pero me dice que la contraceña es incorecta fabor necesito ayuda urgente les pido que me ayuden y si alguien se anima fabor de escribirme al este mail
    yiashaq6000@yahoo.com.mx le agradeceria mucho porfabor

  37. mc_alllex 15.05.2005 - 19:26 - #

    Hola que tal, saludos a todos.
    bien, pues …aqui ba mi duda..
    tengo la pagina de http://www.ruta52.com es una comunidad tipo hi5, ringo, y puras desas, pero con la diferencia de que estamos por implementar, todo tipo de cosas como lo que anteriormente era “loquesea” ..i pues haber que pasa.
    pero pues tengo una super duda.

    el sitio lo tengo hospedado en mi dedicado, pero cuando esta funcionando, el sistema esta arriba de los 60% de recursos.
    y cuando lo suspendo el sistema baja a 0.001% y cosas, asi… en los detalles de procesos me da un error como este:

    /usr/sbin/mysqld –basedir/ –datadir/var/lib/mysql –usermysql –pid-file/var/lib/mysql/server.iznetworks.com.pid –skip-locking

    ..eh estado buscando posibles problemas, y no encuentro.. la unica explicación que me doy es que las conexiones no se cierran.

    eso puede dañar mucho?
    que me recomiendan hacer?
    oh quien me puede ayudar?

    saludos…
    ALEX SIERRA.

  38. No Registrado 11.06.2005 - 16:44 - #

    Como puedo hacer k si perdio el password pueda enviarlo a su mail, con solo poner su nick??

  39. No Registrado 19.06.2005 - 11:50 - #

    para ke les sale el error :

    Cannot modify header information - headers already sent by (output started at /home/tgrichin/public_html/top/config.php:100) o parecido

    @setcookie(”usNick”,$HTTP_COOKIE_VARS["usNick"],time()+7776000);
    @setcookie(”usPass”,$HTTP_COOKIE_VARS["usPass"],time()+7776000);

    siolo le ponen un @ eso en realidad no cura nada solo ace ke no aparesca el error ami si funciono

    por ke am i me mostraba error donde ponia el include login.php entonces solo le pones eso y a ami si funcion y funciona ala perfeccion

    saludos

  40. No Registrado 10.07.2005 - 04:22 - #

    Alguien me puede indicar los pasos a seguir para poder crear una pagina con acceso restringido. Soy muy pero que muy novato en esto. Necesito un buen tutorial de PHP y MySql.

    Podeis enviarlo a luis@berandu.com si no es molestia ;P

  41. No Registrado 13.07.2005 - 20:10 - #

    No registrado, Pusiste mal en enlace. (Menos mal que me di cuenta)

    En realidad es:

    http://habbocau.freecoolsite.com/sdu.zip (sin los WWW)

    Bueno, voy a ver qué tal está el PHP. Gracias.

    PD: no soy ninguno de los que escribieron anteriormente, por evitar dudas. ;)

    hola podrias mandarme el programa en zip?

  42. Siri 14.07.2005 - 07:42 - #

    Hola, referente a este articulo teng un problema, que relato a continuación:

    Todos los pasos me salen bien, registro al usario y me lo ingresa en la base de datos todo correctamente, el problema viene cuando, al insertar el nombre y la pass del usuario (anteriormente registrado) carga el archivo index.php y deberia salir: Estas identificado en el sistema como .$nickUsuarioL; pero sin embargo se va al Bienvenido visitante, el sistema no te ha reconocido, el problema ( creo ) este en la variable booleana $loginCorrecto o en los cookies; no se he probado de todo pero no logro dar con la tecla.

    Espero me puedan solucionar mi pequeña duda GRACIAS

  43. No Registrado 14.07.2005 - 12:04 - #

    como cual es la idea de los usuarios,, como es es ke funcionan!! no hablando del sistema y todo ese rollo, si no de que

    cual se opbetivo!!!!

  44. No Registrado 21.07.2005 - 13:10 - #

    Hola me llamo eduardo tengo 16 años, ya llevo tiempo aprendiendo lenguaje de programacion html, ya tenemos una pagina unos amigos y yo, pero el problema es ke keremos tener usuarios registrados, peor no en php, si no en lenguaje de programacion ASP y eh conseguido codigos fuente, pero ninguo me ah servido, si algun webmaster me pueda ayudar se lo agredeceira un buen, ya llevo como 1 mes buscando estos codigos y no puedo, si alguien me podria ayudar, enserio ke se los agradeceria!!! muchas gracias de antemano!

    aki les dejo los problemas ke tengo a ver si pueden ayudarme, enserio ke s elos agradeceria un buen!!
    1.- Un codigo fuente donde puedan registrarse mis usuarios y ke la base de datos los guarde (ke los tenga ocultos).
    2.- Un codigo fuente, donde ya se puedan logear mis usuarios y entren a paginas ke otros usuarios “no registrados” no puedan entrar!.

    es lo unico, y si no es mucho ke pedir, una breve explicacion de lo ke debo hacer, no le entiendo mucho a este lenguaje ASP kiziera una breve explicacion!!

    De antemano muchas GRACIAS!!

    MI URL ES: http://www.e-estilolibre.tk
    MI E-MAIL papirrin_lma@hotmail.com
    NOTA: Lo ke busco son codigos fuente para programacion ASP y no PHP, gracias!!!
    GRACIAS!

  45. No Registrado 24.07.2005 - 17:49 - #

    Hey, a aquellos que no les diga en el login que han ingresado, pero todo lo demas le valla bien e de decirles que se el error.

    en ingreso.php hay 2 partes
    hay dos codigos que se separan por un javascript que te manda a index.php. bueno pues la parte de arriva del javascript y el java script van antes que cualquier codigo arriva del todo capishe?

  46. No Registrado 04.08.2005 - 15:06 - #

    No Registrado, HOLA, ESTA MUY INTERESANTE SU CODIGO Y ME HA FUNCIONADO TODO A EXCEPCION DEL MOMENTO EN QUE HAGO EL LOGIN, PUES ME SALE ESTE ERROR CUANDO INTENTA ABRIR EL INDEX UNA VEZ DIGITADO EL USER Y EL PASSWORD:
    ———————————————-

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 43

    Warning: Cannot modify header information - headers already sent by (output started at c:\inetpub\wwwroot\ALEXMO\identificar.inc.php:203) in c:\inetpub\wwwroot\ALEXMO\ingresar.php on line 44

    ———————————————-

    Y ME DIRIGE HACIA EL INDEX PERO SIGUE DICIENDO QUE SOY ·VISITANTE·
    LE AGRADEZCO MUCHO SI ME RESPONDE… GRACIAS.

    alexmolospi@yahoo.es

    hola me llamo elisaul, de venezuela necesito hacer un sistema web con php, y ya estoy algo adelantado…pero necesito hacer una clave de acceso que diferencie cuando entre una persona con cedula o DNI personal o cuando es un Rif o DNI comercial y de verdad no se como hacerlo por favor ayudame si vale….de este sistema dependo para graduarme es mi tesis….

  47. No Registrado 04.08.2005 - 15:08 - #

    No Registrado, hola me llamo elisaul, de venezuela necesito hacer un sistema web con php, y ya estoy algo adelantado…pero necesito hacer una clave de acceso que diferencie cuando entre una persona con cedula o DNI personal o cuando es un Rif o DNI comercial y de verdad no se como hacerlo por favor ayudame si vale….de este sistema dependo para graduarme es mi tesis….

    ah por cierto mi cuentade crreo es saul_chamito@yahoo.es

  48. indie81 05.08.2005 - 05:28 - #

    Hola, estoy intentando aplicar este script en mi pagina.
    En mi caso, estoy usando el servidor en mi propio ordenador, por tanto el host es: localhost.
    El darse de alta sale correctamente, ya que en la base de datos veo que se agrega el nuevo usuario.
    Pero al volver al index y hacer Login, sigue diciendome ‘bienvenido visitante…’.
    Ademas, me salen estas lineas en el index:

    Notice: Undefined variable: idUsuarioL in C:\home\musicapolarlocal\login.php on line 10

    Notice: Undefined variable: nickUsuarioL in C:\home\musicapolarlocal\login.php on line 11

    Notice: Undefined variable: emailUsuarioL in C:\home\musicapolarlocal\login.php on line 12

    Notice: Undefined variable: nombreUsuarioL in C:\home\musicapolarlocal\login.php on line 13
    Bienvenido visitante, el sistema no te ha reconocido

    Alguno puede decirme que hacer para que me reconozca en la web despues de logearme? y a que se debe que no reconozca esas variables?

    Podeis responderme aqui o agregarme a toxicosmos1981@hotmail.com, si teneis tiempo libre y os apetece ayudar.
    Muchisimas gracias, y decir que es genial este foro y este script!

    PD: Realmente, he visto que mi mismo problema lo tiene muchisima gente. A ver si alguien es tan amable de darnos la solucion… gracias de nuevo

  49. indie81 05.08.2005 - 08:57 - #

    Por lo visto, por el motivo que sea, el codigo inicial que sale en el articulo tiene algunos fallos. ¿Que tal si alguno que ya le funcione todo bien haga una recopilacion de los fallos y como se solucionan? Asi los demas arreglamos todo de una vez…
    GRACIAS! :si:

  50. No Registrado 07.08.2005 - 04:07 - #

    pues ola a todos yo soy un novato de esto de la web aki va mi caso:bueno el caso es q yo me instale el localhost y tengo mi pagina echa pero cuando le pongo la ip q tengo actual osea pongo esto ip/index.php y nada no me sirve no me sale la pagina bueno el caso es q si alguien me kiere ayudar me agregue a el msn djjhota@hotmail.co por favor me gustaria muxo gracias saludos

  51. No Registrado 13.08.2005 - 07:17 - #

    No sirve el link podeis enviarlo a mistersuniaga15@hotmail.com por favor??

  52. No Registrado 26.08.2005 - 05:12 - #

    Necesito el Codigo ZIP ya que no he podido hacer que me funciones por favor de enviarmelo a Jansel_gt@hotmail.com Gracias

  53. zsamer 26.08.2005 - 08:49 - #

    Ayuda, Las cookies en local expiran a los 90 días, pero en el hosting se destruyen en menos de un día.

    Tengo el sistema de registro de usuarios de maestro del web, las cookies en localhost expiran en el tiempo dado, es decir en 90 días:

    setcookie(”usNick”,$nickN,time()+7776000);
    setcookie(”usPass”,$sid,time()+7776000);

    El gran problema surge cuándo subí la página a un Hosting de pago, en el cual la cookie expira en menos de un día, y sucedió lo mismo en un hosting free, no entiendo porque, ya que en localhost (mi servidor local) dura el tiempo dado en el setcookie(), que son los 90 días.

    Necesito ayuda urgente!!!

    Gracias

    zsamer

  54. No Registrado 01.09.2005 - 12:48 - #

    Hola, Esta Muy Interesante Su Codigo Y Me Ha Funcionado Todo A Excepcion De Borrar Los Cookies , Quisiera Crear Un Enlace Q Diga Logout Para Poder Eliminar Las Cookies A Ver Si Me Pueden Ayudar
    Muchas Gracias

  55. No Registrado 28.09.2005 - 08:09 - #

    Hago la consulta a la BD para ver si existe el usuario y si es asi hago :

    $_SESSION['iduser'] = $user['id'];
    ?>

    < ?

    Y en la pagina privado.php tengo esto (1 es el id del usuario q estoy probando)

    if ( $_SESSION['iduser'] == 1) {
    echo “usuario autentificado”
    }

    Y me salta el siguiente error “Notice: Undefined variable: _SESSION in …”

    ALguien me puede ayudar, gracias

  56. piojano87 19.10.2005 - 07:18 - #

    :no: Por favor, alguien podria enviarme el zip que esta colgado de esta dire: http://habbocau.freecoolsite.com/sdu.zip
    piojano87@hotmail.com

    Gracias por adelantado

  57. No Registrado 19.10.2005 - 22:49 - #

    hola, tengo el siguiente problema, quiro que solo los usuarios registrados puedan ingresar a una pagina donde se hacen modificaciones en una base de datos…… todo va bien hasta que llega la parate que pregunto si el usuario esta logeado, si no lo esta, muestro un cartel el php, pero si esta logeado tendria que mostrar el html donde tengolos formularios y eso es lo que no se hacer.
    si aguien puede darme un mano estare muy agradecido!!!!

  58. No Registrado 28.10.2005 - 13:58 - #

    Me Sale Que El Sistema Noa Me Ha Reconocido Que Pasa Que Tengoque Hacerle A Las Cookies.

  59. No Registrado 28.10.2005 - 14:24 - #

    koke, lo hago todo, me registro, se hace bien,voy a hacer login, me dice que esta bien, me manda a la pagina index.php pero me dice que soy visitante, que no me a reconocido, y no puedo entrar a la restringida,xq?

    quer me falta como soluciono porfa ayudenme mi correo es difelohe@gmail.com

  60. No Registrado 09.11.2005 - 16:27 - #

    Mich Buchanan, ingresar.php:
    [PHP]< ?php
    // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (mysql_error());

    include(’identificar.inc.php’);

    //Inicializamos la variable sid para utilizarla más tarde
    $sid = md5(SID);

    function quitar($mensaje)
    {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\″,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["password"]) != “”)
    {
    $nickN = quitar($_POST["nick"]);
    $passN = quitar($_POST["password"]);

    $result = mysql_query(”SELECT id, password FROM usuarios WHERE nick=’$nickN’”);
    if($row = mysql_fetch_array($result))
    {
    if($row["password"] == md5($passN))
    {
    //Introduce en la BD los datos encriptados de IP,Host,y navegador
    $identificador = md5(get_full_ip() .’-’. browser_detection());
    $sql = “Update usuarios Set
    sid = ‘”.$sid.”‘,
    identificador = ‘”.$identificador.”‘,
    ultima_visita = NOW()
    Where
    id = ‘”.$row['id'].”‘”;
    mysql_query($sql) or die (mysql_error());
    //90 dias dura la cookie
    setcookie(”usNick”,$nickN,time()+7776000);
    setcookie(”usPass”,$sid,time()+7776000);
    //También las de sesión
    $_SESSION['usNick'] = $nickN;
    $_SESSION['usPass'] = $sid;
    $_SESSION['id'] = $row['id'];
    ?>

    < ?
    }
    else
    {
    echo ‘Password incorrecto

    Login
    ‘;
    }
    }
    else
    {
    echo ‘Usuario no existente en la base de datos

    Login
    ‘;
    }
    mysql_free_result($result);
    }
    else
    {
    echo ‘Debe especificar un nick y password

    Login
    ‘;
    }
    mysql_close();
    ?> [/PHP]

    registrar.php:
    [PHP]< ?php
    // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    function quitar($mensaje)
    {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\”,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["email"]) != “”)
    {
    $sql = “SELECT id FROM usuarios WHERE nick=’”.quitar($_POST["nick"]).”‘”;
    $result = mysql_query($sql);
    if($row = mysql_fetch_array($result))
    {
    echo ‘Error, nick escogido por otro usuario

    Registro
    ‘;
    }
    else
    {
    $sql = “INSERT INTO usuarios (nick,password,nombre,email) VALUES (”;
    $sql .= “‘”.quitar($_POST["nick"]).”‘”;
    $sql .= “,md5(’”.quitar($_POST["password"]).”‘)”;
    $sql .= “,’”.quitar($_POST["nombre"]).”‘”;
    $sql .= “,’”.quitar($_POST["email"]).”‘”;
    $sql .= “)”;
    mysql_query($sql);
    echo ‘Registro exitoso!

    Index
    ‘;
    }
    mysql_free_result($result);
    }
    else
    {
    echo ‘Debe llenar como minimo los campos de email y password

    Registro
    ‘;
    }
    mysql_close();
    ?>[/PHP]

    logout.php:
    [PHP]// Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    // Cambiamos de la base de datos el valor aleatorio de la cookie por si acaso fue robada
    $sql = “UPDATE usuarios SET
    sid = ‘”.md5(rand(0,time())).”‘,
    identificador = ‘”.md5(rand(0,time())).”‘,
    ultima_visita = NOW()
    Where
    id = ‘”.$_SESSION['id'].”‘”;
    mysql_query($sql) or die (mysql_error());

    //Destruimos las cookies.
    setcookie(”usNick”,”x”,time()-3600);
    setcookie(”usPass”,”x”,time()-3600);
    setcookie(”Acepta”,”x”,time()-3600);

    // Destruimos la sesión
    session_destroy();
    ?>

    [/PHP]

    y el fichero tabla.sql para importar con phpmyadmin o como queráis :

    [PHP]# phpMyAdmin SQL Dump
    # version 2.5.5-pl1
    # http://www.phpmyadmin.net
    #
    # Servidor: vigilantes.no-ip.com
    # Tiempo de generación: 05-02-2004 a las 02:52:30
    # Versión del servidor: 4.0.17
    # Versión de PHP: 4.3.5RC2
    #
    # Base de datos : `aaaa`
    #

    # ——————————————————–

    #
    # Estructura de tabla para la tabla `usuarios`
    #

    DROP TABLE IF EXISTS `usuarios`;
    CREATE TABLE `usuarios` (
    `id` bigint(7) NOT NULL auto_increment,
    `nombre` varchar(100) NOT NULL default ”,
    `nick` varchar(30) NOT NULL default ”,
    `password` varchar(32) NOT NULL default ”,
    `sid` varchar(32) NOT NULL default ”,
    `identificador` varchar(32) NOT NULL default ”,
    `ultima_visita` timestamp(14) NOT NULL,
    `email` varchar(100) NOT NULL default ”,
    UNIQUE KEY `id_2` (`id`),
    KEY `id` (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=10 ;[/PHP]

    Como veis es básicamente la que viene en el tutorial, pero un poco modificada, bueno, espero que no os moleste que no la explique mucho, si tenéis alguna duda ya sabéis preguntadme lo que queráis y todos los fallos que le encontréis avisadlos cuanto antes.

    Y aprovecho para agradecer al foro y especialmente a Cluster su ayuda por resolver pacientemente todas mis dudas como hacen siempre con todos. :adios:

    no puedo loguearme, ese es l problema hise todo lo de tu tutorial, y bueno los datos encriptados como los desencripto para leerlos

  61. diego f. lopez 09.11.2005 - 17:53 - #

    Unregistered, para los que les dio el error

    Al hacerlo, me saco los siguientes errores:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:inetpubwwwrootphp
    egistro
    egistrar.php on line 27
    Registro exitoso!
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:inetpubwwwrootphp
    egistro
    egistrar.php on line 42

    Es por que en la conexion ponen el nombre de la tababla en vez de el nombre de la base de datos.

    Servidor=
    Usuario=
    Pass=
    NOMBRE DE LA BASE DE DATOS, no la tababla de datos.

    Muchas gracias por tus mensajes Mich, me han servido de mucho.

    hice todo lo que dice y segui tus archivos pero no me reconoce los usuarios que pas mich porfa ayudame

  62. mlaraweb 10.11.2005 - 17:45 - #

    Weno, mi problema es bastante mas sencillo, y es que acabo de empezar y no se como importar la tabla a phpmyadmin . Espero ke me podais responder. Gracias!!!

  63. No Registrado 13.11.2005 - 07:25 - #

    no soy un uauario rtegistrado pero si es nesesario para que me ayuden me registrare, tengo unproblema grabicimo use el manual que uds ponen lo puse aprueba en mi paguina pero me sale algo muy raro cuando yo pongo todo lo me dijiste peo cuando lo publico me sale una parte del codigo que puse y no que hacer. ademas necesito hacer un registro de usuario y que mis usuarias puedan ver la seccion restringida por un tiempo limitado de 30 dias y uqe luego cuando quieran entrar que vuelvan a dar sus datos y se les accisne un nuevo id y pasword porfabor ayudenme necesito enserio esta ayuda es para algo muy importante manden la respuesta mi correo jpkz20@yahoo.es
    porfabor ayuden me…..

  64. canvega 17.11.2005 - 10:37 - #

    hola soy nuevo en el foro.. y quisiera saber como inserto el nombre del usuario en otra pagina que no es la principal en donde se pide el apodo y la contraseña no mas. yo quiero que si la conexion es correcta me lleve a otra pagina pero que diga bienvenido “nombre real de usuario” como hago? por favor si alguien me puede ayudar les agradezco. ya tengo todo estoy trabajando con dreamweaver algunas cosas y con bloques de codigo php en otras pero me falta eso y otrs cositas gracias.

    Mi correo es canvega18@hotmail.com por si algo

  65. CbKraK 06.12.2005 - 21:47 - #

    Bueno, que mas puedo decir…EXELENTE LA GUIA…he aprendido mucho, me he dedicaod todo el dia a leerla (no es chiste), he hecho todos los pasos. Y todo me ha funcionado, alguno errores al escribir el codigo, pero todo solucionable. Mi problema esta en que tengo una pag escrita en html completamnte, y quisiera saber como le pongo proteccion para que no se pueda ver si estar registrado. Este es el codigo que me tiene mariado.
    No se en que lugar del codigo tengo que insertar el html para protegerlo de que entren en el sin permiso. He intentado varias formas, pero no encuantro la solucion, de antemano muchas gracias

    < ?php
    //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
    include(”login.php”);

    if($loginCorrecto)
    {
    echo “Aqui el contenido solo para usuarios registrados”;
    }
    else
    {
    echo “El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area”;
    }
    ?>

  66. No Registrado 13.12.2005 - 05:42 - #

    muy bueno :)

  67. snakin 14.12.2005 - 11:29 - #

    cuando copio en codigo ese que muestra el nombre de usuraio para saludarlo me deci que el sistema no lo ha reconocido y estando registrado y logeado
    que pasa????

  68. PipoUru 26.12.2005 - 16:57 - #

    Supongamos que únicamente es una intranet, el usuario se supone ya está autenticado en la red, cómo puedo utilizar esa autenticación para no pedir nuevamente usuario y clave ?

    Gracias, un abrazo.

    PipoUru.

  69. No Registrado 11.01.2006 - 14:16 - #

    Unregistered, esta chido tu articulo, no se mucho de este tipo de programacion sin embargo entendi la mayoria de las lineas, Felicidades

    vuzel la

  70. ferley 19.01.2006 - 09:09 - #

    yo tambien lo quiero sera que me lo puedesmandar , por favor,te lo agradesco mucho, artejar@gmail.com

  71. No Registrado 13.02.2006 - 16:45 - #

    Primero: esa wea esta llena de bugs.
    Segundo: Ese script esta modificado de uno original que conozco de hace tiempo.
    Tercero: Veo mucho usuario mierda aqui. Osea entro a algo para webmasters y me encuentro con gente patetica que hasta pide el zip de la wea y que cada error lo preguntan. Osea no pueden solucionar ninguna wea.
    podrian preguntar weas sobre bugs, errores de otr tipo, distintos a los tipicos como o me dio error porque no hay include al config.php, etc.
    puras weas.
    Pregunten weas decentes.
    Todos ustedes, manga de weones no se merecen ese sistema.

    Cuando vayan a copiar codigos de otras personas por lo menos dense la lata de busar un manual para entender el sql y el php.
    porque queiren todo hecho y nadie cacha niuna wea, ni aunque ahi salga escrito para que es cada linea.

    Mierda pa todos y para el que lo modifico porque cago el original xD

  72. PakoX 26.02.2006 - 22:48 - #

    Hice cambios al código y me va de maravilla en mi localhost, pero a la hora de subirlo a mi host (en lycos) no me funciona el tan mencionado problema de las cookies.

    Cuando corro la web en mi PC me crea cookies e identifica usuarios, pero cuando lo subo al internet no va.

    Si alguien sabe qué modificación podrías hacer le estaría muy agradecido.

    De antemano por la atención a este documento gracias.

  73. No Registrado 15.03.2006 - 20:14 - #

    Muy bueno el tutorial… y gracias al que posteó como borrar las cookiesss
    ;)
    h t t p : / / hinx3.ignorelist.com

  74. David Lozano 26.03.2006 - 10:11 - #

    Muy bueno el tutorial.
    Lo he probado y sin ningún problema.

    Ahora lo estoy modificando para implementarlo en thehouseofblogs.com (lo podrás ver operativo en unos días).

    Gracias!

  75. No Registrado 03.04.2006 - 08:55 - #

    Bueno, creo que los códigos estan muy buenos para guiarse. Pero sirven como ejemplos. Los que quieren que les manden ayuda. apliquense a estudiar el código, como trabaja y que hace. Más que a solicitar ayuda. Así nunca seran programadores en php si quieren todo listo y en bandeja. En la red hay un montón de manuales para aprender, sitios explicativos como este y muchos otros.
    No sean tan patudos y estudien un poquito. Luego lo agradecerán.
    Atte
    Nib.

  76. donnie 04.04.2006 - 10:40 - #

    lo que pasa es que la version de tu php es inferior a 4.3 y por eso sales ese error puesto que no contiene a esa libreria

  77. No Registrado 17.04.2006 - 11:16 - #

    Este es el de registrar.php
    < ?php
    session_start(); // Inicio de sessión

    $servidorBD=”"; // Servidor de la Base de Datos
    $usuarioBD=”";// Usuario de la Base de Datos
    $passBD=”";// Contraseña de la Base de Datos
    $nombreBD=”";// Nombre de la Base de Datos

    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    function quitar($mensaje) {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(”\’”,”"”,$mensaje);
    $mensaje = str_replace(”\\\\’”,”\;”,$mensaje);
    return $mensaje;
    }

    if(trim($_POST["nick"]) != “” && trim($_POST["email"]) != “”) {
    $sql = “SELECT id FROM usuarios WHERE nick=’”.quitar($_POST["nick"]).”‘”;
    $result = mysql_query($sql);
    if($row = mysql_fetch_array($result)) {
    echo ‘Error, nick escogido por otro usuario
    Registro‘;
    } else {
    $sql = “INSERT INTO usuarios (nick,password,nombre,email) VALUES (”;
    $sql .= “‘”.quitar($_POST["nick"]).”‘”;
    $sql .= “,md5(’”.quitar($_POST["password"]).”‘)”;
    $sql .= “,’”.quitar($_POST["nombre"]).”‘”;
    $sql .= “,’”.quitar($_POST["email"]).”‘”;
    $sql .= “)”;
    mysql_query($sql);
    echo ‘Registro exitoso!
    Index‘;
    }
    mysql_free_result($result);
    } else {
    echo ‘Debe llenar como minimo los campos de email y password
    Registro‘;
    }
    mysql_close();
    ?>

    AQUI ESTA ingresar.php
    < ?php
    session_start(); // Inicio de sessión

    $servidorBD=”"; // Servidor de la Base de Datos
    $usuarioBD=”";// Usuario de la Base de Datos
    $passBD=”";// Contraseña de la Base de Datos
    $nombreBD=”";// Nombre de la Base de Datos

    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    $sid = md5(SID);
    $loginCorrecto = false;
    $i = 1;

    function quitar($mensaje) {
    $mensaje = str_replace(”< ","<",$mensaje);
    $mensaje = str_replace(”>”,”>”,$mensaje);
    $mensaje = str_replace(”\’”,”‘”,$mensaje);
    $mensaje = str_replace(’\”‘,”"”,$mensaje);
    $mensaje = str_replace(”\\\\”,”\″,$mensaje);
    return $mensaje;
    }
    if(trim($_POST["nick"]) != “” && trim($_POST["password"]) != “”) {
    $nickN = quitar($_POST["nick"]);
    $passN = quitar($_POST["password"]);
    $result = mysql_query(”SELECT nick, identificador, password FROM usuarios WHERE nick=’$nickN’”);
    $row = mysql_fetch_array($result);
    if($row["nick"] == $nickN) {
    if($row["password"] == md5($passN)) {
    $nickN = quitar($_POST["nick"]);
    $passN = quitar($_POST["password"]);
    $result = mysql_query(”SELECT nick, password FROM usuarios WHERE nick=’$nickN’”);
    $row = mysql_fetch_array($result);
    $I = settype($row["identificador"], “double”);
    if ($I == $i) {
    $loginCorrecto = true;
    mysql_free_result($result);
    }
    else {
    $loginCorrecto = false;
    mysql_free_result($result);
    }
    if($loginCorrecto) {
    echo gettype($loginCorrecto);
    ?> < ?
    }
    else {
    echo ‘El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a este area

    registrate

    login‘;
    }
    }
    else {
    echo ‘Password incorrecto
    Login‘;
    }
    }
    else {
    echo ‘Usuario no existente en la base de datos
    Login‘;
    }
    }
    else {
    echo ‘Debe especificar un nick y password
    Login‘;
    }
    mysql_close();
    ?>

    AQUI ESTA logout.php
    < ?php // Inicio de sessión
    session_start();

    // Servidor de la Base de Datos
    $servidorBD=”";
    // Usuario de la Base de Datos
    $usuarioBD=”";
    // Contraseña de la Base de Datos
    $passBD=”";
    // Nombre de la Base de Datos
    $nombreBD=”";
    // Conecto con la base de datos
    $conectar = mysql_connect($servidorBD,$usuarioBD,$passBD) or die (”Imposible conectar con la base de datos”);
    // Selecciono la BBDD
    mysql_select_db($nombreBD,$conectar) or die (”Imposible conectar con la base de datos”);

    // Cambiamos de la base de datos el valor aleatorio de la cookie por si acaso fue robada
    $sql = “UPDATE usuarios SET
    sid = ‘”.md5(rand(0,time())).”‘,
    identificador = ‘”.md5(rand(0,time())).”‘,
    ultima_visita = NOW()
    Where
    id = ‘”.$_SESSION['id'].”‘”;
    mysql_query($sql) or die (mysql_error());

    //Destruimos las cookies.
    setcookie(”usNick”,”x”,time()-3600);
    setcookie(”usPass”,”x”,time()-3600);
    setcookie(”Acepta”,”x”,time()-3600);

    // Destruimos la sesión
    session_destroy();

    ?>

    y pues los formularios son los mismo, igual que la de mysql(base de datos)

  78. Malekith 25.04.2006 - 19:38 - #

    Bueno chicos, muchìsimas gracias de antemano a todos y especialmente a Cluster, que aunque no he hablado con èl he seguido bastante de cerca las aportaciones que ha ido haciendo durante tanto tiempo para los demàs sin recibir nada a cambio! tio muchas gracias, yo no sabrìa nada sin tus artìculos y demàs, empecè en esto haciendo pàginas en html …. y weno, ahora puedo decir que se hacer pàginas dinàmicas (no muy complejas) gracias a èl y a muchos otros que participàis aquì.

    Al principio me costò aplicar todo este còdigo para crear el sistema, pero ya los pequeños errores de sintàxis que a veces se cuelan y por esa pequeña cosa deja de funcionar todo ya los corregì (o eso creo), y pensè que aunque no me gusta la gente que quiere las cosas fàciles, que mejor soluciòn que darles lo que quieren ya que el archivo que habìais puesto ya no està vuelvo a poner otro que el que no consiga ponerlo a funcionar le recomiendo que deje esto porque no le llega el coeficiente intelectual ni siquiera para subir esto al servidor y cambiar 4 cosas que son exclusivas de su bd….

    Bien, pue aquì os dejo el archivo, està todo sacado de lo de aquì, ademàs, estoy arto de la gente que pregunta pregunta, y cuando obtienen la soluciòn no lo comparten con los demàs, yo harìa una comunidad en la que si alguien quiere saber algo tenga que aportar, de lo contrario no pueda cojer nada de tal sitio (no sabrìa como hacerlo pero weno :P), aquì os dejo el archivo, sed buenos y ayudar al prògimo sin buscar algo a cambio

    w w w .infrarol.com/loginyregistrophp.rar

    Un saludo
    Malekith

  79. Malekith 25.04.2006 - 19:42 - #

    por cierto, tengo una duda, como puedo hacer para que el e-mail sea exclusivo de la misma forma que el nick? porfas espero que no cea muxa molestia :P

    un saludp

  80. sergi 20.05.2006 - 03:41 - #

    molt guapa1

  81. TAz 20.05.2006 - 22:48 - #

    ME parece muy buena la explicacion Gracias

  82. javier 23.05.2006 - 00:20 - #

    esta muy bueno para los que empezamos yo andaba buscando scripts pero ya hare el propio grax

  83. lokotronic 24.05.2006 - 20:48 - #

    Bueno este tipo de sistema ya lo he puesto en practica pero es defaceable , no se como lo asen pero logran que el sistema reconosca a usuarios con pass incorrecta … espero y corrijan ese bug

  84. Fany 26.05.2006 - 21:12 - #

    Muchas Gracias!, me sirvio mucho tu articulo para mi trabajo de Base de Datos. Gracias.

  85. Ernesto Azueta Parra 30.05.2006 - 12:00 - #

    ese scrip tiene uno que otro error y creo que en la sintaxis…

  86. Jose Seijas 03.06.2006 - 00:19 - #

    Muy bien el articulo no trabajaba con php pero ahora que estoy aprendiendo me parecio muy facil el codigo

  87. sergio 03.06.2006 - 20:48 - #

    excelente manual implementare esto en nuestra tienda

  88. kalikaker 05.06.2006 - 10:26 - #

    Me gusta que la gente se dedique a servir sin importar el valor monetario. Pero tu tema es muy bueno y ante todo muy bien explicado. Te felicito tienes buena madera para realizar explicaciones claras.

  89. flowskull 06.06.2006 - 10:28 - #

    uuffff eso esta muy bien bro grax ^^

  90. miguel 11.06.2006 - 19:04 - #

    Hola todo me funciono excepto que al ingresar con un usuario siempre me dice en el index.php que no soy usuario registrado

  91. rafa 12.06.2006 - 10:19 - #

    esta original lo unico deberias de ponerlo para descargas. gracias

  92. rafalitovia 22.06.2006 - 09:33 - #

    creo la tabla
    CREATE TABLE usuarios (
    id bigint(7) NOT NULL auto_increment,
    nick char(100) NOT NULL,
    password char(100) NOT NULL,
    nombre char(255) default NULL,
    email char(100) default NULL,
    KEY id (id))
    pero el mysql no me deja examinarla ,tengo aruba.it
    en cambio si la creo en miarroba si que me deja
    a que puede ser debido
    garcias

  93. gines 25.06.2006 - 11:51 - #

    muy bueno y bien explicado
    aunq deberia tener mas sobre aquello q se deja al programador

  94. reyven 29.06.2006 - 20:39 - #

    la verdad me perdie ne la creacion de base de datos por que no se como haerlo

  95. grv 03.07.2006 - 14:15 - #

    como genero el archivo index.php

  96. grv 03.07.2006 - 14:31 - #

    ya lo encontre! hay que darle forma pero es muy valioso el aporte, esperen resultados

  97. Malekith 03.07.2006 - 17:54 - #

    rafalitovia, es posible que la versiòn de phpMyadmin de tu servidor sea vieja o no estè bien instalada …, y tambièn puede ser que lo que intentas es examinar el contenido de la tabla sin haber insertado una fila previamente y por eso te devuelve un valor vacìo

    un saludo

  98. Malekith 03.07.2006 - 18:01 - #

    reyven,

    lo ùnico que debes hacer es entrar en el panel de control de tu servidor o desde donde puedas entrar a la base de datos que generalmente suele ser el phpMyadmin, entonces una vez dentro vas a la pestaña SQL, y escribes el còdigo:

    CREATE TABLE usuarios (
    id bigint(7) NOT NULL auto_increment,
    nick char(100) NOT NULL,
    password char(100) NOT NULL,
    nombre char(255) default NULL,
    email char(100) default NULL,
    KEY id (id))

    Le das a enviar y se crea la tabla automàticamente :D. Te pongo un ejemplo … ummmm en el caso de estar hospedado en lycos, entras a tu cuenta de la web de lycos, luego en la parte de abajo tienes un icono llamado php4u, lo aprietas y si no tienes activada esa opcion la activas, en la siguiente pagina te sale “Administrar la base de datos” o algo similar, le das ahì y te lleva directo, lo que debes hacer ahì es ir a la parte de abajo de la pàgina que es donde aparece el formulario para que introduzcas el còdigo anterior y lo envìes, si te das cuenta lycos no tiene la pestaña de SQL, sino que debes introducir las tablas de esta otra forma

    un saludo

  99. DCelso 08.07.2006 - 04:51 - #

    Muy bueno, de veras, todo va muy bien, lo que pasa es que le he tenido que meter or die a todas las sentencias mysql_query para que no salte un warnig

  100. Hotaru 09.07.2006 - 08:19 - #

    Hola muy buen tutorial, sin embargo detecte errores de sitanxis, tanto en la parte html como en la php, a las cuales les di una solucion que la verdad no se si sea acertada. Muy buen tutorial te felicito!

Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.