Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2019
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Gracias otra vez



Efectivamente trabajo en c++ builder pero tengo indy9 y los componentes que mencionas deben de estar contenidos en Indy 10.



voy a intentarlo utilizando HINTERNET (gracias por el hipervinculo)



Entiendo que al usar el comando echo en el script php, este enviara el valor obtenido como respuesta (estoy pez en php).





Muchisimas Gracias por tu tiempo
Responder Con Cita
  #2  
Antiguo 03-05-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por NEG1414 Ver Mensaje
Entiendo que al usar el comando echo en el script php, este enviara el valor obtenido como respuesta (estoy pez en php).
Eso es. Lo que el "script" PHP "muestre" o "escriba" será la respuesta de la petición HTTP a dicho "script". Como se comentó arriba, si observamos el siguiente "script":

Código PHP:
<?php

echo 'Mi respuesta';
exit;
La respuesta será "Mi respuesta", y, acto seguido el "script" termina su ejecución.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 05-05-2019
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Buenas..


Sigo dandole vueltas a poder recibir una respuesta desde un php a mi aplicacion cb6...


El codigo PHP funciona correctamnete


Código PHP:
<?php
                        
                        
                        $Nombre 
$_GET['Nombre'];

                        
                        
//Se Abre archivo Texto Lista Usuarios
                        
$Lista fopen('ListUsuarios.txt','r');
                    
                        
//Comprobamos si Nombre ya figura en la Lista
                        
$Esta false;
                        while (
$linea fgets($Lista))
                        {
                          if (
$linea===$Nombre )
                            {
                                
$Esta true;
                                
//break;
                            
}            
                        }
                        
                        
fclose($Lista);
                        
                         
//Si no esta en la lista lo incorporamos
                        
if(!$Esta
                        {
                            
$Lista fopen('ListUsuarios.txt','a');    
                            
fwrite($Lista,$NombrePHP_EOL);
                            
fclose($fp);
                        }

                        echo 
$Esta;    

     
?>
</div>

En principio devolveria como respuesta el booleano Esta.


El codigo en c++ para llamar al scrip y en teoria recibir la respuesta seria..


Código:
  AnsiString NomUsers ="xxxx";

  BYTE  Buffer;
  DWORD BytesRead;

  const ::HINTERNET sesion = InternetOpen("agent",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,0);
  if(sesion!=NULL)
  {

     AnsiString Url = "http://xxxxxx.es//GPrUsers//Registrado.php?Nombre="+NomUsers;//?Nombre="+NomUsers;
     const ::HINTERNET handle = ::InternetOpenUrl(sesion,Url.c_str(),NULL,0, INTERNET_FLAG_RELOAD, 0);
     if(handle!=NULL)
     {
        InternetReadFile(handle,&Buffer,sizeof(Byte),&BytesRead);
        //Si Existe
        if(Buffer!=0)
        {
          //EXISTE
        }
        else
        {
          //NO EXISTE
        }
     }
    InternetCloseHandle(handle);
  }
  else
  {

  }
   InternetCloseHandle(sesion);
La llamada la hace correctamente, el problema lo tengo en la respuesta.. mi planteamineto es que el booleano Esta (respuesta) ocupa 8 bits (un byte) y si fuera positivo su valor seria 00000001 y si fuera negativo 00000000, valor que se asignaria a Buffer....
Ya que obviamente estoy equivocado alguien me puede orientar...


Gracias

Última edición por NEG1414 fecha: 05-05-2019 a las 13:16:43.
Responder Con Cita
  #4  
Antiguo 05-05-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Ojo con los tipos... si pruebas "echo true;" verás que lo que obtienes es un "1". Y es un "1", es decir, una cadena, no un entero. Por otro lado, si pruebas un "echo false;", verás que no obtienes nada... ni siquiera "0"... Quizás debas tener en cuenta todo esto...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 05-05-2019
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Gracias por contestar


Entiendo con tu respuesta que el codigo "Post" y "Get" con hinternet es correcto, donde tengo el problema es a la hora de "valorar" la respuesta obtenida en Buffer ...
Responder Con Cita
  #6  
Antiguo 05-05-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por NEG1414 Ver Mensaje
Gracias por contestar


Entiendo con tu respuesta que el codigo "Post" y "Get" con hinternet es correcto, donde tengo el problema es a la hora de "valorar" la respuesta obtenida en Buffer ...
No... yo sólo me refería a la respuesta... y es porque "if(Buffer!=0)" no me cuadra... puesto que si "$Esta" es "false" no será "0" como acaso esperas... tal vez sería bien una respuesta como "true" y "false", ojo, no valores "booleanos", sino cadenas "true" y "false", y así tendrás que comprobar en tu programa: comparando cadenas, esperando "true" o "false".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 05-05-2019
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Gracias por contestar,..
He modificado el codigo php de la siguiente manera
Código PHP:
<?php
  $Nombre 
$_GET['Nombre'];
  
//Se Abre archivo Texto Lista Usuarios
  
$Lista fopen('ListUsuarios.txt','r');
  
//Comprobamos si Nombre ya figura en la Lista
  
$Esta 'N'//MODIFICADO
  
while ($linea fgets($Lista))
  {
    if (
$linea===$Nombre)
    {
      
$Esta ='S'//MODIFICADO
      //break;
    
}            
  }
  
fclose($Lista);
  
//Si no esta en la lista lo incorporamos
  
if($Esta=='N'//MODIFICADO
  
{
    
$Lista fopen('ListUsuarios.txt','a');    
    
fwrite($Lista,$Nombre.PHP_EOL);
    
fclose($fp);
  }
  echo 
$Esta;    
?>
y la llamada:

Código:
  char  Buffer;  //MODIFICADO
  DWORD BytesRead=0;

  const ::HINTERNET sesion = InternetOpen("agent",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,0);
  if(sesion!=NULL)
  {

     AnsiString Url = "http://XXXXX.es//GPrUsers//Registro.php?Nombre="+NomUsers;
     const ::HINTERNET handle = ::InternetOpenUrl(sesion,Url.c_str(),NULL,0, INTERNET_FLAG_RELOAD, 0);
     if(handle!=NULL)
     {
        InternetReadFile(handle,&Buffer,sizeof(Byte),&BytesRead);
        //Si  Existe
        if(Buffer=='S')//MODIFICADO
        {
      
        }
        else
        {
        
        }
     }
    InternetCloseHandle(handle);
   }
Y buffer sigue teniendo valor NULL '/n'
,¿Que estoy haciendo mal?

Gracias

Última edición por Casimiro Notevi fecha: 06-05-2019 a las 01:48:03. Razón: Poner etiquetas php
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
Recibir respuesta del php usando TIEHTTP. bibliotec Internet 4 20-03-2007 11:18:38
Recibir mail borrando la copia del servidor fedelphi Internet 14 06-02-2007 05:05:59
Velocidad de respuesta de servidor nfrfabian Conexión con bases de datos 6 10-01-2007 00:51:46
Respuesta danytorres Varios 2 16-07-2003 20:55:43


La franja horaria es GMT +2. Ahora son las 08:56:23.


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