Comunidad de diseño web y desarrollo en internet online

setCredentials y Classes AS

Citar            
MensajeEscrito el 11 Ene 2006 05:15 pm
hola, tengo una duda con el script en: http://www.asfusion.com/blog/entry/autentificacion-de-usuarios-con-flashremoting , con respecto a :

Código :

var sSecured:Service = new Service ("gateway.php", null,"SecuredConn",null,null);
sSecured.connection.setCredentials ("daniel", "asfusion");
A lo mejor no he leído atentamente, pero ¿cómo puedo dar acceso a diferentes bases de datos y a varias tablas? por supuesto en un aplicación multiusuario.

Otra cosa que me preocupa, antes de utilizar remoting; seguí varios tutoriales de cristalab para utilizar base de datos con DataSet y dataGrid ;cuando le pasé mis demos swf a un amigo , claro sin utilizar remoting; éste supo hasta la ubicación de de mis archivos php. Sería bueno que aprenda a utilizar clases, para generar este tipo de acciones tales como modificar, eliminar e insertar registros..? alguien tiene un ejemplo de "clase" para ésto.?

gracias....

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 Ene 2006 12:23 am
hola!
es sencillo...simplemente a la hora de hacer tu validacion con tu metodo _authentificate saca de la base de datos un registro que te diga que tablas o bases de datos pertenencen a el usuario que esta "firmando"...esa informacion de la db o las tablas la puedes guardar en una variable de sesion, y asi ya la tienes disponible en lugar de requerir a cada rato el usuario y password.

Para lo que pudes de modificar....eliminar...etc...
ve esto :

http://www.asfusion.com/blog/entry/uso-de-herencia-en-amfphp-en-conexiones


Aqui hay un ejemplo de como seleccionar tablas con un metodo. Basicamente tienes que generar tu consulta ;)

Saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 16 Ene 2006 05:46 pm
HOla tangamanpilia...
gracias por tu orientación;tengo dos scripts para "logearse" que por favor quisiera que lo chequearras si no es molestia..
esta es la clase:

Código :

<?PHP
include_once ("Config.php");
class Laboratorio extends Config {
    function Laboratorio () {
         parent::__construct($this->dbname);//Esta linea llama al constructor de la clase.
         $this->methodTable = array (
                     "Autentificar" => array (
                         "description" => "Autentificacion de usuarios", 
                        "access" => "remote", 
                        "arguments" => array ('userid','usernick','userpass')
                  ),
                "Permitir" => array (
                        "description" => "Verificar si el usuario tiene permisos",
                        "access" => "remote",
                        "arguments" => array("iduser","username","permiso")
                     ),
             );
    }    
    //Implementacion de los Metodos 
    /*-----------------------------------*/    
    function Autentificar ($userid,$usernick,$userpass) {
        $query = "SELECT userid from usuarios WHERE usernick='$usernick' AND userpass='$userpass' ";
        $this->log($query);//Uso el método heredado log para hacer debugeos
        return mysql_query($query, $this->conn);
      $result= mysql_query($query,$this->conn);
      echo "columna=".mysql_num_rows($result);
    }   
   function Permitir ($userid,$username,$permiso) {
        $query = "SELECT 'userid','username'from permisos WHERE permiso='$permiso'";
        $this->log($query);//Uso el método heredado log para hacer debugeos
        return mysql_query($query, $this->conn);
      $result= mysql_query($query,$this->conn);
      echo "columna=".mysql_num_rows($result);
    }  
}
?>

y éste el AS:

Código :

stop();
import mx.remoting.NetServices;
import mx.remoting.Connection;
mx.remoting.debug.NetDebug.initialize();                                 
NetServices.setDefaultGatewayUrl("http://localhost/remoto/gateway.php"); 
conexion = NetServices.createGatewayConnection();
Respuesta = new Object();
servicio = conexion.getService("Laboratorio",Respuesta);


function Login(){
Respuesta.onStatus = function (data){
   trace("error:" +data.description);
}
Respuesta.Autentificar_Result=function (data){
   if (success){servicio.Autentificar(nicktxt.text,passtxt.text);            
      if (this.columnas==1){//Pero aquí no estoy seguro si mantendré el "userid" para abrir "sesion" y hacer consultas desde...
LoadMovie("consulta1.swf",1)}
      else{estado.text="usuario o contraseña inválida"}
   }
   else {
         estado.text="No hay conexion con el servidor";
         nicktxt.enabled=false;
         passtxt.enabled=false;
         loginbtn.enabled=false;
      }
   }
}
   
function Verificarvacios(){
   if (nicktxt.text==""){estado.text="Ingrese nombre de ususario";Selection.setFocus(nicktxt);return false;}
   else if (passtxt.text==""){estado.text="Ingrese contraseña";Selection.setFocus(passtxt);return false;}
   else{Login()}
}
login_btn.clickHandler = function() {
   checkForm();
};
var formListener:Object = new Object();
formListener.enter = function(evt) {
   Verificarvacios();
};
nicktxt.addEventListener("enter", formListener);
passtxt.addEventListener("enter", formListener);

No me salen errorres en el script, pero sé que es un error de "orden y procedimiento"...
por dónde empezar?...

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 16 Ene 2006 08:21 pm
uy...mira

ve esto..
http://www.asfusion.com/blog/entry/autentificacion-de-usuarios-con-flashremoting


ya que lo leas, veras como usas setCredentials en flashremoting...

ahora, en tu metodo _authenticate haces algo asi (despues de haber leido el tuto) :

Código :

function _authenticate ($usernick, $userpass) {
       $query = "SELECT userid from usuarios WHERE usernick='$usernick' AND userpass='$userpass' "; 
        $result = mysql_query($query, $this->conn);
        if (mysql_fetch_assoc($result)) {
           return "admin";
       }
        else {
           return "false";
        }
} 


esa es basicamente la idea....
dejame ver si en estos dias publico un tuto donde mezclemos setCredentials con base de datos....pero creeme que no es muy dificil. El problema de como quieres hacerlo es que estas generando un sistema de autentificacion que te va a costar mas trabajo implementarlo en tu aplicacion...mejor usa el que trae nativamente amfphp.

saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 16 Ene 2006 09:06 pm
ah...ok., voy a seguir tus consejos. , poco a poco....;de seguro tendré más preguntas....
muchas gracias nuevamente.

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 12:33 am
ya revisé lo que me referiste, ya probé los scripts con un formulario de entrada;todo ok.
pero esto de "setear" tanto el user como el pass en la "clase", como está en el ejemplo, sólo me sirve para validar un usuario.

ahora quiero validar a varios usuarios..., me imagino que es con la consulta a la tabla usuarios como también me referiste, pero antes de poner esto en la clase...

Código :

function _authenticate ($usernick, $userpass) { 
       $query = "SELECT userid from usuarios WHERE usernick='$usernick' AND userpass='$userpass' "; 
        $result = mysql_query($query, $this->conn); 
        if (mysql_fetch_assoc($result)) { 
           return "admin"; 
       } 
        else { 
           return "false"; 
        } 
} 
Creo que debería poner algo que me indique de "que base de datos" hago la consulta...

Código :

.....$result = mysql_query($query, $this->conn); .....

.supongo que es con mi "Config.php"
he intentado esto pero no me liga...

Código :

<?
include_once ("Config.php");
class SecuredConnextends Config{
   function SecuredConn2(){
   parent::__construct($this->dbname);//Esta linea llama al constructor de la clase.  
      $this->methodTable = array( 
         "welcome" => array( 
         "description" => "validate function", 
         "access" => "remote", 
         "roles" => "admin"          
         ),          
         "_authenticate" => array( 
         "description" => "autentificación", 
         "access" => "private", 
         "arguments" => array ("usernick","userpass") 
         ) 
      ); 
 }
function _authenticate ($usernick, $userpass) { 
       $query = "SELECT userid from usuarios WHERE usernick='$usernick' AND userpass='$userpass' "; 
        $result = mysql_query($query, $this->conn); 
        if (mysql_fetch_assoc($result)) { 
           return "admin"; 
       } 
        else { 
           return "false"; 
        } 
} 

function welcome() { 
      return "bienvenido!!!!" ;     
   }
} 
?>


gracias nuevamente...

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 01:17 am
hola nuevamente, ji, ji... :oops: , era una "letrita" en mi fla, que borré sin querer.

bueno ya me ligó!!!!!

gracias , muchas gracias, I'm happy.!!
pero ahora tengo otra duda.
1.en mi fla, la primera escena es para logearse. (misión cumplida)
2.en la segunda escena tengo un "menubar",y cada item es una pelicula diferente que contiene tablas diferentes...; mi pregunta es cómo puedo recuperar en este caso la validación y los datos del usuario para que se pasee por todo el menubar.

He hecho pruebas de mandar variables de pelicula a pelicula con Localconnection , pero esun tanto engorroso..., existe alguna manera de que al momento de "validar" pueda recuperar los datos del usuario y que estos sean también ´validos para acceder a mis otras swf.s?

está bien acá o abro otro foro?

como siempre... gracias...

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 03:43 am
umm...no se si entendi exactamente....te refieres con otros servicios....no se para que es el LocalConection? no cargas las peliculas con loadMovie?

saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 17 Ene 2006 04:56 am
Claro, desde el menubar cargo las películas con LoadMovie, a lo que me refiero es a mantener siempre el ID del usuario ...
Quiero hacer lo siguiente, al momento de validar al usuario, recuperar datos del usuario (Id,user, pass) ,
con el Id tengo acceso a la tabla "ordenes"
con (idorden) acceso a la tabla "items"
y con (iditem) acceso a la tabla "subitem"
cada tabla tiene su swf correspondiente, vale decir(ordenes.swf,items.swf,subitem.swf) y puedo abrir cada swf desde un menubar.
lo que hago hasta ahora con Localconnection, es lo siguiente:
Envío el valor de Id de usuario de"login.swf". a ordenes.swf así:

Código :

loginbtn.onPress=function(){entrarcnx=new LocalConnection();      
   entrarcnx.send("conectado","logeado",Iduser);}

y lo recepciono en ordenes.swf así:

Código :

usuariocnx=new LocalConnection();
usuariocnx.logeado=function(Iduser){iduservar=Iduser;}
usuariocnx.connect("conectado");
Con Iduservar ya puedo hacer la consulta a la tabla ordenes;y así sucesivamente...

Mi pregunta es si setCredentials, me permite al momento de validar el login recuperar los datos del usuario y luego que sean válidos también en cada archivo.swf que se haya accedido desde el menubar...

Si sólo se puede hacer ésto creando un servico para cada tabla, no me parece mala idea..., pero ¿ cómo "vinculo" la validación?, ..¿es un include también para cada servicio o clase "ordenes", "items", y subitems"..?

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 06:41 am

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Ene 2006 02:51 pm
hola Tangamampilia; seguimos con la telellorona.
Sheer,obsesionado con validar su contraseña, Juce, un pequeño que quiere lograr hacer una sesión, y Tangamampilia un profesor preocupado por que sus alumnos interpreten bien un inicio de sesion con Set Credentials..en....."Remoting".no te lo pierdas...próxima entrega..., no se impacienten...

Por juce2005

100 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.