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

Recuperar una variable en una clase AJAX...

Estas en el tema de Recuperar una variable en una clase AJAX... en el foro de Frameworks JS en Foros del Web. Hola, tengo q script de AJAX para logear un usuario. Realmente no entiendo gran cosa de AJAX, hice copy/paste y me funiona pero tengo un ...
  #1 (permalink)  
Antiguo 23/02/2010, 18:01
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Recuperar una variable en una clase AJAX...

Hola, tengo q script de AJAX para logear un usuario. Realmente no entiendo gran cosa de AJAX, hice copy/paste y me funiona pero tengo un problema.

El script consulta una tabla con mail (usuario) y password (contraseña).

Resulta que necesito sacar el $id del usuario que se encuentra en la misma tabla q el usuario y contraseña.

El tema es que no se cómo hacerlo. Lo suyo sería aprender desde el principio las clases y lo he intentado pero es complicado, necesito tiempo y tan sólo me hace falta recuperar el id haciendo en la clase algo así como $id=$row[id]; pero obviamente lo he probado y no me funciona.

Este es el código (bastante largo por cierto):

Código PHP:
index.php

<?
  
include('logconfig.php');
  if (!
$login->logged())
  {
    
header("location: logindex.php");
    die();
  }

?>

____________________
forum.php

<? 
header
("Content-Type: text/html; charset=utf-8");  
?>
<?
  
include('logconfig.php');
  if (!
$login->logged())
  {
    
header("location: logindex.php");
    die();
  }
  else
  {
  
// recogemos el valor id
  
}?>

si es correcto el usuario y contraseña, aquí iría la web en sí...

_______________

logconfig.php

<?
  
include('loglogin.php');
  
  
$login = new login(array(
    
'database' => 'basedatos',
    
'table'    => 'tabla',
    
'mail' => 'root',
    
'password' => 'root'
  
));
?>
___________________

loglogin.php

<?
/*
 * @script      Sistema de logueo de usuarios
 * @version     0.3.b
 * @date        17 Agosto 2009
 * @copyright   Copyright (c) 2008-2009 - [url]www.codeflyer.org[/url] - All Rights Reserved.
 * @author      Eduardo Daniel Sada.
 * @license     MIT ( [url]http://es.wikipedia.org/wiki/Licencia_MIT[/url] )
*/

/* PHP5 required */
if (version_compare(PHP_VERSION'5.0.0') < 0)
{
    die(
'The CodeFlyer Framework requires PHP 5.x.x or greater.');
}


class 
login
{
    private 
$mail;
    private 
$password;
    private 
$privilege;

    private 
$link;
    private 
$id;
    private 
$table;
    
    public 
$error;

  
/**
   * Get userdata
   */

  
public function get($var)
  {
    
$var trim(lcase($var));

    if (
$var=='privilege')
    {
      
$ret $this->privilege;
    }
    else if (
$var=='mail')
    {
      
$ret $this->mail;
    }
    else if (
$var=='password')
    {
      
$ret $this->password;
    }
    else
    {
      
$ret false;
    }
    return 
$ret;
  }


  public function 
isadmin()
    {
    return 
$this->privilege == 1;
    }

    public function 
getdata($data)
    {
    
$data $this->clean(trim($data));
    
$query "SELECT $data FROM {$this->table} WHERE id='{$this->id}' LIMIT 1;";
    if (
$result mysql_query($query$this->link))
    {
      if (
$row mysql_fetch_assoc($result))
      {
        return 
$row[$data];
      }
    }
    }

  
/**
   * Set userdata
   */
    
public function modlastlogin()
    {
        
mysql_query("UPDATE {$this->table} SET lastactive = NOW() WHERE id = '{$this->id}';"$this->link);
        return 
mysql_affected_rows($this->link)==true false;
    }

    public function 
lastlogin()
    {
        if (
$result mysql_query("SELECT lastactive FROM {$this->table} WHERE id = '{$this->id}' LIMIT 1"$this->link))
        {
            if (
$row mysql_fetch_assoc($result))
            {
                return 
$row['lastactive'];
            }
        }
    }

    
/**
     * Login core
     */
    
public function inherit($session)
    {
    
session_name(urldecode($session));
    }

    public function 
getSID()
    {
    return 
"PHPSESSID=".session_id();
    }

  public function 
login($mail$password$remember false)
  {
    
$mail $this->clean($mail);
    
$password md5($password);
    
$query    "SELECT * FROM {$this->table} WHERE mail = '$mail' LIMIT 1;";

    if (
$result mysql_query($query$this->link))
    {
      if (
$row mysql_fetch_assoc($result))
      {
        if (
$row['password']==$password)
        {
          return 
$this->setSession($row$remember);
        }
        else
        {
          
$this->logout();
          
$this->error 'pi'// Password Incorrect
          
return false;
        }
      }
      
$this->logout();
      
$this->error 'ui'// mail Incorrect
      
return false;
    }
    else
    {
      
$this->logout();
      return 
false;
    }
  }
  
  
// Construir la session y la cookie, y guardarlas en la base de datos.
  
private function setSession(&$values$remember false$init true)
  {
    
$this->id         $values['id'];
    
$this->mail   $values['mail'];
    
$this->password   $values['password'];
    
$this->privilege  $values['privilege'];

    
$_SESSION['cf_login_mail'] = htmlspecialchars($this->mail);
    
    
$cookie md5($values['mail'].date("Y-m-d"));
    if (
$remember)
    {
      
$this->update_cookie($cookietrue);
    }

    if (
$init)
    {
      
$session session_id();
      
mysql_query("UPDATE {$this->table} SET session='{$session}', cookie='{$cookie}' WHERE id='{$this->id}'"$this->link);
      
$this->modlastlogin();
    }
    return 
true;
  }

  private function 
update_cookie($cookie)
  {
    
$this->create_cookie('cf_login_cookie'serialize(array($this->mail$this->password$cookie)), time() + 31104000);
  }
  
  public function 
create_cookie($name$value=''$maxage=0$domain=''$path=''$secure=false$HTTPOnly=false)
  {
    
$ob ini_get('output_buffering');
    
    if (
$_SERVER['HTTPS'])
    {
      
$secure true;
    }

    
// Abort the method if headers have already been sent, except when output buffering has been enabled
    
if ( headers_sent() && (bool) $ob === false || strtolower($ob) == 'off' )
    {
      return 
false;
    }

    if (!(bool)
$maxage)
    {
      
$maxage time()+3600;
    }

    if ( !empty(
$domain) )
    {
      
// Fix the domain to accept domains with and without 'www.'.
      
if ( strtolowersubstr($domain04) ) == 'www.' )
      {
        
$domain substr($domain4);
      }

      
// Add the dot prefix to ensure compatibility with subdomains
      
if ( substr($domain01) != '.' )
      {
        
$domain '.'.$domain;
      }


      
// Remove port information.
      
$port strpos($domain':');

      if ( 
$port !== false )
      {
        
$domain substr($domain0$port);
      }
    }
    else
    {
      
// Localhost compatibility
      
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
    }

    
header('Set-Cookie: ' .rawurlencode($name).'='.rawurlencode($value)
                          .(empty(
$domain) ? '' '; Domain='.$domain )
                          .(empty(
$maxage) ? '' '; Max-Age='.$maxage)
                          .(empty(
$path)   ? '' '; Path='.$path     )
                          .(!
$secure       '' '; Secure'          )
                          .(!
$HTTPOnly     '' '; HttpOnly'        )
          , 
false);
    return 
true;
  }

  
// Devuelve true si el usuario está logueado. Caso contrario devuelve false.
  // @return bool
    
public function logged()
    {
    
// Verificar si el usuario contiene una cookie y cargar sus datos.
    
$cookie = array();
    if (
$_COOKIE['cf_login_cookie'])
    {
      list(
$cookie['mail'], $cookie['password'], $cookie['serial']) = @unserialize(stripslashes($_COOKIE['cf_login_cookie']));
    }
  
    
// Verificar si los datos de la cookie son válidos.
    
if ($cookie['serial'] && $cookie['mail'] && $cookie['password'])
    {
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '{$cookie['mail']}') AND (password = '{$cookie['password']}') AND (cookie = '{$cookie['serial']}') LIMIT 1;";
    }
    else
    {
      
// Verificar si los datos de session son válidos.
      
$mail $_SESSION['cf_login_mail'];
      
$session  session_id();
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '$mail') AND (session = '$session') LIMIT 1;";
    }


    if (
$result mysql_query($query$this->link))
    {
      if (
$row mysql_fetch_assoc($result))
      {
        return 
$this->setSession($rowfalsefalse); // Log in
      
}
      else
      {
        return 
false;
      }
    }
    else
    {
      return 
false;
    }
    }

  
// Destruir sessión.
    
public function logout()
    {
    
$_SESSION['cf_login_mail'] = '';
    
$_SESSION['cf_login_cookie']   = 0;
    
$this->create_cookie('cf_login_cookie'''time() - 3600);
    
mysql_query("UPDATE {$this->table} SET session='".strtoupper(md5(time()))."', cookie='".strtoupper(md5(time()))."' WHERE id='{$this->id}'"$this->link);

    
$this->mail '';
    
$this->password '';
    
$this->privilege 0;
    
$this->id 0;
  }

  
// Limpia la variable de carácteres impuros.
  
private function clean($value)
  {
    if (
get_magic_quotes_gpc())
    {
      
$value stripslashes($value);
    }
    
$value mysql_real_escape_stringhtmlspecialchars$value ) );
    return 
$value;
  }

  
// Crea la clase y conecta con la base de datos.
  // @param array : ['host']     = 'localhost';
  //                ['table']    = Tabla en donde se almacenan los usuarios
  //                ['mail'] = Nombre de usuario de la base de datos
  //                ['password'] = Password de la base de datos 
    
public function __construct($array)
    {
    
$this->table $array['table'] ? $array['table'] : 'login';
    
$this->link  mysql_connect$array['host'] ? $array['host'] : 'localhost'$array['mail'], $array['password'], true );
    if (!
$this->link)
    {
      die(
mysql_error());
    }
    else
    {
      if (!
mysql_select_db($array['database']))
      {
        die(
mysql_error());
      }
    }

    if (isset(
$_GET['PHPSESSID']))
    {
      
session_id($_GET['PHPSESSID']);
    }

    
session_start();
    }

}

?>

Última edición por humanista; 25/02/2010 a las 01:40
  #2 (permalink)  
Antiguo 23/02/2010, 21:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...

1) Te voy a pedir si no podes encerra tu codigo entre los tags [ php ] [ /php ] (sin espacios) o alguno de los miles que hay en el editor, es imposible entender casi.

2) No veo en donde implementas el metodo getdata() o el que sea para traer los resultados de tu base... Ahi esta el problema

3) La clase claramente no es ajax... Javascript es un lenguaje basado en prototipos, con ausencia de lo que son las clases... La clase es de PHP!

No seria mas facil hacer tu propia clase en vez de esperar a que nosotros revisemos cientos de lineas de codigo? Ademas de esa manera seria mejor para tu aprendizaje me parece... Ya que ahora te pasa esto, pero como es pequeño y no lo entiendes crees que esperar a que te den una respuesta es mejor que aprender. Pero luego? Cuando surjan cosas mas importantes?
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 24/02/2010, 03:10
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

Gracias jackson666, ya he encerrado el código entre [ php ] [ /php ] para que se entienda mejor.

El método getdata() sí q aparece en el código. Sï, efectivamente, la clase es PHP, me colé ;)

La clase funciona perfectamente por lo que no tiene sentido hacer una propia diferente.

Tan sólo lo que me hace falta es saber cómo, después del SELECT, puedo sacar el campo id de la tabla. Sólo eso.

En php controlo el tema de variables y he intenado entender las clases de php pero por ahora se me hace cuesta arriba. Poco a poco me iré poniendo pero ahora me encuentro atascado en este "detalle" y no puedo avanzar sin encontrar solución a esto.
  #4 (permalink)  
Antiguo 24/02/2010, 07:21
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...

Código MySQL:
Ver original
  1. SELECT id FROM tabla;
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 24/02/2010, 07:31
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

Hombre... algo de php sí q aprendí alguna vez...

Igual no me expliqué bien, lo q pretendo es saber dónde DENTRO de la clase y CÓMO, pongo el select para que me recupere el id.

Intuyo q podría ser por aquí:

public function login($mail, $password, $remember = false)
{
$mail = $this->clean($mail);
$password = md5($password);
$query = "SELECT * FROM {$this->table} WHERE mail = '$mail' LIMIT 1;";

if ($result = mysql_query($query, $this->link))
{
if ($row = mysql_fetch_assoc($result))
{
if ($row['password']==$password)
{
return $this->setSession($row, $remember);
.................................................. ......................................
.................................................. ......................................
.................................................. ......................................
.................................................. ......................................
}
  #6 (permalink)  
Antiguo 24/02/2010, 07:46
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

quizás haya q llamar a la función getdata() pasándole parámetros no? si es así... desde dónde y cómo?

menudo lío tengo en la cabeza...
  #7 (permalink)  
Antiguo 24/02/2010, 07:52
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...

Código PHP:
public function getAllIds(){

return 
mysql_query("SELECT id FROM tabla;",$this->link);


__________________
HV Studio
Diseño y desarrollo web
  #8 (permalink)  
Antiguo 24/02/2010, 08:22
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

ok, entiendo, además tendría q añadirle:

"... WHERE mail = '$mail' and password='$password' LIMIT 1;";

y... viendo otras consultas dentro de la clase intuyo que va con:

"SELECT id FROM {$this->table}"


y eso lo pongo en cualquier parte dentro de la clase me imagino.

luego -sigo intuyendo- sería:

Código PHP:
public function getAllIds(){

return 
mysql_query ("SELECT id FROM {$this->table} where mail = '$mail' and password='$password' LIMIT 1;",$this->link);

}

    if (
$result mysql_query($query$this->link)) 
    { 
       
$id=$row[id];
    } 

1) es correcto?

2) además... tengo q llamar desde algún lado a esta función o simplemente con la llamada q ya tiene la clase serviría?

3) luego bastaría con hacer un echo $id (fuera de la clase claro) para comprobar q ha devuelto bien el valor, no?
  #9 (permalink)  
Antiguo 24/02/2010, 15:19
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

Estoy perdido... necesito ayuda por favor...

Alguien me puede ayudar con algo concreto?

graciasss
  #10 (permalink)  
Antiguo 24/02/2010, 20:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...

Pense que sabias algo de PHP, pues veamos...

Rehacemos el metodo (porque es para un solo id)
Código PHP:
public function getId($mail$password){

return 
mysql_query ("SELECT id FROM {$this->table} where mail = '$mail' and password='$password' LIMIT 1;",$this->link);

}
/* Esto esta demas! Fijate que ni siquiera estas dentro del metodo!!!
    if ($result = mysql_query($query, $this->link)) 
    { 
       $id=$row[id];
    }  */ 
Código PHP:
# Instanciamos un objeto

  
include('loglogin.php');
  
  
$login = new login(array(
    
'database' => 'basedatos',
    
'table'    => 'tabla',
    
'mail' => 'root',
    
'password' => 'root'
  
));

  
# Llamamos al metodo...

  
$ids $login->getId('mail','password');

  
# Ya se que usas LIMIT 1, es para ver si realmente esta funcionando
  # Si ves que funciona, saca el while!
  
while($res mysql_fetch_array($ids)){
    
# bla bla bla
  

__________________
HV Studio
Diseño y desarrollo web
  #11 (permalink)  
Antiguo 25/02/2010, 07:41
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

La cosa va por el buen camino pero algo debe fallar pq no le llegan bien las variables a la función.

He hecho lo que me dices pero quitando la instancia al objeto pq sino se repetiría y entonces me da error. Justo antes de colocar l código q me dices ya se instancia el objeto.

forum.php

Código PHP:
<?
  
//include('loglogin.php');
  
  //$login = new login(array(
    // 'database' => 'basedatos',
    // 'table'    => 'tabla',
    // 'mail' => 'root',
    // 'password' => 'root'
  // ));

  
$ids $login->getId('mail','password');

  while(
$res mysql_fetch_array($ids)){
    
$id $res[id];
    echo 
$id;
  }
Código PHP:

loglogin
.php (aquí es donde está la clase)
____________________________

    
public function getId($mail$password){
    
$mail $this->clean($mail);
    
$password md5($password);

    
$mail="[email protected]";
    
$password="micontrasena";
    return 
mysql_query ("SELECT id FROM {$this->table} where mail = '$mail' and password='$password' LIMIT 1;",$this->link);

?> 
es decir q si pongo "a mano" el $mail y el $password en la función me va perfectamente y si los quito no me hace nada, me saca blancos...
  #12 (permalink)  
Antiguo 25/02/2010, 07:55
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...

Ejecuta esto
Código PHP:
public function getId($mail$password){
    
$mail $this->clean($mail);
    
$password md5($password);
    echo 
"SELECT id FROM {$this->table} where mail = '$mail' and password='$password' LIMIT 1;"
Y postea exactamente la consulta que te imprima
__________________
HV Studio
Diseño y desarrollo web
  #13 (permalink)  
Antiguo 25/02/2010, 12:37
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

le quité esto:

Código PHP:

    $mail 
$this->clean($mail);
    
$password md5($password); 
para que se viera perfectamente el resultado, y esto es exactamente lo que me sale:


Código PHP:
SELECT id FROM mitabla where mail 'mail' and password='password' LIMIT 1
es decir que no le llegan las variables $mail y $password

o sea q está claro q el único problema es q pasamos mal las variables a la función, aquí:

Código PHP:
$ids $login->getId('mail','password'); 
pasamos como variable mail la propia palabra mail y con el password pasa lo mismo

Última edición por humanista; 25/02/2010 a las 12:48
  #14 (permalink)  
Antiguo 25/02/2010, 13:14
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar una variable en una clase AJAX...



Creo que es mas que obvio lo que esta pasando... Lo unico que te pido, es que no copies y pegues mas codigo, que trates de interpretar por tu cuenta un poco!!!

Si te imprime eso, porque sera?

Código PHP:
$ids $login->getId('mail','password'); 
Ese fue solo un codigo de ejemplo!! Deberias reemplazar 'mail' y 'password' por los valores por los que quieres consultar!!!!
__________________
HV Studio
Diseño y desarrollo web
  #15 (permalink)  
Antiguo 25/02/2010, 13:59
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

sí, evidentemente es así, pero... el problema viene a la hora de rescatar los valores mail y password, jackson666, creo q es más complejo de lo q parece.

Por simplificar, el tema empieza aquí:

Formulario eh html donde metes mail y password:

Código PHP:
<? if (!$login->logged()) : ?>
    <form method="post">
      <p><label>Username: <input type="text" name="mail" value="" /></label></p>
      <p><label>Password: <input type="password" name="password" value="" /></label></p>
      <p><input type="submit" name="submit" /></p>
    </form>
<?
      
else:
        
header('location: forum.php');
      endif;
?>
En el mismo fichero, antes de lo anterior:

Código PHP:
  include('logconfig.php');

  if (
$_POST['submit'])
  {
    if(
$login->login($_POST['mail'], $_POST['password']))
    {
      
header('location: forum.php');
    }
    else
    {
      echo 
"<strong>Login error</strong>";
    }
  } 
Este último llama a logconfig.php, o sea:

Código PHP:
<?
  
include('loglogin.php');
  
  
$login = new login(array(
    
'database' => 'mibasedatos',
    
'table'    => 'mitabla',
    
'mail' => 'root',
    
'password' => 'root'
  
));
?>
Aquí debería ir la clase entera pero no la voy a volver a pegar para no aburrir.

Y aquí va el forum.php q es donde debería poder sacar el $id:

Código PHP:
  include('logconfig.php');
  if (!
$login->logged())
  {
    
header("location: logindex.php");
    die();
  }

  
$ids $login->getId($mail,$password);

  while(
$res mysql_fetch_array($ids)){
    
$id $res[id];
    echo 
$id;
  } 
El tema es poder recoger el mail y password en algún lado, bien desde el formulario original o bien desde la clase, creo yo vamos...
  #16 (permalink)  
Antiguo 26/02/2010, 03:02
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
pregunto...

ya q desde forum.php se llama a la función logged() y esta devuelve true si está conectado o false si no lo está:

Código PHP:
include('logconfig.php'); 
  if (!
$login->logged()) 
  { 
    
header("location: logindex.php"); 
    die(); 
  } 

  
//$ids = $login->getId($mail,$password); 

  //while($res = mysql_fetch_array($ids)){ 
   // $id = $res[id]; 
   // echo $id; 
  

y teniendo en cuenta que si está conectado es pq ha hecho un SELECT a la tabla con el mail y la passwword... no se podría recuperar el id dentro de la función logged y pasarlo de vuelta con return?

el tema es que no se cómo...

Última edición por humanista; 26/02/2010 a las 07:01
  #17 (permalink)  
Antiguo 26/02/2010, 08:18
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
sacar variable desde la clase...

Buenas de nuevo,

yo sigo dándole vueltas al asunto.

creo q lo he conseguido simplificar al máximo. El SELECT lo voy a hacer fuera de la clase y me he dado cuenta que el password NO es necesario ya q la clase por sí misma ya lo autentifica. Como cada $mail tiene su $id único, lo único que me hace falta es conseguir el $mail.

He estado probando a hacer echo $mail justo aquí:

Código PHP:
    // Verificar si los datos de la cookie son válidos. 
    
if ($cookie['serial'] && $cookie['mail'] && $cookie['password']) 
    { 
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '{$cookie['mail']}') AND (password = '{$cookie['password']}') AND (cookie = '{$cookie['serial']}') LIMIT 1;"
    } 
    else 
    { 
      
// Verificar si los datos de session son válidos. 
      
$mail $_SESSION['cf_login_mail']; 
      
$session  session_id(); 
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '$mail') AND (session = '$session') LIMIT 1;"
    } 


    if (
$result mysql_query($query$this->link)) 
    { 
      if (
$row mysql_fetch_assoc($result)) 
      { 

                         echo 
$mail;  // justo aquí-----------------------------------------------


        
return $this->setSession($rowfalsefalse); // Log in 
      

      else 
      { 
        return 
false
      } 
    } 
    else 
    { 
      return 
false
    } 

y me aparece correctamente en la pantalla el mail que necesito para consultar la base de datos y conseguir el id.

Con lo cual todo se simpifica a conseguir sacar ese $mail desde dentro de la clase hacia afuera (hacia el código php "normal y corriente"), cómo se puede hacer esto?
  #18 (permalink)  
Antiguo 26/02/2010, 10:17
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar una variable en una clase AJAX...

con permiso de los moderadores voy a colocar mi pregunta en el foro PHP q es donde debería estar, así espero obtener respuesta más rápido. salu2

Etiquetas: ajax, clase, recuperar, variables
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 20:14.