Autor
|
Tema: Sistema de ingreso de usuario en PHP (Leído 25,174 veces)
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
<?php setcookie("id","0"); setcookie("nick","0"); setcookie("contraseña","0"); ?>
no es tan difícil xD sino te las borra es xk haces mal las comprobaciones o algo xD muestra luego sus valores ave k contienen
|
|
« Última modificación: 11 Abril 2007, 23:55 pm por Hans el Topo »
|
En línea
|
|
|
|
jamarchi
Desconectado
Mensajes: 151
the best foro !!!
|
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", "", "" );
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
Validar <?php include ("includes/config.php"); include ("includes/funciones.php"); //nos conectamos a mysql $cnx = conectar (); if($_POST["entrar"]){ if($_POST["username"] && $_POST["pass"]){ $contraseña = md5("$_POST[pass]");
$query = mysql_query("SELECT * FROM usuarios WHERE nick='".$_POST['username']."'",$cnx); $datos = mysql_fetch_array($query); if($datos['pass'] == $pass){ // si las pass son =// crea la cookie del usuario con la id el nick y la pass setcookie("id",$datos['id'],time()+90000); setcookie("nick",$datos['nick'],time()+90000); setcookie("pass",$pass,time()+90000); //redireccionas donde quieras login correcto } } //pa la pag de error ?>
Resumen <?php //tomaría el valor de la cookie y pediría el valor de la pass del usuario, compararía valores y si es correcto dejaria ver lo k kieras, si es incorrecto yo lo mandaría al logout sin más, y en el log out a ti te da igual k este logeado o no tu le pones las cookies a 0 y listo , en este código te puede entrar cualquiera a ver los contenidos xD solamente tiene que crearse la cookie id.
//código inseguro xD if($_COOKIE['id']) {echo "<h1> </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>" ?> Te pego un code que usaba para un jueguecillo web k te deslogeaba pasados 10 minutos, te pongo parte del code, tenía bastantes más protecciones xD. Hace time que no programo en php y bueno el code es viejo. Espero que te sirva al menos como estructura de referencia <?php //pillamos valores $user=$_COOKIE['user']; $id=$_COOKIE['id']; //actualizamos valores setcookie("user","$user",time()+600); setcookie("id","$id",time()+600);
//comprobamos valores //comprobamos si el usuario es válido y los posibles intentos de lameradas if(es_cadena($user)&&es_cadena_num($id)){ $rango=sentencia("select rango from usuario where nick like '$user' and password like '$id' limit 1"); }else{ $rango=0; }
if($rango==1) echo"Sitio protegido"; else echo"Mirón"; Te adjunto mi login <?php setcookie("user","$user",time()+600); setcookie("id","$pass",time()+600);
echo"<center><br><br>Entrando...</center>";
if(es_cadena_num($user)&&es_cadena_num($pass)){ //si son valores viables $rango=sentencia("select rango from usuario where nick like '$user' and password like '$pass' limit 1"); if($rango==3){ echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=master.php\">"; }elseif($rango==1){ echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=user.php\">"; }else{ echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=salir.php\">"; } }else{ echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=salir.php\">"; } Salir <?php setcookie("user","0"); setcookie("id","0");
echo "<center><br>Sesión Finalizada<br>Que tenga un buen día ";
echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">";
Si tienes alguna duda mirate el link de las sesiones que te pase que yo creo que mirandoselo todo esta solucionado xD La función no es gran cosa pero cumple su cometido xD <?php //letras y símbolos permitidos define("CONS_CADENA","_abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ"); //COMPRUEBA SI SON TODO CARACTERES VÁLIDOS (devuelve 1 si 0 no) function es_cadena($cadena){ //buscamos caracteres buenos $i=0; $cadena.=1; //centinela //se puede solventar todo con http://es2.php.net/manual/es/function.stripos.php while(posicion(CONS_CADENA,$cadena[$i])>=0){ $i++; } if($i==strlen($cadena)-1) //centinela return 1; else return 0; //caracteres malos }
|
|
« Última modificación: 12 Abril 2007, 00:24 am por Hans el Topo »
|
En línea
|
|
|
|
jamarchi
Desconectado
Mensajes: 151
the best foro !!!
|
Hola Gente..... Oye Hans el Topo, gracias por ese codigo esta muy bueno.... Ayer estuve probando varias modificaciones para borrar las cookies y todas me daban el mismo resultado... Lo que hacia es, me iba al index, digitaba la informacion, la pagina validar lo quequeaba y me dejaba entrar a la pagina protegido, resumen.php, cuando salia de resumen parecia que borraba las cookies pero si me iba directamente a la pagina de resumen..... me dejaba ingresar (estando deslogueado) despues de mucho darle se me ocurrio prescionar la tecla de F5 para actualizar la pagina resumen..... y adivinen que.... me mostro el mensaje de que no estaba logueado.... Creo que por ahi anda el problema.... no esta actulizando... y aunque puse este codigo que me pasaste Hans el Topo echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">";
no me esta acutalizando la pagina..... Alguna sugerencia...... Gracias
|
|
|
En línea
|
|
|
|
Luisango
|
Hola de nuevo, veo que todos los 3 mensajes que postee, no estan... :S asique te respondo a tu ultima duda, por que no lo haces mediante PHP? <?php header("Location: menu.php"); ?>
Si quieres me agregas y hablamos por msn ( thesixhalcon@hotmail.com)... PD: El foro a veces va de culo, o no se, alguien me borra los mensajes xD
|
|
|
En línea
|
Even better...
|
|
|
jamarchi
Desconectado
Mensajes: 151
the best foro !!!
|
Hola Bueno.... de hecho lo estoy haciendo en PHP, segun lo que aconsejo Hans el Topo, como lo puedes ver <?php setcookie("user","0"); setcookie("id","0");
echo "<center><br>Sesión Finalizada<br>Que tenga un buen día ";
echo "<META HTTP-EQUIV=\"refresh\" content=\"1;URL=menu.php\">"; ?>
No se si te refieres a eso .... que se puede hacer Ya te agregue al msm Saludos,
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
la página válidar que tenias lo único que miraba es que existiese una cookie llamada id... no que tuviese ni valor ni na, solo que existiese por eso te deja verla, si utilizas firefox no suele actualizar con la frecuencia que debería xD session_cache_limiter('nocache,private'); header("Cache-Control: no-store, no-cache, must-revalidate"); añade eso a las cabeeceras y listo xD
|
|
|
En línea
|
|
|
|
jamarchi
Desconectado
Mensajes: 151
the best foro !!!
|
Gracias Hans el Topo por tu respuesta.... Disculpa pero no me quedo claro donde poner eso que me dijiste, el el archivo a proteger, en el validar o en el de salir session_cache_limiter('nocache,private'); header("Cache-Control: no-store, no-cache, must-revalidate"); añade eso a las cabeeceras y listo xD Gracias nuevamente
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
añade eso a las cabeceras todas
|
|
|
En línea
|
|
|
|
Luisango
|
Te funciono lo que te pase por el msn?, lo que le pase es el logout que quitaba las cookies
Un saludo!
|
|
|
En línea
|
Even better...
|
|
|
|
|