Foros del Web » Programando para Internet » Javascript » Frameworks JS »

verficar sesion de php al oprimir un href

Estas en el tema de verficar sesion de php al oprimir un href en el foro de Frameworks JS en Foros del Web. hola amigos habra la manera de verificar con ajax si la sesion que se creo con php esta activa, es decir si doy click aun ...
  #1 (permalink)  
Antiguo 31/01/2008, 22:45
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta verficar sesion de php al oprimir un href

hola amigos habra la manera de verificar con ajax si la sesion que se creo con php esta activa, es decir
si doy click aun link antes de cargar la pagina me diga si la session ya caduco

saludos
espero sus comentarios amigos
__________________
gerardo
  #2 (permalink)  
Antiguo 01/02/2008, 05:05
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Mensaje Re: verficar sesion de php al oprimir un href

Pistas:

html
Código HTML:
<a href="tu_url" .... onclick="return abc(this)" />
...
<div id="error">
</div> 
javascript:

Código:
function abc(esto)
 {
   // verificar mediante ajax y guardar en variable resultado
  var resultado=ajax.responseText;
  if(resultado=='true')
   {
     location.href=esto.href;
     return false;
   }
  else if(resultado=='false')
   {
     var error=document.getElementById('error');
     error.innerHTML='se te caduco la sesion...';
     return false;
   }
 }
en PHP:

si tiene sesion
Código PHP:
echo 'true'
si no tiene sesion
Código PHP:
echo 'false'
espero que te sirva de inicio ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 01/02/2008, 09:29
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: verficar sesion de php al oprimir un href

Cita:
Iniciado por ZiTAL Ver Mensaje
Pistas:

html
Código HTML:
<a href="tu_url" .... onclick="return abc(this)" />
...
<div id="error">
</div> 
javascript:

Código:
function abc(esto)
 {
   // verificar mediante ajax y guardar en variable resultado
  var resultado=ajax.responseText;
  if(resultado=='true')
   {
     location.href=esto.href;
     return false;
   }
  else if(resultado=='false')
   {
     var error=document.getElementById('error');
     error.innerHTML='se te caduco la sesion...';
     return false;
   }
 }
en PHP:

si tiene sesion
Código PHP:
echo 'true'
si no tiene sesion
Código PHP:
echo 'false'
espero que te sirva de inicio ;)
orale que gracias amigo pero, si no es mucha molestia
en que parte se esta preguntando por la session y una disculpa por hacerte esta pregunta lo que pasa que en php normalmente pregunto si la sesion esta activa asi:

session_start();
if ($_session("User")!=null)

saludos espero sus comentarios
__________________
gerardo
  #4 (permalink)  
Antiguo 02/02/2008, 04:08
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: verficar sesion de php al oprimir un href

HTML
Código HTML:
<a href="pagina.php" onclick="return abc(this)">pagina</a>
<div id="error" style="display:none">
</div> 
Javascript:
Código:
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("Your browser does not support AJAX!");return false; }
  }}}

function abc(esto)
 {
  var ajax = new ajaxFunction();
  ajax.onreadystatechange=function()
    {
     if(ajax.readyState==4)
      {
	var resultado=ajax.responseText; // guardar respuesta de sesion.php en variable
	if(resultado=='true')
	 {
		location.href=esto.href; // si pagina sesion.php imprime true es que tiene sesion, por lo tanto iremos al enlace del link
		return false;
	 }
	else if(resultado
	 {
		var error=document.getElementById('error');
		error.innerHTML='Se te acabo la sesion :('; // añadimos codigo a la capa error
		error.style.display='block'; // mostramos la capa, ya que esta oculta
		return false;
	 }
      }
    }
  ajax.open("GET","sesion.php",true);
  ajax.send(null);
 }
sesion.php

Código PHP:
session_start();
if (
$_SESSION["User"]!=null)
 {
  echo 
'true';
 }
else
 {
  echo 
'false';
 } 
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 06/02/2008, 00:39
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Re: verficar sesion de php al oprimir un href

gracias zital por la ayuda
saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 06/02/2008, 12:19
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: verficar sesion de php al oprimir un href

fijate que estoy probando el script solo modifique esta parte porque no se si te falto pornerlo el

if(resultado=='false')
{
var error=document.getElementById('error');
error.innerHTML='Se te acabo la sesion :('; // añadimos codigo a la capa error
error.style.display='block'; // mostramos la capa, ya que esta oculta
return false;
}

bueno el datalle es que si logra ver el mensaje cuando no hay session pero, el direccionamiento si realiza aun si no hay ,
que puedo hacer?

saludos
espero sus comentarios
__________________
gerardo
  #7 (permalink)  
Antiguo 06/02/2008, 12:24
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: verficar sesion de php al oprimir un href

hola parace que se logro pero me gustaria saber tu opinion

modifique esto:
original:
<a href="pagina.php" onclick="return abc(this)">pagina</a>
<div id="error" style="display:none">
</div>

despues:
<a href="#" onclick="return abc('pagina.php')">pagina</a>
<div id="error" style="display:none">

y modifique esto tambien

antes:
if(resultado=='true')
{
location.href=esto.href; // si pagina sesion.php imprime true es que tiene sesion, por lo tanto iremos al enlace del link
return false;
}

despues:
if(resultado=='true')
{
location.href=esto; // si pagina sesion.php imprime true es que tiene sesion, por lo tanto iremos al enlace del link
return false;
}

saludos espero tus comentarios

gracias
__________________
gerardo
  #8 (permalink)  
Antiguo 06/02/2008, 14:52
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Re: verficar sesion de php al oprimir un href

te explico porque no te funciona:

1.- si pones el # en href luego no te funcionara ya que:

Código:
location.href=esto.href;
que hace esto:

location.href (redirecciona a pagina)

esto.href (esto lo hemos pasado como this, y que es this, pues en este caso el elemento A

entonces: elemento A.href (la propiedad href del elemento a pues es # y no como antes que era un enlace)

Solucion?
Código HTML:
<a href="#" onclick="return abc(this,'pagina.php')">pagina</a> 
Código:
function abc(esto,enlace)
...
if(resultado=='true')
{
  location.href=enlace; 
  return false;
}
ya nos contaras.

PD: El elemento this se usa para enviar dicho elemento a la funcion, pero se podria usar por ejemplo el id y hacer un getElementById, eso a gusto de cada uno ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 06/02/2008, 15:22
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Re: verficar sesion de php al oprimir un href

ok probare tomando encuenta tus observaciones

gracias
saludos
__________________
gerardo
  #10 (permalink)  
Antiguo 27/05/2008, 22:19
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: verficar sesion de php al oprimir un href

hola men aqui nuevamente molestando fijate que deseo aplicar el script pero ahora ya no usando
un href si no que una función llame a tu funcion de ajax que muy amablemente has hecho

es decir asi tengo una funcion que haces unas operaciones y en las cuales quiero incluir
tu funcion

<script>
function invocar()
{
resultadoA = abc();
alert(resultado );

}
</script>

html
<input type="button" name="ver" onclick="invocar()">

que debo modificar en la funcion para ya no usar
<a href="#" onclick="return abc(this,'pagina.php')">pagina</a>
y saber como regresar el valor de la funcion ajax en resultadoA

saludos
espero tus comentarios
__________________
gerardo

Última edición por chalchis; 28/05/2008 a las 10:22
  #11 (permalink)  
Antiguo 28/05/2008, 10:29
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: verficar sesion de php al oprimir un href

trate de hacer esto
esto lo puede en un archivo js
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("Your browser does not support AJAX!");return false; }
}}}

function abc()
{
var ajax = new ajaxFunction();
ajax.onreadystatechange=function()
{
if(ajax.readyState==4)
{
var resultado=ajax.responseText; // guardar respuesta de sesion.php en variable
if(resultado=='true')
{
//location.href=esto.href; // si pagina sesion.php imprime true es que tiene sesion, por lo tanto iremos al enlace del link
//return false;
return resultado;//esto fue lo que cambie
}
else if(resultado
{
//var error=document.getElementById('error');
//error.innerHTML='Se te acabo la sesion :('; // añadimos codigo a la capa error
//error.style.display='block'; // mostramos la capa, ya que esta oculta
//return false;
return resultado;//esto fue lo que cambie
}
}
}
ajax.open("GET","sesion.php",true);
ajax.send(null);
}


en la pagina tengo esto
<script>
function invocar()
{
resultadoA = abc();
alert(resultadoA);

}
</script>

html
<input type="button" name="ver" onclick="invocar()">

el problema es que abc me regresa indefinido
que debo hacer o que se esta haciendo mal

saludos espero sus comentarios amigos
__________________
gerardo

Última edición por chalchis; 28/05/2008 a las 11:27
  #12 (permalink)  
Antiguo 28/05/2008, 14:18
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
De acuerdo Respuesta: verficar sesion de php al oprimir un href

Código:
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("Your browser does not support AJAX!");return false; }
  }}}

function abc()
 {
	var ajax = new ajaxFunction();
	ajax.onreadystatechange=function()
	 {
		if(ajax.readyState==4)
		 {
			return ajax.responseText;
		 }
	 }
	ajax.open("GET","sesion.php",true);
	ajax.send(null);
 }
 
function invocar()
 {
	var resultadoA = abc();
	alert(resultadoA);
 }
Procura poner el codigo entre [*CODE*] y [*/CODE*] (sin asteriscos) ya que sino la gente ni siquiera leera el codigo (me incluyo).

Prueba con esto
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #13 (permalink)  
Antiguo 28/05/2008, 18:10
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Respuesta: verficar sesion de php al oprimir un href

gracias ZiTAL nuevamente voy probarlo y te dire que paso de ante mano
gracias y tambien por tip de [*CODE*]

saludos
__________________
gerardo
  #14 (permalink)  
Antiguo 28/05/2008, 18:39
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Respuesta: verficar sesion de php al oprimir un href

hola nuevamente he probado y me sigue marcando undefined en el alert
lo que estoy haciendo es que la funcion de ajax lo estoy insertando dentro de un js
Código:
<html>
<title>
<head>
<script type="text/javascript" src="http://sitio/directorio/Js/Verificar_sess/verificar.js"></script>
//---------
function invocar()
 {
	var resultadoA = abc();
	alert(resultadoA);
 }
</head>
<body>
<input type="button" name="ver" onclick="invocar()">
</body>
</html>
__________________
gerardo
  #15 (permalink)  
Antiguo 28/05/2008, 23:34
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: verficar sesion de php al oprimir un href

hola amigos he tratado de entender esto de ajax no soy un experto
pero por lo que he podido documentar es que debo tratar la funcion en
modo sincronico

osea asi

Código:
function abc()
 {
	var ajax = new ajaxFunction();	
	ajax.open("GET","int_verificar.php",false); 
	ajax.send(null); 
	return ajax.responseText;
 }
y efectivamente ya obtengo el valor en
Código:
function invocar()
 {
	var resultadoA = abc();
	alert(resultadoA);
 }
mi duda es realmente necesario hacer esto
ya que lei sobre esto

Método Open
El método open prepara una conexión HTTP a través del objeto XMLHttpRequest con un método y una URL especificados.

XMLHttpRequest.open ( sMetodo, sURL [, bSincronia [, sUsuario [, sPwd ] ] ] );

sMetodo es la cadena que nos indicara el tipo de conexión (GET o POST)
sURL es la url a la que realizamos la petición
bSincronia es un campo booleano con el que podemos utilizar modo asíncrono o síncrono, si lo fijamos en "false" modo síncrono perderiamos las mejores características de AJAX, los datos sUsuario y sPwd son opcionales y sólo aplicables en caso de caída del servidor.

eh aqui unas referencias a lo que comento

http://www.webmasterworld.com/javascript/3483187.htm

http://lists.evolt.org/pipermail/jav...er/011585.html

http://swik.net/Ajax/How+to+use+XMLHttpRequest

http://swik.net/Ajax/How+to+use+XMLHttpRequest


esperos sus comentarios amigos en especial de ZiTAL ya que el me ha ayudado
en este caso

saludos
__________________
gerardo
  #16 (permalink)  
Antiguo 29/05/2008, 01:25
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
De acuerdo Respuesta: verficar sesion de php al oprimir un href

efectiviwonder amigo, es eso, poner el parametro en false, ya que de lo contrario sigue ejecutando las lineas siguientes si lo pones en true, con false espera a que le llegue la respuesta y sigue con su funcion.

Me alegro de que lo hayas solucionado tu solo documentandote ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #17 (permalink)  
Antiguo 29/05/2008, 08:40
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
De acuerdo Respuesta: verficar sesion de php al oprimir un href

ok entonces no hay vuelta de hoja la funcion se que daria asi:

asi:

antes:
Código:
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("Your browser does not support AJAX!");return false; }
  }}}

function abc()
 {
	var ajax = new ajaxFunction();
	ajax.onreadystatechange=function()
	 {
		if(ajax.readyState==4)
		 {
			return ajax.responseText;
		 }
	 }
	ajax.open("GET","sesion.php",true);
	ajax.send(null);
 }
nuevo
Código:
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("Your browser does not support AJAX!");return false; }
  }}}

//solo esto cambio
function abc()
 {
	var ajax = new ajaxFunction();	
	ajax.open("GET","int_verificar.php",false); 
	ajax.send(null); 
	return ajax.responseText;
 }
gracias zital nuevamente

saludos
__________________
gerardo

Última edición por chalchis; 29/05/2008 a las 09:04
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 04:43.