Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question RADPHP. Validar usuario contraseña!!

Estimados,

Estoy en un proyecto RADPHP y necesito conectarme a la BD MySql.

Tengo dos TextBox donde digito usuario, password y con el boton acepto la entrada.

Favor si me pueden orientar con el algoritmo de validación, tengo un objeto MySqlQuery o otro MySqlDatabase.

Gracias a todos.
Responder Con Cita
  #2  
Antiguo 13-03-2012
georkis georkis is offline
Miembro
 
Registrado: abr 2008
Ubicación: Cuba
Posts: 39
Poder: 0
georkis Va por buen camino
Hola colega...

Código PHP:
A ver si entiendo... tienes un objeto, o sea, agrupas todas las consultas en una class llamada MySqlQuery??? xxx.php y así el otro que es la conexion con la base de datos... con la class MySqlDatabase de xxx.php... bueno si es así tienes que agregar una function y primeramente establecer la conexión... se puede hacer de mucha manera... una orientada a objeto y otra normal....

la normal es así y sensilla...
<?php require_once('Connections/usuario.php'); //pagina de conexion ?>
<?php
if(isset($_POST['login'])){ 
if (!isset(
$_SESSION)) { 
  
session_start(); 

 
$loginFormAction $_SERVER['PHP_SELF']; 
if (isset(
$_GET['accesscheck'])) { 
  
$_SESSION['PrevUrl'] = $_GET['accesscheck']; 

 
if (isset(
$_POST['usuario'])) { 
  
$loginUsername=$_POST['usuario']; 
  
$password=$_POST['pass']; 
  
$MM_fldUserAuthorization ""
  
$MM_redirectLoginSuccess "../sis/admin/index.php"
  
$MM_redirecttoReferrer false
  
mysql_select_db($database_usuario$usuario); 
   
  
$LoginRS__query=sprintf("SELECT usuario, pass FROM instructores WHERE usuario='%s' AND pass='%s'"
    
get_magic_quotes_gpc() ? $loginUsername addslashes($loginUsername), get_magic_quotes_gpc() ? $password addslashes($password));  
    
  
$LoginRS mysql_query($LoginRS__query$usuario) or die(mysql_error()); 
  
$loginFoundUser mysql_num_rows($LoginRS); 
  if (
$loginFoundUser) { 
     
$loginStrGroup ""
     
    
//declare two session variables and assign them 
    
$_SESSION['MM_Username'] = $loginUsername
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;           
 
    if (isset(
$_SESSION['PrevUrl']) && false) { 
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];     
    } 
    
header("Location: " $MM_redirectLoginSuccess ); 
  } 
  else { 
    
header("Location: "$MM_redirectLoginFailed ); 
  } 


?>
Responder Con Cita
  #3  
Antiguo 13-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Gracias por lo de colega, pero son mis primeros pasos en RADPHP....

Estimado,

He probado con varias rutinas php, pero el querer ejecutarlas, el ide me despliega demasiadas abvertencias por lo que decido mejor desistir y mejor el algoritmo.

Mi idea es escribir el Username, la Password y pinchar el boton "Login" y accesar a las proximas paginas de ser positiva la conexion.

Tengo tres objetos propios del ide, uno MySqlDatabase que conexta a la base y otro un M;ySqlQuery de ejecuta la consulta deacuerdo a los parametros enviados.

Encontre un ejemplo editado por Embarcadero con el cual me encuentro trabajando y adaptando para el ide:

Código PHP:
 function BasicAuthentication1Authenticate($sender$params)
        {
        if (isset(
$params['username']))
           {
           
$name=mysql_real_escape_string($params['username']);
           
$password=mysql_real_escape_string($params['password']);
           
$query="select * FROM `userdata` WHERE `user` = '".$name."'";
           
$result=mysql_query($query);
           
//if (!$result) {deleted custom code}
           
$row=mysql_fetch_array($result);
           
$customercode=$row['cuscode'];
           if ((
$name==$row['user']) && ($password==$row['pass']))
               {
               return (
true);
               }
           return (
false);
           }
        return (
false);
        } 
Pero este codigo genera demasiadas advertencias (warning) al pinchar el boton "Accesar". Voy a probar dejando el código en el evento; OnBeforeShow.

Le cuento como me va colega y machas graciias.
Responder Con Cita
  #4  
Antiguo 14-03-2012
georkis georkis is offline
Miembro
 
Registrado: abr 2008
Ubicación: Cuba
Posts: 39
Poder: 0
georkis Va por buen camino
Talking Hola colega... te falta algo...

Se puede hacer de dos forma... te explico la primera si resulta...

Código PHP:
 function BasicAuthentication1Authenticate($sender$params)
if (!isset(
$_SESSION)) { 
  
session_start(); 

        {
        if (isset(
$params['username']))
           {
           
$name=mysql_real_escape_string($params['username']);
           
$password=mysql_real_escape_string($params['password']);
           
$query="select * FROM `userdata` WHERE `user` = '".$name."'";
           
$result=mysql_query($query);
           
//if (!$result) {deleted custom code}
           
$row=mysql_fetch_array($result);
           
$customercode=$row['cuscode'];

           
/* Declaración de la variable de session */
           
$_SESSION['username'] = $loginUsername
           
           if ((
$name==$row['user']) && ($password==$row['pass']))
               {
               
header('Location: ruta_Admin.php'); //Prueba poner esto... ruta del usuario
               
return (true);
               }
           return (
false);
           }
        return (
false);
        } 
La otra forma es una página independiente que llame la function BasicAuthentication1Authenticate, y si es verdadero pasar con todo, pero para eso no hace falta hacer todo esto... o sea, lo único que tienes que hacer es: Verificar si la consulta esta llena (Pasa) sino (No pasa), se hace con la function empty()... dime si tienes ideas de lo que estoy hablando...
Responder Con Cita
  #5  
Antiguo 14-03-2012
CSIE CSIE is offline
Miembro
 
Registrado: feb 2008
Ubicación: Universo paralelo
Posts: 69
Poder: 17
CSIE Va por buen camino
Mira en la wiki de embarcadero: docwiki.embarcadero.com/RadPHP/XE/en/Database_Developer's_Guide:MySQL


Saludos
Responder Con Cita
  #6  
Antiguo 15-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Aún sigo probando colega.

Georkis,

Si se de lo que estas hablando y es mas la funcion BasicAuthentication (la probe desde los ejemplos de radphp), me valida contrata MySql y no contra la tabla de usuarios que administra el sistema.

Si fueses tan amable me podrias indicar paso a paso las instrucciones que debo seguir para resolver.

¿A que objeto y en que evento debo asociar el algoritmo propuesto (boton submim, etc.)?
¿Cuales son las variables que debo asociar al algoritmo?: $usuario= variable donde recogo el nombre de usuario de la tabla Usuario, $pass=variable donde recogo la contraseña del usuario de la tabla Usuario.

Código PHP:
function BasicAuthentication1Authenticate($sender$params)
if (!isset(
$_SESSION)) { 
  
session_start(); 

        {
        if (isset(
$params['username']))   //'username' SE MANTIENE O LA REEMPLAZO POR MIS VARIABLES 
           
{
           
$name=mysql_real_escape_string($params['username']);
           
$password=mysql_real_escape_string($params['password']);  //'password' SE MANTIENE O LA REEMPLAZO POR MIS VARIABLES
           
$query="select * FROM `userdata` WHERE `user` = '".$name."'";
           
$result=mysql_query($query);
           
//if (!$result) {deleted custom code}
           
$row=mysql_fetch_array($result);
           
$customercode=$row['cuscode'];    //'cuscode' SE MANTIENE O LA REEMPLAZO POR MIS VARIABLES

           /* Declaración de la variable de session */
           
$_SESSION['username'] = $loginUsername
           
           if ((
$name==$row['user']) && ($password==$row['pass']))
               {
               
header('Location: ruta_Admin.php'); //Prueba poner esto... ruta del usuario
               
return (true);
               }
           return (
false);
           }
        return (
false);
        } 
Muchas gracias estimado.

CSIE,

Gracias, realmente interesante la explicación paso a paso de la interfaz con MySql.

Los mantendre informados de los avances al respecto.
Responder Con Cita
  #7  
Antiguo 15-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Unhappy georkis, favor comentame

georkis,

La verdad es que sigo buscando y mas me complico.

Me podrias detallar la forma sencilla y directa que usa la function BasicAuthentication1Authenticate, y si es verdadero pasar con todo y resulve con la function empty()

Gracias de ante mano
Responder Con Cita
  #8  
Antiguo 15-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Smile Por fin "salio humo blanco"... Resuelto.

Estimados,

Este es el algoritmo resuelto, lo encontre en un foro de PHP y despues de adaptarlo, resolvio...

Código PHP:
$conexion mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('practicas',$conexion)or die ('Error al seleccionar la Base de Datos: '.mysql_error());
$usuario trim($_POST["usuario"]);
$password trim($_POST["password"]);
$result mysql_query("select * from usuarios where usuario = '$usuario' and clave = '$password'",$conexion);
if (!
$result) {
  echo 
'Error al ejecutar la consulta';
}
else {
      if (
mysql_num_rows($result) > 0) {
      echo 
"Acceso Valido";
      }
      else {
      echo 
"Password incorrecto";
      }
}
mysql_free_result($result);
mysql_close($conexion ); 
Gracias estimados amigos por vuestro soporte.
Responder Con Cita
  #9  
Antiguo 19-03-2012
georkis georkis is offline
Miembro
 
Registrado: abr 2008
Ubicación: Cuba
Posts: 39
Poder: 0
georkis Va por buen camino
Hola colega...

No te he respondido, porque tenia problema con la conexión de Internet... ya veo que resolviste lo que tu querias, ah, se resuelve de muchas maneras lo que tu querias... el ejemplo que te mostre anteriormente te hubiera resuelto... fijate que en la consulta viene los parametro usuario y contraseña...... y por clases es un poco más complicado si no tienes experiencia con php orientado a objeto, pero es más rápido ya que pide el objeto que desees y ya, mientras tanto de la otra manera tiene que leer todo el argumento del código y a veces se vuelve lenta la descarga de la páginas para aquellas personas que no tiene ancho de banda... jajaja como yo, que dispongo de 7 a 9 kbytes / s jejeje... es super lento... bueno colega...
Responder Con Cita
  #10  
Antiguo 19-03-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Cool Gracias colega

Si colega tiene razón, pero RadPhp muchos algoritmos correctos los rechazo y jamas resolvio.

Mi problema era que tenia creado dos objetos tipo datacontrol los cuales por encontrarse activos no validaban y asumian el acceso directos sin necesida de login ni contraseñas, es porque ya estaba la pagina conectada y si o si siempre dejaba pasar al nivel de sistema.

Gracias estimado por el soporte y recuerde que con 50 y 100 kbs de banda ancha, es suficiente para volar si el equipo esta impecable, se lo digo yo que trabaje con modem de 14 kbs, y eso si era lento, pero se podia volar.

Saludos y estamos en contactio.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Validar Usuario Y Contraseña No Funciona microbiano Conexión con bases de datos 13 27-08-2010 16:41:24
Validar Usuario y Contraseña desde mi aplicacion delphi, en un Dominio Win Server 200 Roll06lm API de Windows 0 07-06-2008 17:47:23
Usuario y Contraseña??? danytorres Oracle 1 24-07-2007 16:16:19
Conectar delphi 7 con Ms sql server 2000 y validar usuario y contraseña en un program jonat_rio88 MS SQL Server 0 19-06-2007 18:24:32
Usuario, contraseña, rol santiago14 Firebird e Interbase 1 11-12-2006 00:00:38


La franja horaria es GMT +2. Ahora son las 08:55:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi