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

session_ PHP y ajax

Estas en el tema de session_ PHP y ajax en el foro de Frameworks JS en Foros del Web. Hola atodos en el Foro: Necesito ayuda en lo siguiente: Estoy desarrollando una web en la que utilizo AJAX (Prototype.js) y PHP. El problema esta ...
  #1 (permalink)  
Antiguo 25/07/2007, 13:25
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
session_ PHP y ajax

Hola atodos en el Foro:
Necesito ayuda en lo siguiente:
Estoy desarrollando una web en la que utilizo AJAX (Prototype.js) y PHP. El problema esta en que es prioritario el ingreso mediante autentificacion via ingreso de login y pass, el cuento esta en que al realizar un Ajax.Updater a la pagina de opciones, el menu(que es el que realiza la primera verificacion de la session para entregar opciones de acuerdo a privilegios), me da problemas ya que no existe la variable de sesion que cree, las capas que son cargadas dentro de la ventana principal no estan creando la sesion , ni tampoco existen las varialbes que fueron creadas.ç

Oja alguien me pueda orientar, si necesitan el codigo lo publicare mas tarde.

Gracias chauz
  #2 (permalink)  
Antiguo 25/07/2007, 16:02
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: session_ PHP y ajax

Ok, yo recuperaria antes las sessiones en variables y lueg las enviaria por parametro al archivo invocado por Ajax.

Saludos
  #3 (permalink)  
Antiguo 26/07/2007, 15:48
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: session_ PHP y ajax

Hola gvargas, gracias por responder.

Eso que me dices de rescatar las varialbes de sesion en teoria no es complicado, pero las almacenarias en variables php, pero una cosa

Como envio esas variables mediante AJAX??

Estoy ocupando el framework prototype y tiene una funcion llamada Ajax.Updater que es el que utilizo, pero no se como enviarle las variables, ahi quede en pana.

Cualquier cosa estoy por aca, gracias chauz
  #4 (permalink)  
Antiguo 26/07/2007, 16:50
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: session_ PHP y ajax

Esta sería una forma:

Código PHP:
<?php
$usuario 
'usuario';
$privilegios 'valor de privilegios';
?>

<!-- en algún lugar dentro del body -->
<input type="hidden"  id="usuario" value="<?php echo $usuario;?>" />
<input type="hidden"  id="privilegios" value="<?php echo $privilegios;?>" />
y ahora el js:
Código PHP:
function funcion_ajax(){
    var 
usuario = $('usuario');
    var 
privilegios = $('privilegios');
    var 
parametros 'usuario=' usuario 'privilegios=' privilegios;
    var 
url 'tu_script_en_servidor.php';
    new 
Ajax.Updater('div_contenedor'url, {method'post'parametersparametros});


Y ya.

Espero que no se me pase nada que lo estoy haciendo al vuelo.

Un saludo
  #5 (permalink)  
Antiguo 26/07/2007, 17:00
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: session_ PHP y ajax

Gracias gvargas,

Estoy probando con esta forma, cualquier cosa, te molesto de nuevo o a otro, jeje


Realmente se agradece el tiempo.

Si funciona posteo el codigo de como lo hice puede servirle a otro


Chauz
  #6 (permalink)  
Antiguo 28/07/2007, 12:54
 
Fecha de Ingreso: junio-2006
Mensajes: 137
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: session_ PHP y ajax

Hola gvargas
Te quiero molestar con lo siguiente (o aotro que lea el post)
Cita:
<?php
include("registro/conecta.php");
include("registro/verifica.php");
?>

<html>

<head>
<script type="text/javascript" src="js/prototype.js" language="JavaScript"></script>
<script type="text/javascript" src="js/estandar.js" language="JavaScript"></script>
</head>

<body>
<div id = "capa">
<?php
$usuario = $_SESSION['ussuario'];
$nombre = $_SESSION['usu_nombres'];
$cargo = $_SESSION['usu_cargo'];

echo "usuario =".$usuario;
echo "<br />";
echo "nombre =".$nombre;
echo "<br />";
echo "cargo =".$cargo;
echo "<br />";
?>
<input type = "button" id = "btn" value = "Presione aqui">
<input type = "button" id = "btn2" value = "Presione aqui">
<input type = "hidden" id = "usuario" value = "<?php echo $usuario; ?>">
</div>
</body>
</html>
Las dos primeras lineas verifican si el usuario existe en la BD y crea la sesion, esta en el codigo de verifica mas abajo (por si a alguien le sirve)

Asi envio actualizo la pagina
Cita:
mostrar2 = function(){
var usuario = $('usuario').value;
var parametro = 'usuario=' + usuario;
alert(parametro);
new Ajax.Updater('capa', 'capa.php', {method: 'post', parameters: parametro});
}
Cita:
<?php
session_start();

// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
if (!isset($_POST['usuario'])){
// Si estan vacias las variables destuimos la sesion y direccionamos al inicio
session_destroy();
die (header ("Location: index.php"));
}
?>

<?php
$usuario = $_POST['usuario'];
$nombre = $_SESSION['usu_nombres'];
$cargo = $_SESSION['usu_cargo'];

echo "usuario =".$usuario;
echo "<br />";
echo "nombre =".$nombre;
echo "<br />";
echo "cargo =".$cargo;
echo "<br />";
?>
<input type = "button" id = "btn3" value = "Presione aqui" onclick = "mostrar3();">
Este archivo es el que mnuestra con Ajax.Updater recibo el valor de usuario de la sesion. entra de acuerdo a la verificacion, pero.....
Mi duda es por que no activa las demas variables de sesion, solo me imprime el usuario, que es enviado como parametro desde la capa superior.



Verifica.php (modificacion del codigo publicado por Cluster, guru de PHP)
Cita:
<?php
//include("registro/conecta.php");

$usuario = $_POST['usuario'];
$clave = $_POST['clave'];//md5($_POST['pass']);

// chequea pagina que llama al script, para devolver errores
$url = explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;

if (isset($_POST['usuario']) && isset($_POST['clave'])) {

// Conexión base de datos. si no lo logra devuelve error 0
$enlace = conectar();
if(!($enlace)) die(header ("Location: $redir?error_login=0"));

// realizamos la consulta a la BD para chequear datos del Usuario.
$sql = "SELECT vol_rut, car_id, per_id, ofi_usuario, ofi_clave FROM oficial WHERE ofi_usuario = '$usuario'";
$consulta = consultar($sql);
//si existe un error en la consulta vuelve al inicio indicando el error
if(!($consulta)) die(header ("Location: $redir?error_login=1"));

if (mysql_num_rows($consulta) != 0) {
// almacenamos datos del Usuario en un array para empezar a chequear.
$datos_usu = mysql_fetch_array($consulta);

// si la clave no coincide
// salimos del script con error 3 y redireccinamos hacia la página de acceso
if ($clave != $datos_usu['ofi_clave']) {
Header ("Location: $redir?error_login=3");
exit;
}

$rut = $datos_usu['vol_rut'];
$cargo = $datos_usu['car_id'];
$perfil = $datos_usu['per_id'];

mysql_free_result($consulta);
//obtenemos los privilegios de usuario
$sql = "SELECT C.car_nombre, P.per_privilegios, V.vol_nombres, V.vol_ape_paterno, V.vol_ape_materno FROM cargo C, perfil_de_usuario P, voluntario V WHERE C.car_id = '$cargo' AND P.per_id = '$perfil' AND V.vol_rut = '$rut'";
$consulta = consultar($sql);

if(!($consulta)) die(header ("Location: $redir?error_login=1"));
$datos = mysql_fetch_array($consulta);

desconectar($enlace);

// le damos un mobre a la sesion.
session_name("SAGO");
// inciamos sesion
session_start();

//decimos al navegador que no guarde esta página en la cache
session_cache_limiter('nocache,private');

// cargamos los datos del usuarios en las variables de sesion
$_SESSION['usu_rut'] = $datos_usu['vol_rut'];
$_SESSION['usu_idcargo'] = $datos_usu['car_id'];
$_SESSION['ussuario'] = $datos_usu['ofi_usuario'];
$_SESSION['usu_nombres'] = $datos['vol_nombres'];
$_SESSION['usu_paterno'] = $datos['vol_ape_paterno'];
$_SESSION['usu_materno'] = $datos['vol_ape_materno'];
$_SESSION['usu_privilegios'] = $datos['per_privilegios'];
$_SESSION['usu_cargo'] = $datos['car_nombre'];

unset($usuario);
unset ($clave);
}
else {
// si no esta el nombre de usuario en la BD o el password ..
// se devuelve con error 2
Header ("Location: $redir?error_login=2");
exit;
}
}
else {
// Iniciamos el uso de sesiones
session_start();

// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
if (!isset($_SESSION['ussuario'])){
// Si estan vacias las variables destuimos la sesion y direccionamos al inicio
session_destroy();

die (header ("Location: index.php"));
}
}
?>
Reiterando, la duda esta en por que no activa las variables de sesion el segundo codigo si inicia sesion con session_start()

Sera porque la capa superior ya tiene iniciadas las variables???


Ahi me perdi.


Ojala se entienda mi consulta

Cualquier ayuda estoy por aca.

Agradecido de todos modos

Chauz
  #7 (permalink)  
Antiguo 30/07/2007, 03:20
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: session_ PHP y ajax

editado: me equivoque de post

Última edición por klareNs; 30/07/2007 a las 09:06
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 05:18.