Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Delpi for Php; Necesito limpiar o liberar los datos de la pagina!!


Estimados,

Necesto saber si alguien me puede ayudar con lo siguiente:

Tengo un proyecto en Delphi for Php (RadPHP o D4Php). Entro a la pagina de login, valido usuario/contraseña y luego entro al menu principal y desde ahi a las selecciones.

Al entrar a los Clientes, pincho opciones de busqueda, cargo los text y las grid con los datos encontrados.

Al momento de pinchar el boton "Volver", regreso al menu principal pero al momento de seleccionar nuevamente a la pagina de los Clientes, toda la informacion desplegada e ingresada aun se encuentra visible y habilitada.

La ideal es que al pinchar el boton "Volver", toda la informacion desplegada e ingresada en la pagina, desaparezca (descargada), osea que la pagina de los Clientes, en caso de volver a consultarla, aparezca sin ninguna informacion tal y como aparecio al momento de cargar el browser.

He leido que en PHP los datos "Prevalesen" a lo largo de la sesion y por eso necesito que me indiquen como realizar una especie de "Release" a cada a pagina accesada y posteriormente descargada por el usuario.

Esto es urgente amigos y desde ya muchas gracias por todo.
Responder Con Cita
  #2  
Antiguo 22-09-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por juanpy Ver Mensaje
He leido que en PHP los datos "Prevalesen" a lo largo de la sesion y por eso necesito que me indiquen como realizar una especie de "Release" a cada a pagina accesada y posteriormente descargada por el usuario.
Pues no sé dónde has leído eso, pero es precisamente lo contrario a lo que dices. Cada consulta (carga de página) es completamente independiente, es decir, que los datos no se conservan en dos consultas diferentes. Por eso se "inventaron" las sesiones: para que cuando sea necesario se puedan conservar datos entre dos consultas diferentes.

Lo cierto es que no tengo ni idea de cómo se gestionan las sesiones con Delphi4PHP, y tampoco entiendo qué es lo que te pasa. Llevo años programando PHP, incluso una aplicación similar a la tuya, y nunca me ha pasado eso que dices. Claro que yo programa PHP "directamente", sin intermediarios.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 22-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
PHP realmente no tiene memoria. Te manda lo que se le pide.

Si al entrar a la pagina Clientes estas especificando los mismo, te mostrara lo mismo.

Si quieres que no muestre nada al inicio, asegurate que la aplicacion no este requiriendo data en ese inicio, sino que cada requerimiento sea independiente, y las sesiones es la clave, o si estas usando SQL que el SQL este vacio al inicio.

No esta tan claro si "inicio" te refieras a lo que vez en una pagina browser/web, aunque mencionas que muestras en un grid la data.
Responder Con Cita
  #4  
Antiguo 24-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Creo que no me especifique lo suficiente.


Estimados,

Deacuerdo con todo, ustedes son los maestros y yo el aprendiz.

Delphi for PHP trabaja como tal, pero es 100% PHP.

Tengo una pagina llamada Login.php, en donde existen 2 text y 1 boton.

En los text ingreso el nombre de usuario y la contraseña respectivamente y con el boton valido lo ingresado:

Cita:
Usuario: [ PRUEBAS ]
Contraseña: [ ****** ]
<Aceptar>


Una vez validado el usuario, este accede inmediatamente al menu principal con todas sus opciones.

Ahora si el usuario pincha el boton < Ir a la pagina anterior > de su explorador, el asuario volvera a Login.php, en donde puede ver el text con el nombre del usuario escrito; [ PRUEBAS ] y la contraseña; [ ****** ].

Mis preguntas son:

- Como puedo hacer para que, si el usuario pincha el boton < Ir a la pagina anterior > de su explorador, en vez mostrar los text con datos ingresados, presente los text en blanco tal y como son cargados al momento de accesar a la pagina por primera vez ($this->Text1->Value="").

- Como puedo deshabilitar el boton < Ir a la pagina anterior > del explorador, de tal forma que sea imposible, al menos en su sesion, que el usuario vuelva a "relogearse".

Muchas gracias desde ya.

Última edición por juanpy fecha: 24-09-2012 a las 19:12:41. Razón: ortografia
Responder Con Cita
  #5  
Antiguo 24-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Intenta poniendo esto al principio del script de tu formulario:

Código PHP:
header("Cache-Control: no-store, no-cache, must-revalidate"); 
// Saludos
Responder Con Cita
  #6  
Antiguo 24-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Muy bien, pero....

Estimado,

Los text de la pagina quedan limpios tal y como se cargan al momento de cargar por primera vez la pagina, pero lamentablemente esto borro los valores incluso las variables $_SESSION que son fundamentales al momento de definir los accesos del usuario.

Por eso le pregunto:

- ¿Como puedo lograr este mismo efecto pero sin borrar los valores de las varibles $_SESSION?
- ¿Como puedo hacer para que una vez "logueado" el usuario, se deshabilite el boton < Ir a la pagina anterior > del navegador?

Muchas gracias.
Responder Con Cita
  #7  
Antiguo 24-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues, como dice Ñuño, habría que ver cómo maneja Dephi for PHP las sesiones. Normalmente, cuando añades sesiones a tu sitio, PHP manda encabezados precisamente para no poner en caché los datos de los formularios.

Por otro lado, en un página de login, es decir en la página donde pones el formulario de inicio de sesión, normlmente no deberías tener ningún dato en $_SESSION así que no importaría lo que borres.

// Saludos
Responder Con Cita
  #8  
Antiguo 24-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Mi login...

Estimado,

Esta es la forma como valido el usuario / contraseña en mi pagina Login.php en Delphi4PHP:

Código PHP:
    function Button1Click($sender, $params)
    {
     //datos para establecer la conexion con la base de mysql.
     $_SESSION['servidor'] = "servertest";
     $_SESSION['user'] = "Prueba";
     $_SESSION['password'] = "prueba";
     $_SESSION['sdb'] = "dbmaster";
     //*******************************************************
     $conexion = mysql_connect($_SESSION['servidor'],$_SESSION['user'],$_SESSION['password']) or die ('Ha fallado la conexión: '.mysql_error());
      mysql_select_db($_SESSION['sdb'],$conexion) or die ('Error al seleccionar la Base de Datos: '.mysql_error());
      $query = "SELECT * FROM usuarios WHERE nombre = '$usuario' AND pas = '$password'";
 
      // $usuario =  $this->usuario->text="";
      // $password = $this->pass->text="";
 
      $result = mysql_query($query);
     if (!$result)
     {
         echo 'Error al ejecutar la consulta';
     }
     else {
         if ( mysql_num_rows($result) > 0 and $usuario <> "" and $password<>"" ) {
             $lin_usuario = mysql_fetch_row($result);
             $_SESSION['login']=$lin_usuario[1];
             $_SESSION['pass']=$lin_usuario[3];
             $_SESSION['nivel']=$lin_usuario[4];
             header('Location: principal.php');
         }
         else {
               /*?>
                <script>
                //begin js
                window.alert ("Usuario / Contraseña; No es válida, intente nuevamente. ");
                //return(false);
                //end
                </script>
               <?php*/
              
$this->Label4->Visible=true;
              
$this->usuario->text="";
              
$this->pass->text="";
         }
     }
     
mysql_free_result($result);
     
mysql_close($conexion);
    }
Es codigo PHP en el evento onclick del button1 en la pagina login.php. Dejo los datos del usuario y conexion en variables SESSION pues necesito ocuparlas en otras paginas y es la unica forma que tengo para pasarlas de una pagina a otras sin perder el valor.

- ¿Podrias optimizar y/o normar mi codigo?

He visto START_SESSION() pero la verdad esto funciona y no ocupa mucho recurso.

Graccias por todo.
Responder Con Cita
  #9  
Antiguo 24-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
session_start no es opcional. Si no la usas no hay sesión.

// Saludos
Responder Con Cita
  #10  
Antiguo 24-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
¿Me podrias orientar?

Estimado,

Usted es el maestro y la verdad yo aprendo cada dia un poco mas.

- ¿Me podria orientar con el inicio de la sesion: session_start ?
- ¿Usted tiene un ejemplo de como debe realizar una session limpia y normada PHP?

Muchas gracias.
Responder Con Cita
  #11  
Antiguo 25-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Cita:
Empezado por juanpy Ver Mensaje
Estimado,

Los text de la pagina quedan limpios tal y como se cargan al momento de cargar por primera vez la pagina, pero lamentablemente esto borro los valores incluso las variables $_SESSION que son fundamentales al momento de definir los accesos del usuario.

Por eso le pregunto:

- ¿Como puedo lograr este mismo efecto pero sin borrar los valores de las varibles $_SESSION?
- ¿Como puedo hacer para que una vez "logueado" el usuario, se deshabilite el boton < Ir a la pagina anterior > del navegador?

Muchas gracias.
Para inhabilitar un boton: Boton1.Active := False; //deja de trabajar.

Esa linea iria en el codigo en el momento en que quieras que ya no se use.

Tambien lo puedes hacer que desaparezca con: Boton1.Visible := False; //y ya no se puede pinchar.
Responder Con Cita
  #12  
Antiguo 25-09-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por juanpy Ver Mensaje
Estimado,

Usted es el maestro y la verdad yo aprendo cada dia un poco mas.

- ¿Me podria orientar con el inicio de la sesion: session_start ?
- ¿Usted tiene un ejemplo de como debe realizar una session limpia y normada PHP?

Muchas gracias.
Si preguntas por cómo manejar sesiones usando la biblioteca de PHP, entonces sólo tienes que consultar su documentación (puedes seleccionar el idioma en el combo box de la parte superior). Como ves hay mucho que leer, porque el manejo (correcto) de sesiones es complejo. Eso sí: no te aseguro que esto sea completamente compatible con Delphi4PHP.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #13  
Antiguo 25-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Y por eso les consulto a ustedes...

Estimado,

Creo que mandar a alguien a leer y leer, no es la "mejor respuesta" (es la mas facil por lo visto para usted).

Yo necesito ejemplos practicos y probados, como dijo el sabio en este foro, "no quiero reinventar la rueda" sino resolver el problema.

No pido que me expliquen con manzanitas, sino que me den ejemplos puntuales.

RADPHP, Delphi for PHP y Delphi4Php son 100% PHP, la diferencia es que simplifica el diseño de la pagina y ademas tiene un ide que compila PHP.

Por eso si usted me quiere ayudar, hagalo y no me cuestione, yo sabre como adaptarlo en RADPHP XE2.

Yo he encontrado gente muy generosa en este foro y yo trato de retribuir dentro de lo que puedo, esa es la idea, ¿verdad?, ahora si yo estoy equivocado, disculpe y no lo molesto mas.

Gracias.
Responder Con Cita
  #14  
Antiguo 26-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo que preguntas es muy amplio, y tiene muchas particularidades, ese es el motivo por el que Ñuño Martínez, moderador, con varios miles de mensajes de ayuda a otras tantas personas que preguntan, al igual que tú, ha pensado que lo mejor es que le eches un vistazo a la documentación, y así puedas discernir entre lo que más te conviene para lo que quieres hacer.
Y por supuesto que la mejor respuesta que se le puede dar a casi todos los que preguntan es esa: leer, leer para aprender.
Saludos.
Responder Con Cita
  #15  
Antiguo 26-09-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Thumbs up Con un poquito de pasciencia...

Estimado,

http://www.ajpdsoft.com/modules.php?...6#.UGMLiK4_coM

Esta si es la "mejor respuesta", para que le sirva a los que pregunten lo mismo.

Gracias por todo.
Responder Con Cita
  #16  
Antiguo 12-10-2012
LEONARDO19712 LEONARDO19712 is offline
Miembro
 
Registrado: jul 2008
Posts: 12
Poder: 0
LEONARDO19712 Va por buen camino
amigo este problema se resuelve cambiando dos codigos al final del script , pues user y pass ='' ($this->user->text=''), solo se ejecutan si el usuario o el pass no son correctos, si cambias estos campos al final del script garantizas que siempre se ejecuten, claro que deben estar antes de hacer el redirect a la pagina que envies, porque entonces no se alcanzan a ejcutar. tengo un conocimiento amplio en delphi for php en adelante y te puedo colaborar en lo que pueda.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Limpiar ClientDataSet para insertar nuevos datos ingabraham Varios 5 01-04-2011 21:51:52
Limpiar una base de datos ingabraham Varios 8 21-01-2011 18:59:33
limpiar formulario al regresar a la pagina jomanmoz HTML, Javascript y otros 1 17-02-2008 22:43:40
Liberar una Fila luego de ingresarle datos en un DBGrid bellota Varios 4 20-06-2006 17:41:33
Delpi 7 personal Andree Varios 2 17-07-2004 19:52:38


La franja horaria es GMT +2. Ahora son las 09:54:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi