Foros del Web » Programación web » PHP »

Problema con enlace en php

Estas en el tema de Problema con enlace en php en el foro de PHP en Foros del Web. Buenas a todos, necesito ayuda en un problema que no he podido resolver He creado dos secciones de usuarios, una para el administrador y otra ...
  #1 (permalink)  
Antiguo 16/02/2011, 06:52
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 921
Antigüedad: 5 años, 5 meses
Puntos: 27
Problema con enlace en php

Buenas a todos, necesito ayuda en un problema que no he podido resolver

He creado dos secciones de usuarios, una para el administrador y otra para estudiantes y para cada uno de esos dos perfiles, tengo un menu distinto
El problema radica en los enlaces del menu estudiantes

Cuando el estudiante inicia sesion, el boton tipo submit va a autenticacion.php . para cargar la sesion del usuario, como es estudiante se carga el archivo formulario_egresado.php

aca autenticacion.php:

Código PHP:
Ver original
  1. <?
  2. require_once('funciones.php');
  3. $usuario=$_POST['usuario'];
  4. $clave=$_POST['clave'];
  5.  
  6. if (login_in($usuario, $clave)==1)
  7. {
  8. if ($usuario=="admin"){
  9. $_SESSION['valid_user'] = $usuario;
  10. header("Location: administracion.php");
  11. }
  12.     else
  13. {
  14.     $_SESSION['estud'] = $usuario;
  15.     header("Location: formulario_egresado.php?optegresado=$usuario");
  16.  
  17.     }
  18. }
  19. else
  20. {
  21.    
  22. ?>
  23. <html>
  24. <head>
  25. </head>
  26. <body>
  27. <h1>No existe un logueo de usuario</h1>
  28.  
  29. </body>
  30.  
  31. <?
  32. }
  33. ?>

ahora como se dio un inicio de sesion se carga formulario_egresado?optegresado=$cedualdelusuario, donde tengo unas imagenes a traves de las cuales empiezo a ver el resto de informacion de la persona, pasando por POST el campo cedula


Código PHP:
Ver original
  1. require_once('funciones.php');
  2. if (isset($_SESSION['estud']))
  3. {
  4. ?>
  5.  
  6. <html>
  7. <head>
  8. <title>Perfil egresado</title>
  9. </head>
  10. <body>
  11. <?
  12.     $bd = mysql_connect ("localhost", "root", "root");
  13.     if ( !$bd )
  14.         die ("Error en la conexion con el DBMS");
  15.    
  16.     $base_datos = "egresados";
  17.     if ( !mysql_select_db ($base_datos, $bd) )
  18.         die ("Error seleccionando la base de datos");
  19.    
  20.     $query = "SELECT NUM_CED_EGR, NOM_EGR, APE_EGR FROM egresado WHERE NUM_CED_EGR = '$optegresado'";
  21.    
  22.     $resultado_general = mysql_query ($query, $bd);
  23.    
  24.     if ( !$resultado_general )
  25.         die ("Error ejecutando la consulta");
  26.    
  27.     $num_filas_general = mysql_num_rows($resultado_general);
  28.    
  29.     if ($num_filas_general > 0){        // Si existe el registro
  30.         $fila_data = mysql_fetch_array($resultado_general);
  31.        
  32.         }
  33.                            
  34. ?>
  35. //aca muestro el menu
  36.  
  37.  <? menu_egresado(); ?>
  38.  
  39. //ahora tengo la imagen:
  40.  
  41. <form action="form_data_personal.php" method="post" name="form2" id="form2">
  42. <input type="image" src="imagenes/user_256.png" height="180"  width="215"  onClick="javascript:form2.submit()" />
  43.  <input readonly name="cedula" type="hidden" id="cedula"  value="<? echo $fila_data["NUM_CED_EGR"]; ?>">
  44.             </form>    
  45. </body>
  46. </html>
  47. <?
  48. }
  49. else
  50. {
  51. not_auth();
  52. }
  53. ?>

en el archivo funciones.php tengo el menu del usuario egresado, el cual a traves de una funcion lo muestro en el archivo formulario_egresado?.php


Código PHP:
Ver original
  1. function menu_egresado(){
  2.  
  3. ?>
  4. <ul id="nav">
  5.  <li><a href="formulario_egresado.php?optegresado=<?php echo $cedula;?>">Inicio</a></li>
  6.   <li><a href="#">Mi cuenta</a></li>
  7.  <li><a href="logout_egre.php">Finalizar sesion</a></li>
  8. </ul>
  9.  <?
  10. }

y mi problema es que cuando yo estoy en form_data_personal.php y hago clic en Inicio, me borra la informacion del egresado, es decir, vuelve al inicio pero no aparece la sesion, no se si mi problema este en:

<a href="formulario_egresado.php?optegresado=<?php echo $cedula;?>">

si le doy como parametro nuevamente cedula, a que se debe este problema, como puedo crear este enlace para que no me borre los datos del usuario?

Agradezco la ayuda
  #2 (permalink)  
Antiguo 16/02/2011, 07:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 4
Antigüedad: 5 años, 1 mes
Puntos: 0
Respuesta: Problema con enlace en php

Te recomiendo que utilices variables de sesión para mantener a el usuario logueado,

por ejemplo. $_SESSION['cedula'] = $cedula;

y luego haces referencia a esta variable "super global" para mantener los datos de el alumno.

esta variable estará activa el tiempo que dure la sesión o hasta que la sesión sea destruida.

Saludos.
  #3 (permalink)  
Antiguo 16/02/2011, 07:50
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 921
Antigüedad: 5 años, 5 meses
Puntos: 27
Respuesta: Problema con enlace en php

Ok he añadido la variable a esto:

<? session_start();
require_once('funciones.php');
$_SESSION['cedula'] = $cedula;
if (isset($_SESSION['estud']))
{
?>


le he puesto lo anterior tambien a form_data_personal.php

Pero al dar clic en inicio, nuevamente me borra la sesion
Ahora me surge una duda, haciendo esto, como deberia dejar entonces mi enlace?

asi:

Código PHP:
Ver original
  1. <a href="formulario_egresado.php?optegresado=<?php echo $cedula;?>">

o como?

Eso de "y luego haces referencia a esta variable super global", que significa?

QUe pena tanta molestia, realmente he leido pero no he dado con la solución

Gracias por la ayuda
  #4 (permalink)  
Antiguo 16/02/2011, 07:56
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 921
Antigüedad: 5 años, 5 meses
Puntos: 27
Respuesta: Problema con enlace en php

[SOLUCIONADO]

Mi problema ha quedado resuleto
efectivamente el problema estaba en mi enlace

el enlace lo he dejado asi:

Código PHP:
Ver original
  1. <li> <a href="formulario_egresado.php?optegresado=<?php echo $_SESSION["cedula"];?>">Inicio</a></li>

Y efectivamente me mantiene activa la sesion del usuario

Gracias por tu ayuda
  #5 (permalink)  
Antiguo 16/02/2011, 07:58
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 921
Antigüedad: 5 años, 5 meses
Puntos: 27
Respuesta: Problema con enlace en php

Ahora una ultima pregunta, para dejar un enlace tipo submit, debo colocarle un

<form action> ?

si en en enlace le paso como parametro echo $_SESSION["cedula"];

Podria hacer consultas a mi base de datos?

Etiquetas: enlace
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 06:04.
SEO by vBSEO 3.3.2