Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 0
guitarrahugo Va por buen camino
Unhappy Parametros entre Delphi y PHP

Hola amigos, soy principiante en la programación y estoy tratando hacer un programa en delphi que le pase 3 parámetros a una función en php (usuario, contraseña, sentencia SQL) y este devuelva un resultado sin que nunca se habrá la pagina web donde está alojada mi función php.
Esto sería algo así: yo le paso un nombre de usuario, una contraseña y una sentencia SQL como por ejemplo: CREATE TABLE Personas(Nombre varchar(15),Apellido varchar(15),Edad int), y la función me devuelva ‘ok’ si pudo crear la tabla o ‘Error ’si hubo algún problema. Les ruego si me pueden orientar con un ejemplo básico como para ver como pasar estos 3 parámetros desde delphi y ver también de que manera debería recibirlos la función php.
Espero haber sido claro, y desde ya les agradezco su ayuda. Saludos. Hugo
Responder Con Cita
  #2  
Antiguo 28-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

Recuerda poner etiquetas al código, ejemplo:


Si ya has leído la guía de estilo, verás que es conveniente que además de poner un título bien descriptivo a lo que preguntas, también es útil hacerlo en el foro adecuado, lo has puesto en "Noticias", y evidentemente esto no es una noticia, la paso a varios.
Responder Con Cita
  #3  
Antiguo 29-01-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 0
guitarrahugo Va por buen camino
Red face

Hola. Siento mucho haber colocado mal mi consulta, y no haber cumplido con las normas del foro, como veras es mi primera participación en él. La próxima vez pondré más atención a las normas establecidas para las publicaciones. Espero sepan disculparme. Muchas gracias.
Responder Con Cita
  #4  
Antiguo 29-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No te preocupes, estas cosas pasan al principio

A ver si alguien conoce sobre lo que preguntas y te echa una mano.
Saludos.
Responder Con Cita
  #5  
Antiguo 30-01-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 0
guitarrahugo Va por buen camino
Amigos, eh intentado empezar por algo más sencillo, para ver que funcione, y luego si desarrollar el programa completo que explico arriba. Estuve viendo algunos ejemplo de lo que hay en el foro y trate de armar un formulario delphi que mande a llamar una función en php y esta le devuelva un string con los mensajes ‘Datos Correctos’ o en su defecto ‘Datos incorrectos’. Este es el código de delphi

Código Delphi [-]
function URLEncode(Str: string): string;
var
  i: integer;
begin
  Result:= '';
  for i:= 1 to Length(Str) do
    if Str[i] in ['A'..'Z','a'..'z','0'..'9','-','_','.'] then
      Result:= Result + Str[ i ]
    else
      Result:= Result + '%' + IntToHex(Ord(Str[ i ]),2);
end;
function SendRequest(Server, Uri: string; Port: Word; Params: TStringList;
  Response: TStream): Boolean;
var
  hNet: HINTERNET;
  hCon: HINTERNET;
  hReq: HINTERNET;
  Context: DWORD;
  Buffer: array[0..10240] of Char;
  BytesRead: DWORD;
  i: integer;
  Str: String;
  Success: Boolean;
begin
  Context:= 0;
  Result := FALSE;
  hNet := InternetOpen('Agente', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if (hNet <> nil) then
  begin
    hCon:= InternetConnect(hNet,PChar(Server),Port,nil,nil,
      INTERNET_SERVICE_HTTP,0,Context);
    if (hCon <> nil) then
    begin
      if Params <> nil then
        hReq:= HttpOpenRequest(hCon,'POST',PChar(Uri),nil,nil,nil,
          INTERNET_FLAG_RELOAD,Context)
      else
        hReq:= HttpOpenRequest(hCon,'GET',PChar(Uri),nil,nil,nil,
          INTERNET_FLAG_RELOAD,Context);
      if (hReq <> nil) then
      begin
        if Params <> nil then
        begin
          Str:= Emptystr;
          for i:= 0 to Params.Count - 1 do
            Str:= Str + '&' + URLEncode(Params.Names[i]) + '=' +
              URLEncode(Params.ValueFromIndex[i]);
          Delete(Str,1,1);
          Success:= HttpSendRequest(hReq,
           'Content-Type: application/x-www-form-urlencoded',Cardinal(-1),
            PChar(Str),Length(Str));
        end else
          Success:= HttpSendRequest(hReq,nil,0,nil,0);
        if Success and (Response <> nil) then
        try
          while (InternetReadFile(hReq,@Buffer,sizeof(Buffer),BytesRead)) do
          begin
            if (BytesRead = 0) then
            begin
              Result := TRUE;
              break;
            end;
            Response.Write(Buffer,BytesRead);
          end;
        except end;
        InternetCloseHandle(hReq);
      end;
      InternetCloseHandle(hCon);
    end;
    InternetCloseHandle(hNet);
  end;
end;


procedure TForm2.Button1Click(Sender: TObject);
var Campos: TStringlist;Respuesta: TStringStream;
  ReturnValue : THandle;
begin
    Respuesta:= TStringStream.Create('');
    Campos:= TStringList.Create;
    Campos.Values['User']:= txtUsuario.Text;
    SendRequest('MiWeb','/PruebaServidor.php',80,campos, Respuesta);


    if Pos('Datos Correctos',Respuesta.DataString) > 0 then ShowMessage(Respuesta.DataString + 'Ok')
    else ShowMessage(Respuesta.DataString + ' Error');

    Campos.Free;
    Respuesta.Free;
end;



Ahora bien, esta primera parte estaría funcionando bien, ya que se conecta con la pagina y me devuelve un string, pero siempre me devuelve ‘Datos incorrectos’, por lo que presumo no le está llegando bien el parámetro pasado. Mi código PHP es este.
Código PHP:
<?php

   $Usuario 
$_POST['User'];  
   
$Usuario stripslashes($Usuario);
    echo  
$Usuario;
    if (
$Usuario == 'Hugo'){
    
       echo 
"   Datos Correctos"
       Exit();     
     }
     else {
        echo  
"   Datos Incorrectos"
        Exit(); 
     }

 
?>
Espero que alguien me pueda orientar. Desde ya agradezco su tiempo y paciencia. Saludos. Hugo
Responder Con Cita
  #6  
Antiguo 30-01-2012
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
Desconozco porqe te regresa ese error, pero te puedo pasar este link, que es para lo mismo

http://superuser.com/questions/14932...mand-line-tool

Se hace mediante la línea de comandos mediante el programa CURL, el resultado te lo puede guardar en un archivo de texto, delphi esta limitado en este aspecto-
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
Parametros y comunicación entre aplicaciones. NPIdea API de Windows 4 15-04-2010 20:30:30
Pasar parametros entre aplicaciones Iceman OOP 2 14-06-2005 16:29:25
Parametros entre Delphi i c++ Builder jsb Varios 7 20-02-2004 18:25:05
Paso de parametros entre delphi y c++ jsb C++ Builder 0 16-02-2004 16:22:49
parametros entre dll's xgerard Varios 12 22-11-2003 00:55:18


La franja horaria es GMT +2. Ahora son las 01:32:30.


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