Título: login Publicado por: ::: Devil ::: en 11 Septiembre 2008, 16:09 pm hola bueno sigo yo y mis problemas ael moderador del foro que cierre mi post anterior o lo borre o algo parecido jejeje
bueno ya logre hacer que el usuario se registrara en la pagina verdad. ahora mi problema es con el login codigo del login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> </head> <? include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db if(!isset($_SESSION[usuario]) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form { //Creamos el form k irá a autentificar.php para comprobar los datos con la tabla users echo '<form action="autentificar.php" method="POST"> Nick: <input type="text" name="nick" size="30"><br> Password: <input type="password" name="pass" size="30" ><br> <input type="submit" name="submit" value="Enviar"></form>'; }else{ //SI se ha logeado, mostramos el nick y la opción de deslogearse //Este sería el menú que saldría a la gente que esta logeada, se puede modificar y añadir cosas echo 'Bienvenido '.$_SESSION[usuario]; //ej Bienvenido echo '<br>Tu level es '.$_SESSION[level]; //mostramos el level del user if($_SESSION[level] == 1) { //mostramos el link para ir a la pagina privada porque el user tiene level 1 (*Nota: el level por defecto es 2, por lo tanto no se le mostrará) //*Nota2: para cambiar el level a 1, se tiene k hacer manualmente por phpmyadmin echo '<br><a href=paginaprivada.php>Ir a pagina privada</a>'; } echo '<br><a href=logout.php>Salir</a>'; //link para deslogearse, iría a logout.php } ?> <body> </body> </html> codigo de autentificar.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> </head> <? include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db if( ($_POST[nick] == ' ') or ($_POST[pass] == ' ') )//comprobamos que las variables enviadas por el form de login.php tienen contenido { Header("Location: login.php"); //estan vacías, volvemos al index }else{ //comprobamos en la db si existe ese nick con esa pass $usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' "); if($user_ok = mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index { session_register("usuario"); //registramos la variable usuario que contendrá el nick del user session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user session_register("level"); //registramos la variable level que contendrá el level del user //damos valores a las variables de la sesión $_SESSION[usuario] = $user_ok["nick"]; //damos el nick a la variable usuario $_SESSION[idusuario] = $user_ok["id"]; //damos la id del user a la variable idusuario $_SESSION[level] = $user_ok["level"]; //damos el level del user a la variable level Header("Location: login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario }else{ echo 'Nick y pass incorrectos'; } } ?> <body> </body> </html> codigo de conf.php $dbhost="localhost"; //Host del mysql $dbuser="usuario"; //Usuario del mysql $dbpass="password"; //Password del mysql $db="basededatos"; //db donde se creará la tabla users //conectamos y seleccionamos db mysql_connect("$dbhost","$dbuser","$dbpass"); mysql_select_db("$db"); //Comenzamos la sesión, esto se explica despues en el Sistema de Login session_start(); y estos dos son los errores alguien podria ayudarme con eso me da el error en session start pero por que???? Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/puntonet/public_html/login.php:7) in /home/puntonet/public_html/config.php on line 18 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/puntonet/public_html/login.php:7) in /home/puntonet/public_html/config.php on line 18 Título: Re: login Publicado por: ::: Devil ::: en 11 Septiembre 2008, 18:12 pm coloque el sessionstart al principio al final en el medio en todos lados por que segun era eso pero no me sigue dando el mismo error
Título: Re: login Publicado por: cassiani en 11 Septiembre 2008, 19:04 pm No puedes abrir la sesión después de haber escrito texto en la página, coloca session_start() unica y exclusivamente al inicio de la pagina, ya que debe ser ejecutado antes de cualquier salida HTML para que la información se envie junto con las cabeceras del HTTP.
Eso de estar regandolo en toda la pagina :-\ es mala idea Código
suerte! Título: Re: login Publicado por: ::: Devil ::: en 11 Septiembre 2008, 20:18 pm lo hice como me dijistes y me quedo de la siguiente manera
config.php <?php session_start();//iniciamos la sesion ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> </head> <? $dbhost="localhost"; //Host del mysql $dbuser="usuario"; //Usuario del mysql $dbpass="password"; //Password del mysql $db="basededatos"; //db donde se creará la tabla users //conectamos y seleccionamos db mysql_connect("$dbhost","$dbuser","$dbpass"); mysql_select_db("$db"); ?> <body> </body> </html> y me sigue dando el mismo puto error jejeje Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/puntonet/public_html/login.php:7) in /home/puntonet/public_html/config.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/puntonet/public_html/login.php:7) in /home/puntonet/public_html/config.php on line 2 Título: Re: login Publicado por: ::: Devil ::: en 11 Septiembre 2008, 20:50 pm bueno ya lo acomode jajaja que bien estoy feliz como una lombris jojojojo una simple vaina ya tengo un magister en php de tanto leer
quite el sessionstart al inicio y coloque <?php ob_start(); ?> y al final del codigo coloque <?php ob_end_flush(); ?> y ahora si no me da ningun error de codigo ni nada y ya cuando inserto los datos del login que estan correctos me redirecciona a la pagina que lo mando joojojo si alguien necesita un registro de usuarios me dice y se lo mando Título: Re: login Publicado por: lucaprodan en 16 Octubre 2008, 03:13 am hola devil, yo estoy trantando de buscar a alguien que me de una mano para hacer un loguin/out en mi sitio. La onda es que todo visitante que ingrese en mi sitio se registre loguandose, pero no se como hacerlo. Se que tengo que usar PHP y Mysql pero no se casi nada de eso.
un abrazo |