Foros del Web » Programando para Internet » PHP »

Problema con sesiones en mvc y dto

Estas en el tema de Problema con sesiones en mvc y dto en el foro de PHP en Foros del Web. Hola a todos los foreros de foros del web y d la net les vengo a hacer una consulta, resulta que en mi sistema al ...
  #1 (permalink)  
Antiguo 04/01/2010, 09:54
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 15 años
Puntos: 0
Problema con sesiones en mvc y dto

Hola a todos los foreros de foros del web y d la net les vengo a hacer una consulta, resulta que en mi sistema al actualizar eliminar unos registros no me actualiza la sesión no sé cómo explicarme recién cuando ingreso a otra página se ven los datos actualizados eso debe ser automáticamente.
Haber un ejemplo si me explico.
Tengo estos datos en mi pagina.

cod_usuario nombre_usuario dni_usuario
usu-001 jacinto 44868053 botoneliminar botoneditar
usu-002 pepito 56654767 botoneliminar botoneditar
usu-003 malena 87777878 botoneliminar botoneditar
usu-004 olga 00877997 botoneliminar botoneditar
usu-005 merary 78787870 botoneliminar botoneditar


Formulario de modificación ejemplo si atrapa a Jacinto jala sus datos correspondientes eso lo hace elegantemente y si s modifican el detalle es que el mensaje dice registro actualizado pero si modifique Jacinto a nombre Juan no se muestra en esa pagina los datos actualizados tengo que salirme de esta página y volver a entrar a ella para que salgan los datos actualizados el problema creo que son las sesiones.
Muestro el código de mi pagina haber si me pueden echar una mano ahí.
Usuarios.php
<?
session_start(); //inicio la session

if($HTTP_REFERER=="../view/menu.html") //en menu html se encuentra los menus d las paginas
{
unset($_SESSION["lista_usuarios"]); //lista de usuarios contiene la darta d usuarios y mato la sesión
}else{
}
unset($_SESSION["lista_celulares"]); //caso contrario mato la session d otras paginas como modelos funciones ots etc.
unset($_SESSION["lista_modelos"]);
unset($_SESSION["lista_ufunciones"]);
unset($_SESSION["lista_ots"]);
if(isset($_SESSION["lista_usuarios"])){
$lista_usuarios=$_SESSION["lista_usuarios"];

Cuando quiero modificar un registro.

<?php if($opcion=="modificar_usuario") { //las opciones van con un opcion un valor oculto en cada formulario
if(isset($_SESSION["lista_usuariosb"])) {
$val_user=$_SESSION["lista_usuariosb"]; //lista usuariob contiene la sesión de modificación.

unset($_SESSION["lista_usuariosb"]); //aquí destruyo la sesión pero veo que no hace nada.
}
?>
Usuarios_controler creo que aquí es el gran problema.

$model_usuario = new usuario_model();

if ($accion == "act") { //cuando la acción es actualizar llmamos a read usuario_update que esta en el model.
$contenido = $model_usuario-> read_usuario_update($codigo_atr);
$_SESSION["lista_usuariosb"] = $contenido;
header("Location: ../view/usuarios.php?opc=modificar_usuario&codi='$codigo_a tr'");
Si es que destruyo la sesión aquí lo puedo hacer pero se desaparecen los demás datos en mi pagina y tiene que ser así simplemente debe actualizarse uno.
exit;
}
}
Dudo que me haya explicado bien.
  #2 (permalink)  
Antiguo 14/01/2010, 14:07
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Problema con sesiones en mvc y dto

Cita:
Iniciado por dquispe Ver Mensaje
Dudo que me haya explicado bien.
Dudas bien.

Existen comas, puntos y demás signos de puntuación que si los usas podrás proyectar mejor tu idea (sin mencionar la ortografía). Tu lectura tal cual está ahora es pesada e ilegible. Personalmente traté de captarla pero no pude.

Colorea e identa tu código. Tienes aquí en el editor etiquetas especiales para hacerlo; úsalas sin miedo.

Los supuestos "datos en tu página" son solo un bonche de letras. No tienen formato ni algo que haga uno darse la idea de qué representan. Quizá en esos casos una captura de pantalla sea mejor.

Tienes los recursos para plantear bien tu situación, no haces uso de ninguno de ellos. Tu tema es complicado, ahora no por el código y tu problema en sí, sino por cómo lo planteas.
  #3 (permalink)  
Antiguo 18/01/2010, 08:04
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con sesiones en mvc y dto

Ok el problema es este cuando modifico un dato deberia de actualizarse al instante es como si no matara la sesion.

Es por eso que no se visualiza el dato actualizado en el momento por ejemplo aqui modifique el dato pero no se actualizo en el momento tengo que salir de la pagina irme a otra opcion de mi menu y recien ahi se puede ver el dato actualizado.

Lo mismo sale cuando elimino sale el mensaje de eliminado pero no se quita el registro de la pagina, tengo que salir de esa pagina e irme a otro menu para poder buscar si existe el dato y si elimina.

Aqui por ejemplo actualize el nombre a daniela y deberia mostrarse el dato daniela ya no daniel tengo que irme al menu modelos como ot, para poder ver el dato actualizado lo cual no deberia ser asi haber esta vez esta un poco mas explicado aqui muestro la imagen haber si me explico mejor.

Pongo la Url. Cuando se modifica el registro Daniela.
http://www.imaxenes.com/imagen/imaxenes1nl8701.png.html

Cuando se elimina daniela sale el mensaje de eliminado pero sin embargo sigue ahi tngo que ir a otro menu para v er si esta eliminado o no.

http://www.imaxenes.com/imagen/imaxe...g30so.png.html

Última edición por dquispe; 18/01/2010 a las 08:10
  #4 (permalink)  
Antiguo 19/01/2010, 10:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con sesiones en mvc y dto

Creo que el problema puede ser que asignas los datos al final de tu script y por tanto al dibujar tu pagina ya no son los datos reales.

Para resolver tu problema te recomendaría que NO usaras sesiones para transportar los datos entre tus capas, si no que los uses solamente para los datos que vas a usar realmente persistentes (como un id de usuario, etc.)

Los datos que vas a presentar en pantalla como una consulta etc. esos sacalos directo de la base de datos al dibujar tu interfaz.

Saludos.
  #5 (permalink)  
Antiguo 19/01/2010, 12:04
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con sesiones en mvc y dto

Gator una consulta mira en mi caso cuando elimino aqui mato la sesion, pero no salen lo demas registros.

usuarios_controler.php

if ($accion_elegida == "del") {
$model_usuario=new usuario_model();
$model_usuario->delete_usuario($codigo_atr);
$_SESSION["msj"] ="<img src='../imagenes/b_drop.png' />Registro Eliminado Correctamente .";
unset($_SESSION["lista_usuarios"]); //aqui mate la sesion

$model_usuario->listar_usuarios($dto); //listar usuarios lo cree
en el model hber que si despues de eliminar la sesion automaticamente recupere la sesion pero no lo hace.
?>
<script LANGUAGE="JavaScript">
var paginax="../view/usuarios.php"
location.href=paginax
</script>
<?
}
?>

usuarios_dao.php

public function listar_usuarios($dto) //el dto contiene los seter y los geter set get
{
try{
$imp=factory_dao::get_implementacion($_SESSION["ds"]); //el fatory dao en mi caso ds es mysql tambien agarra en sql pero estoy haciendo las pruebas
$imp->conectar(); //llamo a conectar
$cad="select * from usuarios where nomusu = '$dto'"; //hago la consulta
$rec=$imp->execute_query($cad); //ejecuto la consulta
return $rec; //retorno la consult
}
catch(Exception $e){
throw $e;
}
} //los try y catch para atrapar los exceptions, habra una forma de recuperar la sesion u otra manera de hacer eso traspasando la data en las sesiones.

usuarios_model.php


public function listar_usuarios($dto){
try {
$usuario_dao=new usuario_dao();

$usuario_dao->listar_usuarios($dto);
//$ncodigo
}
catch(Exception $e){
throw $e;
}
}

Etiquetas: mvc, sesiones
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 14:53.