| ||||
Re: otra opción a las sesiones Las cookies. Son más simples. 1. Simplemente, la creas: Código PHP: Código PHP: 2. para obtener el valor de la cookie, solo usa: Código PHP: Código PHP: Código PHP: |
| ||||
Re: otra opción a las sesiones la verdad que si quieres trabajar sin sesiones y con usuarios pues se te va ser mas complicado por que tendrias que estar pasando las variables de idusuario en todas las paginas, en cambio con sesiones es mucho mas facil ya que solo lo creas una vez y puedes llamarlo en todas las paginas, bueno trata de leer mas sobre sesiones. |
| |||
Re: otra opción a las sesiones Cita: con cookies no tendrias por que hacer esop.
Iniciado por ginitofl ![]() la verdad que si quieres trabajar sin sesiones y con usuarios pues se te va ser mas complicado por que tendrias que estar pasando las variables de idusuario en todas las paginas, en cambio con sesiones es mucho mas facil ya que solo lo creas una vez y puedes llamarlo en todas las paginas, bueno trata de leer mas sobre sesiones. |
| |||
Re: otra opción a las sesiones Pues no entiendo qué es lo complicado de las sesiones. La única diferencia que hay desde el punto de vista del funcionamiento básico es que hay que poner session_start() en cada página en la que se quiera usar la sesión, pero luego funciona igual, solo que en vez de $_COOKIE se usa $_SESSION.. |
| ||||
Re: otra opción a las sesiones Pues a mi me esta dando varios quebraderos de cabeza os lo puedo asegurar,ademas me da rabia porque no se si hice mal en desarrollar la pagina toda de forma local probando todo localmente y nada q a la hora de subirlo pues no consigo hacer que me funcione, he puesto el codigo pero nadie me ha ayudado....por eso toy un poco desanimadillo con las sesiones....En este hilo lo he explicado lo mejor que he podido pero no he conseguido nada.. http://www.forosdelweb.com/f18/configuracion-servidor-php-449412/ |
| |||
Re: otra opción a las sesiones Ah, bueno, pero es que eso no son sesiones.... Lo que estás haciendo es crear una sesión con cookies, pero en realidad es mucho más simple: session_start(); luego ponés todas las variables que quieras en $_SESSION para usar la sesión siempre tenés que poner session_start() una vez en cada página que la necesite. Para destruir la sesión, necesitás que esté abierta (con session_start() ) y hacés $_SESSION = array(); session_destroy() Y listo, no hay más complicaciones que eso. Además de que las 'verdaderas' sesiones guardan sus variables en el servidor, no en cookies. Tampoco necesitás usar HTTP_*_VARS, es mejor usar las formas cortas ($_POST, $_GET, etc) Las redirecciones las podés hacer con php mismo: header('Location: pagina'); exit; (el exit termina el programa, es recomendable porque de otro modo la ejecución continúa) Y en cuanto al error de cabeceras, no podés tener nada, ni una línea en blanco, ni un espacio, ni nada antes de <?php A veces puede ser que quede un caracter no visible antes de eso, me ha pasado al hacer conversiones de codificación... En fin, saludos. |
| ||||
Re: otra opción a las sesiones Gracias por la ayuda, corregi todos los errores de cabercera menos en la clase ingresar_admin donde establezco las cookies que no se xq me da, no se si lo que quiero es muy complicado, en panel_admin que es la pagina que ya quiero q este protegida con sesion si pongo lo de session_start porque incluyo la clase login_admin que es esta que es se supone donde inicializa..
Código:
A ver si saco esto adelante con vuestra ayuda y aprendo que se me esta atragantando... <?php /*Guardar datos Administrador */ $loginCorrecto = false; $nickUsuarioL; $emailUsuarioL; $nombreUsuarioL; /*Copmprobaciono cookies" : */ if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"])) { session_start(); $_SESSION["autentificado"]= "SI"; /*resultado de nick y pass guardado por las cookies */ $result = mysql_query("SELECT * FROM Admin WHERE login='".$HTTP_COOKIE_VARS["usNick"]."' AND pass='".$HTTP_COOKIE_VARS["usPass"]."'"); if($row = mysql_fetch_array($result)) { /*si los datos son correctos se actualizan las cookiees caducan a los 90 dias*/ setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000); setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000); $loginCorrecto = true; $nickUsuarioL = $row["login"]; $emailUsuarioL = $row["mail"]; } else { //Destruimos las cookies. setcookie("usNick","x",time()-3600); setcookie("usPass","x",time()-3600); } mysql_free_result($result); } ?> |
| ||||
Re: otra opción a las sesiones Gracias avlin por tu ayuda, te lo voy a poner todo y mas o menos la idea que tengo para que veas lo que quiero hacer y el sistema y tal. Es un sistema para gestionar clientes y los documentos de esos clientes....el sistema lo maneja un adminsitrador que mediante su sesion dara de alta clientes documentos etc..luego los clientes una vez dados de alta se loguearan en la zona clientes y accederan a su propia sesion... Bien el sistema de base de datos es este muy sencillo, creo las tablas y creo ya el administrador por defecto insertando datos en la tabla admin... Código PHP: index.html
Código:
Bien en esta clase ingresar_admin es donde recojo esos datos y donde establezco las odiosas cookiees y donde ya me da warnings al establecerlas (lo marco en negrita)...<form id="form1" method="post" action="ingresar_admin.php"> <fieldset class="clase1"> <legend>Identificación</legend> <label for="login">Login</label><input type="text" name="login" id="login" /><br /> <label for="pass">Password</label><input type="password" name="pass" id="pass" /><br /> </fieldset> <fieldset class="clase1"> <legend>Acciones</legend> <INPUT TYPE="submit" NAME="accion" VALUE="Aceptar" > </fieldset> </form> ingresar_admin.php Código PHP: Código PHP: Este es panel_admin.php Código PHP: Código PHP: |
| |||
Re: otra opción a las sesiones Si me permitís el atrevimiento, te propongo algunas modificaciones: Primer archivo: Código PHP: Código PHP: Código PHP: Sigo sin ver en dónde estás empezando la salida (y cuál es el motivo del error con las cookies). ¿podrías poner el mensaje completo? el error mismo indica dónde comienza la salida del programa... Saludos. |
| ||||
Re: otra opción a las sesiones jeje, avlin ahora me da 3 warnings en ingresar admin que son estos Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:8) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 46 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:8) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 46 Warning: Cannot modify header information - headers already sent by (output started at /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:8) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 50 Dos del session start y otro del primer header....Es desesperante lo de las sesiones.... |
| |||
Re: otra opción a las sesiones me equivoqué, no era en la 46 sino en la 8: output started at /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:8 'salida comenzada en /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:8' |
| ||||
Re: otra opción a las sesiones Pues en la 8 esta donde empieza el codigo phpn no he dejado ningun espacio en blanco encima ni nada no se que puede lanzar a la cabecera... <body> <?php ob_start(); include("../conectarse_bd.php"); quiza ahora el ob_start(); no le necesito... |
| |||
Re: otra opción a las sesiones tenés el <body> antes.... Nada, absolutamente NADA de texto puede enviarse, no se trata de que <?php esté al comienzo de la línea, ni de que no tenga líneas en blanco, se trata de que <?php sea lo primero que hay en el archivo... Ahí está el problema. Saludos. |
| ||||
Re: otra opción a las sesiones Bien si quite todo y en ingresar_admin solo hay code php y al ejecutarlo me da este warning del header location y volvemos a las andadas.... Warning: Cannot modify header information - headers already sent by (output started at /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php:42) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 43 El ingresar_entero... Código PHP: |
| |||
Re: otra opción a las sesiones ob_end_flush(); Esa línea manda todo lo generado al navegador... Si no vas a generar nada de texto para el navegador, no uses ob_start ni ob_end_flush, ya que de nada te sirve. Si ese es el archivo completo, podés eliminar tanto ob_start() como ob_end_flush(), no habrá diferencia de funcionamiento. Y solucionarás el problema de las cabeceras. Saludos |
| ||||
Re: otra opción a las sesiones Muy amable avlin muchas gracias, seguire con ello que veo que estas abanzando y te seguire preguntando dudillas si no lo consigo por este hilo sino te importa seguir echandome una mano, Gracias un saludo |
| ||||
Re: otra opción a las sesiones Puff no es por ser pesado, vamos quitando fallos pero siguen saliendo otros, quite los enf_flush etc...y nada que al meter el usuario por defecto da estos 3 warnings... Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /web/sites/user/6/72/54406/public/www/conectarse_bd.php:22) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 38 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /web/sites/user/6/72/54406/public/www/conectarse_bd.php:22) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 38 Warning: Cannot modify header information - headers already sent by (output started at /web/sites/user/6/72/54406/public/www/conectarse_bd.php:22) in /web/sites/user/6/72/54406/public/www/admin/ingresar_admin.php on line 41 q calvario... |
| |||
Re: otra opción a las sesiones No te desanimes, la depuración siempre lleva tiempo. Fijate que cada error te dice dónde está el problema o lo que tenés que arreglar: estos te dicen qe la salida empieza en conectarse_bd.php en la línea 22. Siempre es una buena costumbre separar los cálculos y los procesamientos de datos de lo que luego se va a mostrar, ya que de esa forma te evitás esta clase de errores. Vamos que va quedando menos ![]() Saludos. |
| ||||
Re: otra opción a las sesiones Gracias por tu paciencia y consejos jeje, este es el conectarse_bd.php Código PHP: Última edición por Javiglez; 16/12/2006 a las 04:07 |
| |||
Re: otra opción a las sesiones ¿hay líneas en blanco antes o después del código PHP (mejor dicho, antes de la apertura <?php y/o después del cierre ?>)? Un archivo incluido está en 'modo texto' por decirlo de alguna forma, cualquier cosa que no esté dentro de un bloque php será enviada como texto. Verificá que <?php sea lo primero en el archivo y que ?> sea lo último (sin líneas en blanco o espacios después) Saludos. |