Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Hola, tengo un problema con una pagina con sesiones php, en una pagina login.php tengo un formulario html pidiendo el nombre de usuario, al ingresar ...
  #1 (permalink)  
Antiguo 02/08/2009, 23:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Ayuda con sesiones

Hola, tengo un problema con una pagina con sesiones php, en una pagina login.php tengo un formulario html pidiendo el nombre de usuario, al ingresar a la pagina index.php me muestra el nombre y apellidos del usuario ingresado, al hacer click en un enlace a href hacia la pagina datos_usuario.php me muestra los datos personales del usuario pero el problema esta al ir nuevamente a la pagona index.php o al actualizar la pagina, los datos de la base de datos ya no se muestran. Que podria estar haciendo mal?. Espero sus respuestas, gracias de antemano
  #2 (permalink)  
Antiguo 02/08/2009, 23:35
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Ayuda con sesiones

Estimado luislb seria tan amable de publicar el codigo de su index.php para revisarlo y poderle dar una respuesta más personalizada a su problema particular?.

Saludos!
  #3 (permalink)  
Antiguo 02/08/2009, 23:54
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con sesiones

Holas luislb,

Te hago una pregunta:
¿Qué estas usando en el formulario, método GET o POST?

Saludos!
  #4 (permalink)  
Antiguo 02/08/2009, 23:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

<?php
session_start();
$_session['Codigo_Alumno']= $Codigo_Alumno;
?>
<html>
<head>
<title>P&aacute;gina Principal</title>
</head>
<body>
<?php

$Conexion = mysql_connect("localhost", "user", "pass");
mysql_select_db("Colegio_Independencia", $Conexion) or die('No hubo conexion con la base de datos');

$consulta = "select Alumno_Apellido_Paterno, Alumno_Apellido_Materno, Alumno_Nombres from Alumno where Codigo_Alumno = '$_session[Codigo_Alumno]'";
$query = mysql_query($consulta);

if($query)
{
while($row = mysql_fetch_array($query))
{
?>
<table bgcolor = '#00CC00' border = '0' width = '250'>
<tr>
<td>
<label = 'Nombre'><b>Bienvenid@:</b><br> <?php echo $row[Alumno_Apellido_Paterno].' '.$row[Alumno_Apellido_Materno].', '.$row[Alumno_Nombres]; ?></label>
</td>
</tr>
</table>
<?php

}
}
  #5 (permalink)  
Antiguo 02/08/2009, 23:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

en el login uso el metodo POST, me aparecen los datos al hacer las consultas pero al pasar de pagina los datos se borran como si terminara la sesion
  #6 (permalink)  
Antiguo 03/08/2009, 00:04
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Ayuda con sesiones

Hola , generalmente el problema pasa al refrescar con IE , ie tiene un comportamiento algo especial con las sesiones xq al refrescar te sale sesion expirada o similares , por consiguiente perdiendo datos , hay un fix para dicho problema , actualmente no lo recuerdo pero era una linea de php que evitaba este problema.

Lo que noto extraño es el modo que usas $_SESSION , ya que estas asignado $_SESSION['Codigo_Alumno'] a una variable y luegos vuelves a preguntar por la sesion en vez de la variable , recorda que si tu form envia los datos via metodo post y usas ie tiene el problema que ie hace lo que quiere y genera un error a nuestro ojo pero un comportamiento normal a vista de la gente de microsoft , con lo cual lo aconsejable muchas veces es evitar refrescar la pagina y poner un link con js de browser return back.

por otro lado el codigo que publicas no es suficiente para resolver tu problema , seria de utilida que publiques el script de datos_usuario ya que quizas este sobreescribiendo la sesion y de ahi el problema.

Saludos
  #7 (permalink)  
Antiguo 03/08/2009, 00:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Hola, voy a poner el codigo completo, esta con html y css disculpa por laa extension del codigo, primero pondre el de index.php y despues el de datos_usuario.php y no creo que el problema sea por el navegador ya que uso mozilla firefox.

index.php

<?php
session_start();
$_session['Codigo_Alumno']= $Codigo_Alumno;
?>
<html>
<head>
<title>P&aacute;gina Principal</title>
</head>
<body>
<?php
echo "<div id = 'Contenedor'>";

echo "<div id = 'cabecera'><img src='bannersuperior.jpg' width='800' height='150' border='0'></div>";

/*----------------------------------------------------------------------------------------------------*/
echo "<div align = 'justify' id = 'Cuerpo'>";

$Conexion = mysql_connect("localhost", "user", "pass");
mysql_select_db("Colegio_Independencia", $Conexion)

$consulta = "select Alumno_Apellido_Paterno, Alumno_Apellido_Materno, Alumno_Nombres from Alumno where Codigo_Alumno = '$_session[Codigo_Alumno]'";
$query = mysql_query($consulta);

if($query)
{
while($row = mysql_fetch_array($query))
{
?>
<table bgcolor = '#00CC00' border = '0' width = '250'>
<tr>
<td>
<label = 'Nombre'><b>Bienvenid@:</b><br> <?php echo $row[Alumno_Apellido_Paterno].' '.$row[Alumno_Apellido_Materno].', '.$row[Alumno_Nombres]; ?></label>
</td>
</tr>
</table>
<?php

}
}
echo "</div>";
/*----------------------------------------------------------------------------------------------------*/

echo "<div id = 'Menu'>";
echo "<ul id='dropdownmenu'>";

echo "<li>";
echo "<href='Index.php'>Home</a>";
echo "</li>";

echo "<li>";
echo "<href='#'>Matr&iacute;cula Actual</a>";
echo "<ul>";
echo "<li><href='Datos_Usuario.php'>Matr&iacute;cul a Actual</a></li>";

echo "</ul>";

echo "</div>";

echo "</div>";


?>
</body>
</html>



datos_usuario.php


<?php
session_start();
$_session['Codigo_Alumno']= $Codigo_Alumno;
?>
<html>
<head>
<title> Aula Virtual</title>


</head>
<body>
<?php
echo "<div id = 'Contenedor'>";

echo "<div id = 'cabecera'><img src='bannersuperior.jpg' width='800' height='150' border='0'></div>";

/*----------------------------------------------------------------------------------------------------*/
echo "<div align = 'justify' id = 'Cuerpo'>";

$Conexion = mysql_connect("localhost", "user", "pass");
mysql_select_db("Colegio_Independencia", $Conexion) or die('No hubo conexion con la base de datos');

$datos = "select * from Alumno where Codigo_Alumno = '$_session[Codigo_Alumno]'";
$query2 = mysql_query($datos);

if($query2)
{
while($row = mysql_fetch_array($query2))
{
?>
<br>
<table cellspacing='3' cellpadding='4' width='500'>
<tr>
<td bgcolor='#CCCCCC' align = 'center'>Codigo del Alumno</td>
<td bgcolor='#CCCC99'> <?php echo $row['Codigo_Alumno']; ?> </td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Nombres</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Nombres']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Apellido Paterno</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Apellido_Paterno']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Apellido Materno</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Apellido_Materno']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Fecha de Nacimiento</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Fecha_Nacimiento']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Sexo</td>
<td bgcolor='#CCCC99'> <?php echo $row['Sexo']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Email</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Email']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Direccion</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Direccion']; ?></td>
</tr>

<tr>
<td bgcolor='#CCCCCC' align = 'center'>Telefono</td>
<td bgcolor='#CCCC99'> <?php echo $row['Alumno_Telefono']; ?></td>
</tr>
</td>
</table>


<?php
}
}
echo "</div>";
/*----------------------------------------------------------------------------------------------------*/

echo "<div id = 'Menu'>";
echo "<ul id='dropdownmenu'>";

echo "<li>";
echo "< href='Index.php'>Home</a>";
echo "</li>";

echo "<li>";
echo "< href='#'>Matr&iacute;cula Actual</a>";
echo "<ul>";
echo "<li>< href='Datos_Usuario.php'>Matr&iacute;cula Actual</a></li>";

echo "</ul>";

echo "</div>";

echo "</div>";


?>
</body>
</html>
  #8 (permalink)  
Antiguo 03/08/2009, 12:41
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con sesiones

Holas,

Estaba leyendo un libro de php, y descubrí algo.

Probá que en vez de $Conexion = mysql_connect("localhost", "user", "pass");
usar $Conexion = mysql_pconnect("localhost", "user", "pass");

No sé si funcionará pero puede que si


Saludos!
  #9 (permalink)  
Antiguo 03/08/2009, 13:00
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Ayuda con sesiones

Mi pregunta es
La variable $Codigo_Alumno de donde se alimenta ?
  #10 (permalink)  
Antiguo 03/08/2009, 21:06
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Hola murderer, probe cambiando $Conexion = mysql_connect("localhost", "user", "pass"); por $Conexion = mysql_pconnect("localhost", "user", "pass"); pero no hay ningun cambio. Saludos
  #11 (permalink)  
Antiguo 03/08/2009, 21:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Hola gjx2, $Codigo_Alumno se alimenta del codigo que ingresa el usuario en el formulario, se envia por metodo POST.

echo "<form action = 'Index_Aula.php' method = 'Post'>";
echo "<h3>Login de Usuario</h3>";
echo "<label = 'Codigo_Alumno'><p>C&oacute;digo de Usuario</label><br><br>";
echo "<input type = 'text' name = 'Codigo_Alumno'><br><br>";
echo "<input type = 'submit' name = 'Ingresar' value = 'Ingresar'>";
echo "</form>";

Ese es el formulario de login, los datos se envian por metodo post. Saludos
  #12 (permalink)  
Antiguo 03/08/2009, 23:13
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con sesiones

Cita:
Iniciado por luislb Ver Mensaje
Hola murderer, probe cambiando $Conexion = mysql_connect("localhost", "user", "pass"); por $Conexion = mysql_pconnect("localhost", "user", "pass"); pero no hay ningun cambio. Saludos
Holas,

Era una idea ,

Voy a aprovechar que estoy estudiando PHP, asi que si me vendria bien practicar con ejercicios. Si total de los errores se aprende no?

Voy a invenstigar y si descubro algo, lo posteo.

Saludos!

PD:Es más probable que otro encuentre la solución antes que yo
  #13 (permalink)  
Antiguo 03/08/2009, 23:23
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con sesiones

Voy a preguntar lo mismo, o similar que jonatanc,
¿Por qué usas

Código PHP:
session_start();
$_session['Codigo_Alumno']= $Codigo_Alumno
y después

Código PHP:
$Conexion mysql_connect("localhost""user""pass");
mysql_select_db("Colegio_Independencia"$Conexion
?

Saludos!
  #14 (permalink)  
Antiguo 04/08/2009, 00:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Hola murderer, la verdad es que todo eso lo vi en tutoriales en internet, he cambiado

<?php
session_start();
$_session[Codigo_Alumno] = $Codigo_Alumno;
?>


por
<?php
session_start();
$Codigo_Alumno = $_POST['Codigo_Alumno'];
?>


y en la consulta SQL he cambiado

$datos = "select * from Alumno where Codigo_Alumno = '$_session[Codigo_Alumno]'";

por

$datos = "select * from Alumno where Codigo_Alumno = '$Codigo_Alumno'";


y muestra los datos al hacer la consulta pero sigo teniendo el mismo problema

esto tambien lo vi en un tutorial pero si eso estuviera mal no habria conexion con la base de datos

$Conexion = mysql_connect("localhost", "user", "pass");
mysql_select_db("Colegio_Independencia", $Conexion)


Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.