Autor Tema: problemas con sesiones en php  (Leído 3359 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado josuenmanuel

  • Sv Member
  • ***
  • Mensajes: 256
    • Mi blog personal
problemas con sesiones en php
« : enero 06, 2011, 08:55:27 am »
hola:
bueno les cuento que tengo un problema y queria ver si alguien me podia guiar.
lo que tengo que hacer es hacer un login en un archivo que se llame index.php, y que si  el usuario ingresa los datos correctos me envie al archivo bienvenido.php y me genere la sesion respectiva.
para que me entiendan mejor coloco parte del codigo con comentarios.
En el archivo index.php creo el formulario de ingreso de datos en html
Citar
<form action="index.php" method="post">
Nombre <input type="text" name="nombre">
Password <input type="password" name="password">
<input type="submit" name="enviar" value="enviar">
      </form>
este formulario hace referencia a el mismo, envio los datos a la base de datos y evaluo si los datos son correctos.
en caso sean correctos pues lo envio a la pagina bienvenido.php
Citar
$resultado=mysql_query($sql,$conexion);
    while($row=mysql_fetch_array($resultado))
    {
    $nombre=$row['nombre'];
    $password=$row['password'];
    $id_usuario=$row ['id_usuario'];
  if ($nombre==$usuario && $password==$pass)
  {
  print "<meta http-equiv=Refresh content=\"0 ; url=bienvenido.php\">";
      }
}
      ?>
hasta aqui todo bien, pero luego viene el paso que no se como hacer , y es que cuando redireccione a bienvenido.php necesito mandarle a ese archivo los datos necesarios para generar la sesion de usuario.
alguna idea de como hacer esto?, por favor ojala y alguien me pudiera ayudar o en todo caso darme otra idea de como generar la sesion con login , ok gracias  :thumbsup:

http://www.sistemasyinternet.blogspot.com/

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: problemas con sesiones en php
« Respuesta #1 : enero 06, 2011, 09:06:53 am »
No lo vas a creer pero en php crear sesiones es más fácil de lo que te has de imaginar, revisa este documento

http://www.desarrolloweb.com/articulos/235.php

Código: [Seleccionar]
<? session_start();
if (!isset($_SESSION["cuenta_paginas"])){
    $_SESSION["cuenta_paginas"] = 1;
}else{
    $_SESSION["cuenta_paginas"]++;
}
?>
<html>
<head>

solamente al inicio tenes que escribir session_start y luego manejas la variable $_SESSION en donde escribís todo lo que se te de la gana :)

Desconectado josuenmanuel

  • Sv Member
  • ***
  • Mensajes: 256
    • Mi blog personal
Re: problemas con sesiones en php
« Respuesta #2 : enero 06, 2011, 09:12:19 am »
Código: [Seleccionar]

<? session_start();
if (!isset($_SESSION["cuenta_paginas"])){
    $_SESSION["cuenta_paginas"] = 1;
}else{
    $_SESSION["cuenta_paginas"]++;
}
?>
<html>
<head>
esta parte le entiendo, se que tengo que colocar un codigo similar en mi archivo bienvenido.php
Citar
solamente al inicio tenes que escribir session_start y luego manejas la variable $_SESSION en donde escribís todo lo que se te de la gana
aqui es donde me confundo, necesito traer del archivo index.php , un valor que se lo voy a asignar a la variable $_SESSION , exactamente esa es la duda como mandar desde index.php el valor que le voy a asignar a la variable en el archivo bienvenido.php
http://www.sistemasyinternet.blogspot.com/

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: problemas con sesiones en php
« Respuesta #3 : enero 06, 2011, 09:16:01 am »
Asignalo antes de que hagas tu print. <meta ....

Otra cosa en lugar de usar print meta deberías de usar la función header de php, hay un header que es para redirect y es mejor que uses eso en lugar de una redireccion en el html del navegador.

Desconectado josuenmanuel

  • Sv Member
  • ***
  • Mensajes: 256
    • Mi blog personal
Re: problemas con sesiones en php
« Respuesta #4 : enero 06, 2011, 09:27:07 am »
ok e intentado hacer esto
Código: [Seleccionar]
  $resultado=mysql_query($sql,$conexion);
    while($row=mysql_fetch_array($resultado))
    {
    $nombre=$row['nombre'];
    $password=$row['password'];
    $id_usuario=$row ['id_usuario'];
  if ($nombre==$usuario && $password==$pass)
  {
  session_start();
  $_SESSION['id_user']=$idusuario;
 header('Location: bienvenido.php');
      }
   }

es decir al entrar al if inicie la sesion y luego le asigne el valor de el idusuario, y luego redireccione a bienvenido.php.
sin embargo no me funciona me envia una serie de errores
Citar
Warning: session_start() [function.session-start]: Cannot send session cookie
Warning: session_start() [function.session-start]: Cannot send session cache limiter
Warning: Cannot modify header information - headers already sent
http://www.sistemasyinternet.blogspot.com/

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: problemas con sesiones en php
« Respuesta #5 : enero 06, 2011, 09:32:48 am »
ok e intentado hacer esto
Código: [Seleccionar]
  $resultado=mysql_query($sql,$conexion);
    while($row=mysql_fetch_array($resultado))
    {
    $nombre=$row['nombre'];
    $password=$row['password'];
    $id_usuario=$row ['id_usuario'];
  if ($nombre==$usuario && $password==$pass)
  {
  session_start();
  $_SESSION['id_user']=$idusuario;
 header('Location: bienvenido.php');
      }
   }

es decir al entrar al if inicie la sesion y luego le asigne el valor de el idusuario, y luego redireccione a bienvenido.php.
sin embargo no me funciona me envia una serie de errores

El codigo que pusiste tiene que estar exactamente AL INICIO de la página PHP. Y no tiene que haber absolutamente nada antes. Conque tengas un solo espacio antes del "<?php" ya no te va a enviar los headers.


Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: problemas con sesiones en php
« Respuesta #6 : enero 06, 2011, 09:43:59 am »
estimado mxgxw que me instruyo en php, se te olvida que no debe de ir al inicio de php sino que antes de cualquier output al browser  x_x espero no equivocarme o equivocar a nadie  :dumb:

Desconectado josuenmanuel

  • Sv Member
  • ***
  • Mensajes: 256
    • Mi blog personal
Re: problemas con sesiones en php
« Respuesta #7 : enero 06, 2011, 09:58:41 am »
Gracias mxgxw  y rdoggsv, ya logre solucionar el problema , solo era cosa de poner primero el codigo php y luego el codigo html.
al menos ahorita e logrado superar esta parte ,  :sur:
http://www.sistemasyinternet.blogspot.com/

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: problemas con sesiones en php
« Respuesta #8 : enero 06, 2011, 10:22:45 am »
estimado mxgxw que me instruyo en php, se te olvida que no debe de ir al inicio de php sino que antes de cualquier output al browser  x_x espero no equivocarme o equivocar a nadie  :dumb:

Así es :) Estás en lo correcto así como vos decis tiene que estar antes de cualquier output.

Otro consejo útil es que cuando se hacen archivos de Header o para incluir no cerrar el ?>

Ejemplo:
Código: [Seleccionar]
<?php
$variableInclusion 
"MiVariable";

function 
NumeroAleatorio() {
  return 
4// Seleccionado del resultado de lanzar los dados.
}

¿Por qué?

Sobre todo cuando se trabaja con frameworks que hacen monton de inclusiones sin querer se nos puede ir un espacio despues del "?> " y no tienen idea de los dificil que es identificar este tipo de errores cuando se tienen un monton de archivos a incluir.

PHP detecta el EOF (Fin de archivo) como equivalente a ?>