Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Registro online (https://www.clubdelphi.com/foros/showthread.php?t=42661)

harpo 19-04-2007 13:01:57

Registro online
 
Buenas gente :)

Ando un poco perdido sobre cómo hacer un registro de software online.

A ver, me explico. Tengo una aplicación hecha en delphi que, hasta ahora, es distribuida con una clave de activación para pasar de la versión demo a la versión completamente funcional. Esta aplicación está constantemente siendo actualizada y distribuida a través de la web gratuitamente y sin prácticamente control alguno. Pues bien, a partir de ahora me piden que cobre por dichas actualizaciones y que, por tanto, proteja el modo de distribución de la misma y lleve un registro de dicha distribución.

La idea que tengo para proteger el software y mantener a su vez una base de datos con todos los clientes es la siguiente.

- En primer lugar, cambiar la clave de activación que se distribuye junto al software por un Número de Usuario (UID).

- Generar un Código de Registro a partir del UID y el número de serie del hardware que distribuyo con el programa.

- Y ahora viene el tema, rellenar un formulario bien desde la aplicación delphi (preferentemente) o bien desde una web (para aquellos que no tengan conexión inmediata), con el código de registro para recibir automáticamente el Código de Activación.

Bueno, aunque no me explico muy bien, la idea es hacer un registro online de los clientes.
Lo que no sé cómo hacer es la parte del envío del formulario y la recepción del código de Activación. No tengo idea de las posibilidades q tengo para hacerlo.

Tengo una base de datos MySQL en el servidor que es donde debo almacenar los datos de los clientes y un formulario php para hacerlo. Cómo puedo enviar los datos a esa base de datos desde delphi?? Y recibir el código de activación??

He estado leyendo por encima en el foro sobre el componente TWebBrowser. Con este componente, podría acceder directamente al formulario php desde delphi??

Bueno, cualquier ayuda es bienvenida. Muchas gracias ;)

dec 19-04-2007 13:18:09

Hola,

Puedes usar un "TWebBrowser" o también puedes utilizar un componente como "TIdHttp", con el fin de hacer una llamada "HTTP GET" o acaso "HTTP POST" al Servidor desde Delphi, precisamente al Script PHP que te interesa. Mira estos trucos:

- HTTP GET Y HTTP POST utilizando WinInet

- Realizar un "Post HTTP" con la clase "TIdHttp" de Indy

harpo 19-04-2007 13:22:39

Ok :) Muchas gracias. Probaré y ya te cuento.

harpo 20-04-2007 18:32:01

Buenas :)

He probado con el segundo método y no en principio funcionó, pero misteriosamente ha dejado de hacerlo y no consigo ponerlo de nuevo en marcha.

Tengo este codigo php
Código PHP:

<?PHP

if (isset($_POST['send']))
{
     
$dbhost="localhost";
   
$dbusuario="root";
     
$dbpassword="h0o";
   
$db="ultra";
   
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
   
mysql_select_db($db$conexion);
   
$result=mysql_query('INSERT INTO `customers` (`UID`, `SERIALNUM`, `KEY`) VALUES (\'c\', \'c\', \''.$_POST['Key'].'\');',$conexion);
     
mysql_close($conexion);
    
            
 echo 
"Done";    
}


?>

Que funciona desde el navegador. Y este codigo delphi
Código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  idHttp: TIdHTTP;
  datosPost:TIdMultiPartFormDataStream;
  params:TStrings;
begin
  datosPost := TIdMultiPartFormDataStream.Create;
  params:=TStringList.Create;
  try
    datosPost.AddFormField('Key',Edit3.Text);
    params.Add('Key='+Edit3.Text);
   
    idHttp := TIdHTTP.Create(Self);
    try
      Memo1.Text:=idHttp.post('http://localhost/registro/sendform.php',params);

    finally
      idHttp.Free;
    end;
  finally
    datosPost.Free;
  end;
end;

En Memo1.Text no sale nada :( y en la base de datos menos.

harpo 25-04-2007 18:53:47

El silencio me da miedo ... :confused:


La franja horaria es GMT +2. Ahora son las 21:40:20.

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