Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sytem200 en 12 Septiembre 2019, 05:40 am



Título: c++ y php
Publicado por: sytem200 en 12 Septiembre 2019, 05:40 am
alguna info   de como comunicar php y c++ ya que etado buscando informacion  y no hay mucha
me gustaria hacer algo basico


Título: Re: c++ y php
Publicado por: engel lex en 12 Septiembre 2019, 05:51 am
depende de lo que quieras hacer... puedes ejecutar el proceso y obtener el output, puedes usar comunicacion via udp o tcp, etc...


Título: Re: c++ y php
Publicado por: sytem200 en 14 Septiembre 2019, 09:26 am
una conexion http y me gustaria que el cliente  envie datos a mi servidor en mysql  phpmyadmin   y php  espero me deje entender


Título: Re: c++ y php
Publicado por: engel lex en 14 Septiembre 2019, 10:20 am
no, no se entiende, estás explicando una linea de trabajo php normal, donde el cliente accede al php y por medio de el accede a mysql (aqui en general phpmyadmin no pinta mucho)


Título: Re: c++ y php
Publicado por: sytem200 en 17 Septiembre 2019, 20:19 pm
primero quiero una conexion http  y el cliente estee en c++ y el servidor en php y usar una base de datos mysql


Título: Re: c++ y php
Publicado por: engel lex en 17 Septiembre 2019, 20:52 pm
primero quiero una conexion http  y el cliente estee en c++ y el servidor en php y usar una base de datos mysql

en general lo que necesitas es que C++ te lea web (cURL te puede ayudar) lo que tu quieres hacer usualmente se hace con una tecnica llamada REST, que se puede aplicar de maneras diferentes... una manera simple por ejemplo es

quieres obtener un dato y tu paigna se llama xxxxxx.com
1- en c++ llamas a xxxxxx.com/?accion=obtenerdatos

2- en php lees el get, si accion es obtener datos, lees la tabla de mysql, el resultado le das el formato que sea mas facil leer

3- en C++ lees el resultado de la llamada y procesas el resultado


Título: Re: c++ y php
Publicado por: @XSStringManolo en 18 Septiembre 2019, 03:40 am
Se me ocurren varias maneras de conectar C++ con PHP.
Al decir comunicación C++ cliente y PHP servidor, entiendo que lo que quieres hacer es mandar una petición desde un equipo en C++ a un servidor alojado en otro equipo?

Las peticiones HTTP van en texto plano. Puedes escribir las peticiones a mano en el código de C++ u obtenerlas del usuario del programa desde la consola/interfaz gráfica.
Después te conectas al servidor introduciendo su dirección y el puerto externo que es redirigo al Servidor Web. Comunmente es el puerto 80.

No mencionas la plataforma en la que vas a correr el servidor asique me limitaré a expandir otras opciones. Tienes libs como winsockets2, resolv.h, arpa/inet.h, sys/socket.h, SDL_net, etc. Cualquiera te sirve para este cometido. Si es para algo sencillo como enviar peticiones te recomiendo SDL_net porque es multiplataforma.

Hay otras 2 opciones que personalmente me gustan mucho. Son utilizar Lua con Luasockets y javascript con XMLHttpRequest.

Todo esto que te comento desde C++.
Lo que haces es escribir el script.lua (en C++) con la petición al servidor. Guardas el archivo. Y ejecutas el interprete de Lua con una llamada al sistema pasando como parámetro el nombre del archivo. Toda la complejidad técnica se reduce a escribir un archivo de texto y en vez de llamarlo documento.txt llamarlo documento.lua

Para javascript más de lo mismo. Creas un documento Html con tu javascript dentro lo guardas como documento.html o documento.htm y lo abres en el navegador por defecto con un system("start documento.html");
Esto de da la ventaja de que no necesitas settear todos los ajustes que un servidor web pueda requerir de un navegador para mostrar la página, aunque podrías incluirlo todo en la petición a mano.

Otra opción es si corres tanto el cliente como el servidor en la máquina. Como te comentan solo necesitas pasarle el resultado del programa C++ al PHP. En muchos casos puedes comunicarlos con un documento de texto entre medias.

También puedes hacer cosas más raritas como utilizar el mismo código fuente para el C++ y el PHP. En el htaccess setteas para leer los .cpp como si fuesen .php trás finalizar de utilizar un archivo en PHP comentas el PHP y descomentas el C++.

El truquito de Lua está muy bien para hacer de cicle entre muchos lenguajes muy distintos entre sí y tener una herramienta para correr tus códigos multiplataforma. Hice una lib&interprete en C++ para estas cosas. Muy cómodo y sencillo.

También tienes el navegador Lynx escrito en C++ que puedes embeber muy fácilmente en tus aplicaciones C++ o combinarlo directamente ya que es opensource y muy ligero. O úsalo como referencia para escribir tu código si te pierdes.

En QT también tienes un navegador chulo en los ejemplos que podrías utilizar como ejemplo.

También puedes usar node.js con el módulo http. Ya sea del lado del cliente o del servidor.

Depende de exactamente lo que quieras hacer. Tampoco explicaste el motivo de comunicar C++ y PHP.
Es porque te es más fácil programar en C++? Por librerías únicas? Programación a más bajo nivel? Reducir carga del servidor?