• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

formularios,php y extjs

Foros generales de ayuda Ext 1.0.

Ext.foro.Nuevo
Mensajes: 20
Registrado: 05 Nov 2007, 05:23
NotaPublicado: 24 Ene 2008, 07:20
Hola!!
estoy haciendo un formulario sencillo para que los usuarios que esten registrados en mi pagina puedan logearse.Tengo el codigo hecho en php.Y lo que no se es como poder meterlo en mi codigo javascript.O es mejor que utilice otro lenguaje??
Muchas gracias
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!

Avatar de Usuario
Ext.foro.Nuevo
Mensajes: 44
Registrado: 09 Ene 2008, 06:32
Ubicación: Necochea, Bs. As., Argentina
NotaPublicado: 24 Ene 2008, 07:30
Hola, el lenguaje del lado del servidor depende de muchas cosas, preferencias, servidor propio o no, conocimiento del lenguaje, etc.
Si ya tienes el código en PHP no veo razón para cambiar.
Lo que que hay que hacer es adaptar ese código para que trabaje con Ext.
Hay ejemplos en el sitio oficial sobre como trabajar con formularios, enviando y recibiendo datos.
Lo que siempre es bueno es especificar con que versión de Ext estás trabajando.
Si tienes alguna pregunta en particular o no entiendes algo sobre los ejemplos te ayudo sin problemas.
Saludos.

Ext.foro.Nuevo
Mensajes: 20
Registrado: 05 Nov 2007, 05:23
NotaPublicado: 24 Ene 2008, 08:18
Muchas gracias por tu contestacion!!
Estoy trabajando con la version 2.0.Mi formulario es muy simple tiene dos campos de texto y dos botones.Uno para enviar la informacion(submit) y otro para que resetea los dos campos de texto anteriormente mencionados.Asi es mi codigo:
Código: Seleccionar todo
buttons: [{//Contiene tambien dos botones

                  text: 'Akzeptieren'

         //Habra que comprobar en la base de datos

         //los datos
scriptlogin

             },{

                  text: 'Anulieren'

         //Resetea los campos de texto

              }],//se cierran los botones

Como hago que al pinchar en el boton de aceptar(estoy haciendo la pagina en aleman)mande el contenido de los campos de texto a mi script de login que se llama "scriptdelogin.php"
Con un simple form:"scripdelogin.php",???

Muchas gracias
Avatar de Usuario
Ext.foro.Nuevo
Mensajes: 44
Registrado: 09 Ene 2008, 06:32
Ubicación: Necochea, Bs. As., Argentina
NotaPublicado: 24 Ene 2008, 14:37
Siempre es bueno mirar los ejemplos que colocan en la web oficial, mucho no he avanzado con Ext 2.0 pero calculo que mucho no debe variar.
En la dirección siguiente tienes un ejemplo de como enviar datos desde un formulario:

http://extjs.com/deploy/dev/examples/form/xml-form.js

Por ejemplo

Código: Seleccionar todo
...
formulario.addButton({

        text:  'Acceder',
        handler:  function() {
            formulario.getForm().submit({url:'scripdelogin.php', waitMsg:'Enviando datos...'});
        }
});
...

ó

Código: Seleccionar todo
...
buttons: [{
   text: 'Acceder',
        handler:  function() {
            this.getForm.submit({url:'scripdelogin.php', waitMsg:'Enviando datos...'});
        }

},
...

Saludos.

Ext.foro.Miembro
Mensajes: 244
Registrado: 15 Dic 2007, 22:03
Ubicación: Madrid-Spain
NotaPublicado: 24 Ene 2008, 15:45
Hola perdida:

Mira, te pongo a continuación el código del html, js y php que comprueba y recepciona el login, de un sistema de login que acabo de completar.
Está totalmente funcional y comprobado, y sólo me falta que aún no he logrado conseguir a pesar de la ayuda que me han prestado en el foro, el encriptar la contraseña para enviarla ya encriptada, cosa que ahora la envio como fichero y la encripto en el php que recepciona.

Como explicación inicial, los ficheros son:
Index.php, login.js y login.php. Además te pongo los dos accesorios denominado cuentas.php y conexion.php y con ello, te creas la base de datos y te debe de funcionar completamente.
Si tuvieras algun problema, vuelve a poner otro mensaje y te pongo a tu disposición todo en formato zip o rar a tu elección.
El index.php es el html de inicio, que carga el formulario y lo gestiona.
El login.js es el fichero javascript realizado con la EXTJS y que realmente es quien gestiona todo el formulario y sus acciones.
El login.php es el script que llama el formulario desde el login.js y que comprueba en la base de datos la existencia y bondad del login, y gestiona posteriormente la información, creando variables de sesiones para comprobar posteriormente y de forma permanente el login en todas las opciones de la aplicación.
Simplemente añadirte que si el login es correcto, despues carga la página llamada main.php en la opción success del submit del form.
El login.php además, carga mediante include dos scripts, uno que configura y ejecuta la conexión a la base de datos, y uno denominado cuentas.php donde realmente realizo las funciones de comprobación de acceso.


index.php
Código: Seleccionar todo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">

<HTML>
<HEAD>
<TITLE>Torres Sacristan Abogados -Login</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" src="javascript/md5.js"></script>

<script type="text/javascript" src="extjs/source/locale/ext-lang-sp.js"></script> 


<LINK  type=text/css rel=stylesheet href="includes/css/login.css">
<SCRIPT type=text/javascript src="javascripts/login.js"></SCRIPT>

<BODY>
<DIV id=loginDialogId></DIV>
</BODY>
</HTML>




login.js
Código: Seleccionar todo
Ext.SSL_SECURE_URL="extjs/resources/images/default/s.gif";
Ext.BLANK_IMAGE_URL="extjs/resources/images/default/s.gif";

Login = function(){
   var dialog,
      form,
      submitUrl = 'login/login.php';
   
   return{
      Init:function(){
         Ext.QuickTips.init();
         Ext.form.Field.prototype.msgTarget = 'side';
         
         var logoPanel = new Ext.Panel({
            baseCls: 'x-plain',
            id: 'login-logo',
              region: 'center'
         });
         
         var formPanel = new Ext.form.FormPanel({
              baseCls: 'x-plain',
              baseParams: {
                 module: 'login'
              },
              defaults: {
                 width: 170
              },
              defaultType: 'textfield',
              frame: false,
              autoHeight : true,
              id: 'login-form',
              items: [{
                 xtype : 'fieldset',
               title : new Date().format('l d F Y - H:i'),
               autoHeight : true,
               autoWidth : true,     
               html : '<img src="../images/logo-small.png"/> '
            }, {
               xtype : 'fieldset',
               title : 'Introduzca sus datos',
               defaultType : 'textfield',
               autoHeight : true,
               autoWidth : true,
               items : [ {
                     fieldLabel: 'Usuario',
                     name: 'user',
                     allowBlank : false,
                     minLength : 5,
                     maxLength : 8,
                     blankText : 'Usuario es obligatorio'
                    },{
                     fieldLabel: 'Contraseña',
                     inputType: 'password',
                     name: 'pass',
                     allowBlank : false,
                     minLength : 5,
                     maxLength : 8,
                     blankText : 'Contraseña es obligatoria'
               }]
              }],
              labelWidth:200,             
              region: 'south',
              url: submitUrl,
              method : 'post'
          });

         var resultado = {
            success: function(form,action){
               window.location = 'main.php';
            },
            failure: function(form,action){
               Ext.MessageBox.alert('Torres Sacristan Abogados - Login Error:','Usuario y/o password incorrectos. Reintente de nuevo.');
               // {"success":false,"errors":[{"id":"fieldname","msg":"el valor ya existe, ingrese otro valor por favor"}]}
            }
         };
      
         dialog = new Ext.Window({
              buttons: [{
                 handler: function(){
                    if (form.isValid()){

                       form.submit({
                           waitTitle: "Comprobando acceso",
                           waitMsg : "Espere un momento por favor, autenticando usuario ......",
                        reset:true,
                           success: resultado.success,
                           failure: resultado.failure
                       });
                    } else {
                       Ext.MessageBox.alert('Torres Sacristan Abogados - Error:', '¡Atención: La información ingresada no es válida o está incompleta!');
                    }
                 },
                 scope: Login,
                  text: 'Login'
              }],
              buttonAlign: 'right',
              closable: false,
              draggable: false,
              height: 375,
              id: 'login-win',
              layout: 'border',
              plain: false,
              resizable: false,
              focus : function() {
               Ext.get('user').focus();
            },
              items: [
                 logoPanel,
                 formPanel
              ],
            title: 'Login',
            iconCls : 'icon-unlock',
              width: 500
          });
         
         form = formPanel.getForm();
         
          dialog.show();
      }
   };
}();

Ext.BasicForm.prototype.afterAction=function(action, success){
   this.activeAction = null;
   var o = action.options;
   if(o.waitMsg){
      Ext.MessageBox.updateProgress(1);
      Ext.MessageBox.hide();
   }
   if(success){
      if(o.reset){
         this.reset();
      }
      Ext.callback(o.success, o.scope, [this, action]);
      this.fireEvent('actioncompleted', this, action);
   }else{
      Ext.callback(o.failure, o.scope, [this, action]);
      this.fireEvent('actionfailed', this, action);
   }
}

Ext.onReady(Login.Init, Login, true);



login.php
Código: Seleccionar todo
<?php session_start();

header('Content-Type: text/html; charset=ISO-8859-1');


include ("../includes/class/conexion.php");
include ("../includes/class/cuentas.php");

if(isset($_POST['user']) && isset($_POST['pass'])) {
if(login($_POST['user'], md5($_POST['pass'])) == "ok"){
       print '{success:true}';
      return 1;
   }else {
       print '{failure:true}';
      return 0;
   }
} else {
   print '{failure:true}';
   return 0;
}

?>




conexion.php
Código: Seleccionar todo
<?php

/* Conexion.php */
if ($_SERVER['SERVER_NAME'] == 'localhost')
{
//en localhost, sólo para probar y depurar la aplicación en local
   $GLOBALS["DB_HOST"] = "localhost";
   $GLOBALS["DB_NAME"] = "nombre de la base de datos";
   $GLOBALS["DB_USER"] = "usuario";
   $GLOBALS["DB_PWD"] = "contraseña";
}

else
{
// en la web, para ejecutar la aplicación en la web
   $GLOBALS["DB_HOST"] = "localhost";
   $GLOBALS["DB_NAME"] = "nombre de la base de datos";
   $GLOBALS["DB_USER"] = "usuario";
   $GLOBALS["DB_PWD"] = "contraseña";
}

//Conexión a la bbdd establecida en globalVars.php
mysql_connect($GLOBALS["DB_HOST"], $GLOBALS["DB_USER"],$GLOBALS["DB_PWD"]) or die("Conexión al servidor no disponible:". $GLOBALS["DB_HOST"]);
mysql_select_db($GLOBALS["DB_NAME"]) or die("Conexión a la base de datos no disponible:". $GLOBALS["DB_NAME"]);
?>



cuentas.php
Código: Seleccionar todo
<?php session_start();

$GLOBALS["SESSION_END"]= 60*15; // tiempo máximo para expirar la sesión sin actividad

// para verificar tiempo de la sesión y/o actualizarlo en cualquier acceso
if (array_key_exists("tiempo", $_SESSION)) {
   if (time() - $_SESSION["tiempo"] > $GLOBALS["SESSION_END"]) {
         //fin session;
         logOut();
         session_start();
   } else  {
         $_SESSION["tiempo"] = time();
   }
} else {
   $_SESSION["tiempo"] = time();
}


// funciones para comprobación logeos y demás

function login($user,$pass){

    $sql = "SELECT nombre, apellidos, usuario, password FROM ts_usuarios WHERE usuario = '$user' AND password = '$pass' LIMIT 1";
    $result = mysql_query($sql);
    while($data = mysql_fetch_array($result)){
        $_SESSION['nombre']            = $data['nombre'] + ' ' + $data['apellidos'];
        $_SESSION['usuario']           = $data['usuario'];
         
        $sq2 = "UPDATE ts_usuarios SET last_login = NOW() WHERE usuario = '$user' AND password = '$pass'";
        mysql_query($sq2);
        return "ok";
    }
    return "error";
}


   function logOut() {
        session_destroy();
   }


   function isLoggedIn() {
      if (array_key_exists("pilot_num", $_SESSION) && $_SESSION["pilot_num"] != null)
         return true;
      return false;
   }

   function verifyLogin() {
      if (!isLoggedIn()) {
         header("Location: " . $GLOBALS["INCLUDES_ROOT"] . "/login.php?goTo=" . rawurlencode($_SERVER["REQUEST_URI"]));
         exit(0);
      }
   }


   function inGroup($grupo) {
      if (!$_SESSION["grupo"]) {
         return false;
        }else if ($_SESSION["grupo"]==$grupo){
            return $_SESSION["grupo"];
         } else {return false;}
   }
   
   function ffUserInGroup($userId, $group) {
      if (getSimpleValue(
         "SELECT users.user_id "
         . "FROM users,groups,group_members "
         . "WHERE users.user_id='" . $userId . "' "
            . "AND group_members.user_id=users.user_id "
            . "AND groups.group_id=group_members.group_id "
            . "AND groups.name='" . $group . "'")) {
         return true;
      }
      return false;
   }

   function verifyMembership($group) {
      if (!inGroup($group)) {
         if (isLoggedIn()) {
            header("Location: " . $GLOBALS["URL_ROOT"] . "/accessDenied.php");
            exit(0);
         } else {
            verifyLogin();
         }
      }
   }

?>



Cualquier duda me lo comunicas y en lo que pueda te ayudo, pues esto está probado y funcionando perfectamente. Como te he dicho, sólo me falta implementar en este ejemplo concreto el encriptar la contraseña que se envia como texto plano.

Saludos y suerte
Carlos Torres
Madrid-Spain
http://www.tsabogados.com Mi primer proyecto EXTjs

Ext.foro.Nuevo
Mensajes: 5
Registrado: 25 Ago 2008, 18:06
NotaPublicado: 22 Sep 2008, 16:59
hola que tal...tengo un problema con el login de usuario....tengo conexión a la base de datos, pero al momento de ingresar usuario y contraseña pasa directamente al archivo main.php, siendo que los usuarios y password no estan en la base de datos. nose si en el siguiente código puede estar el problema.




header('Content-Type: text/html; charset=ISO-8859-1');


include ("../includes/class/conexion.php");
include ("../includes/class/cuentas.php");

if(isset($_POST['user']) && isset($_POST['pass'])) {
if(login($_POST['user'], md5($_POST['pass'])) == "ok"){
print '{success:true}';
return 1;
}else {
print '{failure:true}';
return 0;
}
} else {
print '{failure:true}';
return 0;
}

?>


ojala me puedan ayudar... saludos

Ext.foro.Nuevo
Mensajes: 1
Registrado: 18 Jun 2010, 17:11
NotaPublicado: 22 Jun 2010, 14:48
Hola ec-cts , he probado tu sistema pero no me funciona !! llevo 2 semanas tratando de hacer el login, uso php como back end,
Te agradeceria me mandases un ejemplo en zip para ver donde esta mi error , soy novato en PHP y Ext pero tengo muchas de aprenderlo

Gracias

Volver a Ext 1.0: Ayuda





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!