[Php-avanzado] Ayuda
Luciano Pelizzaro
lucianomdq_82 en hotmail.com
Vie Dic 23 23:58:22 ART 2011
Hola Leo,
La idea de implementar ajax en realidad lo hice para cambiar el contenido
de la pagina sin tener que actualizarla, por otra parte pensé que seria
mejor ya que no se repetiría código, como encabezado y pie de pagina.
No entiendo eso de efecto negativo de los frames, a los div te réferis?.
Solo actualizo el div de contenido sin refrescar la pagina.
Por otro lado el tema de asumir que un usuario esta logueado porque los
datos corresponden a la base de datos, por eso llamo a 'login_verifica.php'
, que chequeo en la base si los datos son correcto, si eso es afirmativo
recién paso los datos por sesión.
De ese modo saco si es técnico, administrativo o medico y depende de lo que
sea le habilitaría las opciones que puede utilizar.
Bueno como no lo podía resolver al final realiza una redirección de pagina,
como 'login_verifica.php' no se ve porque es solo para verificar datos y
depende de lo que sea devuelve la pagina del resultado.
Por ejemplo si los datos enviados (usuario y Pass) no son lo de la base de
datos vuelve a login para que se loguee nuevamente si es correcto chequeo si
es Técnico, Administrativo o Medico y le devuelvo la pagina principal con
las opciones habilitadas dependiendo los permisos.
La base de datos es la misma que te había enviado con la normalización.
Por favor leo decime si voy bien así pensándolo o directamente saco las
funciones ajax y envió y chequeo todos los datos por post.
Otro tema, variables cookie no las veo nada seguras,cada información que
almacene en la cookie cualquiera tiene acceso, por mas que le ponga fecha
para eliminarlas, por lo cual lo que implemente es hasta que no cierre
navegador ( por eso variables sesión).
Guardar los datos en la base para saber cuanto tiempo lleva logueado tampoco
me parece que sea la manera correcta.
Saludos Leo.
-----Mensaje original-----
From: Leonardo Tadei - Pegasus Tech Supply
Sent: Friday, December 23, 2011 10:07 PM
To: Lista del curso de PHP Avanzado
Subject: Re: [Php-avanzado] Ayuda
Hola Luciano,
varias cosas: una y la más grande, es que estás usando AJAX para tener
todos los efectos negativos de los FRAMES.
Obvio que por mí no hay problema, pero además de que el URI en la barra
del navegador no va a cambiar nunca, con lo desconcertante que eso
resulta, es código mucho más difícil de depurar.
Respecto a este código: qué dice la Consola de Errores del navegador?
Si no ves errores ahí, manda por la lista adjuntos los archivos
involucrados para intentar probarlo acá, aunque no tengamos las DB ni
nada.
Por último, recordá que asumir que un usuario está logueado porque
tiene valores en la sesión no es la forma correcta de implementar AAA:
tenés que contrastar los datos guardados en la sesión contra la DB en
todos los scripts!
Saludos
El vie, 23-12-2011 a las 12:16 -0300, Luciano Pelizzaro escribió:
> Hola Leo,
>
> Te pido una ayuda porque ya no se como solucionarlo, tengo un problema
> con las funciones ajax , el tema es que actualiza 1 pagina bien y las
> demás que se enlazan no.
> Las funciones las llamo en el index con un include:
>
> index:
>
>
> <?php
> // Llama Funciones de redirección de Pagina (Ajax).
> include('web/funciones_recarga.php');
> ?>
> <br>
> <div class="titulo">
> <?php
> include('web/head.php');
> ?>
> <br>
> </div>
> </head>
>
> <body>
> <br>
> <div class="contenido" id="contenido">
> <?php
> include('web/login.php');
> ?>
> <br>
> </div>
> <div class="pie">
> <?php
> include('web/pie.php');
> ?>
> </div>
>
> funciones_recarga:
>
> <script type="text/javascript">
> function ajaxFunction() {
> var xmlHttp;
>
> try {
>
> xmlHttp=new XMLHttpRequest();
> return xmlHttp;
> } catch (e) {
>
> try {
> xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
> return xmlHttp;
> } catch (e) {
>
> try {
> xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
> return xmlHttp;
> } catch (e) {
> alert("Tu navegador no soporta AJAX!");
> return false;
> }}}
> }
>
> function Enviar(_pagina,capa) {
> var ajax;
> ajax = ajaxFunction();
> ajax.open("POST", _pagina, true);
> ajax.onreadystatechange = function() {
> if (ajax.readyState==1){
> document.getElementById(capa).innerHTML = " Aguarde por
> favor...";
> }
> if (ajax.readyState == 4) {
>
>
> document.getElementById(capa).innerHTML=ajax.responseText;
> }}
>
> ajax.send(null);
> }
>
> </script>
>
>
> login:
> <div class='login'>
> <form action ='' method='post'>
> <br>
> <span><p>Usuario</p>
> <input type='text' class='usuario' maxlength="20"
> name="usuario" value=''></span><br>
> <br>
> <span><p>Contraseña</p>
> <input type='password' class='pass' maxlength="30" name="pass"
> value=''></span><br>
> <input class="submit" type="submit" name="aceptar"
> value="Aceptar"/>
> </form>
> </div>
>
>
>
> <?php
> if ( isset($_POST['aceptar']))
> {
> if ( $_POST['usuario'] == "" )
> {
> //ya esta validado con ajax e informado
> }else
> {
> if ( $_POST['pass'] == "" )
> {
> //ya esta validado con ajax e informado
> }else
> {
> session_start();
> $_SESSION['uss']=$_POST['usuario'];
> $_SESSION['pass']=$_POST['pass'];
> print("<script
> type='text/javascript'>Enviar('web/login_verifica.php','contenido');</script>");
> }
> }
> }
> ?>
>
>
>
> En el login verifico que no ingresen nada vacío y ejecuto de nuevo la
> funciones ajax y me redirecciona lo mas bien, el problema esta que
> después, en la otra pagina (login_verifica.php) no me permite ningún
> código con javascript, ni si quiera un simple alert, no se porque pasa
> eso, no me tira error y si pongo código php se ejecuta lo mas bien.
>
>
>
> Gracias Leo.
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Blog: http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
_______________________________________________
Php-avanzado mailing list
Php-avanzado en pato2.fi.mdp.edu.ar
http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
Más información sobre la lista de distribución Php-avanzado