|
81
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
en: 11 Abril 2007, 21:11 pm
|
Hola a todos y gracias por responderme ..... 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 <? //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 <? $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 setcookie("id", "", "" );
|
|
|
82
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
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 <? $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 .......
|
|
|
83
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
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? <? //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 ? Saludos,
|
|
|
84
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
en: 10 Abril 2007, 17:00 pm
|
Hola Hans el Topo y toda la gente..... Pues vamos muy bien..... ..... 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.phpen logout.php tengo lo siguiente <? //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 ? Gracias.... Saludos,
|
|
|
86
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
en: 9 Abril 2007, 18:05 pm
|
Gracias por las respuestas..... Entonces... quiere decir que si quito esto <!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,
|
|
|
87
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
en: 8 Abril 2007, 07:03 am
|
Hola Gente..... ahora si.... tamos listos, ya estan hechos y probados cada uno de los archivos.... 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<!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> </td> <td> <div align="right"> <input name="entrar" type="submit" id="entrar" value="Entrar"> </div></td> </tr> </table> </form> </div> </body> </html>
validar.php<!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<!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> </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> </p>"; echo"<a href='logout.php'>Salir</a>" ?> </body> </html>
logout.php<? //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<?php $HOSTNAME = "localhost";//SERVIDOR $USERNAME = "root"; //USUARIO $PASSWORD = ""; //CONTRASEÑA $DATABASE = "minasthirit"; //BASE DE DATOS minasthirit ?> funciones.php<? /*** 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 Saludos
|
|
|
88
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
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 <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> </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 <?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
|
|
|
89
|
Programación / PHP / Re: Sistema de ingreso de usuario en PHP
|
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.... Gracias por tenerme pendiente, y creo que si voy a hacerte mas consultas pero primero quiere poner todo bien.... Saludos,
|
|
|
|
|
|
|