Foros del Web » Programación para mayores de 30 ;) » Programación General »

Compilar cgi

Estas en el tema de Compilar cgi en el foro de Programación General en Foros del Web. Buenos días: estoy montandome la pasarela de pago de banesto en un servidor linux, que es donde esta alojada mi web. No tengo ni idea ...
  #1 (permalink)  
Antiguo 02/10/2006, 04:22
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 20 años, 1 mes
Puntos: 1
Compilar cgi

Buenos días: estoy montandome la pasarela de pago de banesto en un servidor linux, que es donde esta alojada mi web. No tengo ni idea de cgi, lo mio son otros lenguajes y tengo que compilar este archivo con estas instrucciones:

" Compilar el cgi-bin vuelta. Para ello habrá que editar previamente el fichero fuente
vuelta.c, y modificar la línea 4 indicando en el define PATH_RESULTADO el directorio
donde se encuentra el fichero comercio.log.AAMMDD, que será el directorio en donde se
ejecute el demonio TPV_Virtual . Comprobar además que el cgi-bin vuelta tiene permiso
de lectura para dicho fichero y acceso a todos los subdirectorios del path donde se
encuentra dicho fichero. De no hacer esta modificación y estas comprobaciones se
producirá un error V0 al ejecutarse el cgi-bin vuelta. Para compilarlo escribir: make -f
makevuelta."

Archivo vuelta.c
Código:
#include <stdio.h>
#include <string.h>

#define PATH_RESULTADO "../demonio"


char *path_resultado = PATH_RESULTADO;


main()
{
	int valor;
	char texto[1000];
	char *comercio;
	char *referencia;
	char *fecha;
	char *resultado;
	char *codigo;
	char *importe;
	char *moneda;
	char *error;
	char *resto;


	/********************************************************/
	/* Invocamos a la funcion leer_resultado() para obtener */
	/* el resultado de la transaccion. Devuelve 1 si no se  */
	/* produjo ningun error, y -1 en caso contrario.        */
	/********************************************************/
 	valor = leer_resultado(&comercio, &referencia, &fecha, &resultado, &codigo, &importe, &moneda, &error, &resto);


	/****************************************************************/
	/* Una vez leido del fichero comercio.log.AAMMDD el resultado   */
	/* de la transaccion, se muestra una pagina con dicho resultado */ 	
	/*                                                              */
	/* El codigo que aparece a continuacion puede ser sustituido    */
	/* por otro para mostrar las paginas con el resultado segun el  */
	/* disenyo deseado. Tener en cuenta que:                        */
	/*                                                              */
	/*  - resultado puede valer 'OK' o 'KO' segun la transaccion    */
	/*    haya sido o no autorizada.                                */
	/*                                                              */
	/*  - si resultado vale 'OK', codigo contendra el codigo de     */
	/*    autorizacion que el centro autorizador asigno a la tran-  */
	/*    saccion.                                                  */
	/*                                                              */
	/*  - importe contiene el importe por el que se autorizo la     */	
	/*    transaccion.                                              */
	/*                                                              */
	/*  - si se produjo algun error en la ejecucion del cgi-bin     */	
	/*    vuelta, contiene el codigo de error en caso contrario     */
	/*    su contenido es indeterminado.                            */
	/*                                                              */	
	/*  - Si al invocar al cgi-bin 'totalizacion' se paso el para-  */
	/*    metro 'resto', el cgi-bin 'vuelta' sera invocado desde    */
	/*    el servidor del banco pasandole un parametro 'resto' con  */
	/*    el mismo valor con el que se invoco al cgi-bin 'totaliza- */
	/*    cion'. El valor de este parametro es devuelto por la fun- */
	/*    cion 'leer_resultado' en la variable 'resto'. Si no se    */
	/*    especifico el parametro 'resto' al invocar a 'totaliza-   */
	/*    cion', la variable 'resto' valdra NULL tras la invocacion */
	/*    a la funcion 'leer_resultado'                             */
	/*                                                              */
	/****************************************************************/

	if (valor != 1 )
	{
		sprintf(texto, "Se ha producido un error. Codigo de error: %s", error);
		Sacar_mensaje(texto);
	}
	else
	{
	        if (!strcmp(resultado, "KO"))
                	sprintf(texto,"Transaccion no autorizada.<br> Razon:%s", codigo);
        	else
        	{
                        sprintf(texto,"Transaccion autorizada");
			strcat(texto, "<br>Codigo de autorizacion: ");
			strcat(texto, codigo);
		}

		strcat(texto, "<br>Comercio: ");
		strcat(texto, comercio);
		strcat(texto, "<br>Referencia: ");
		strcat(texto, referencia);
		strcat(texto, "<br>Importe de la transaccion: ");
		strcat(texto, importe);
		strcat(texto, "<br>Moneda: ");
		strcat(texto, moneda);

              	Sacar_mensaje(texto);

	}


	/*****************************************************************************/
	/* Incluir aqui el codigo necesario para actualizar bases de datos locales,  */
	/* borrar ficheros temporales, o cualquier accion que se considere necesaria */
	/* tras conocer la denegacion o autorizacion de la transaccion en curso      */ 
	/*****************************************************************************/


	exit(0);
}
No tngo ni idea de como se compila esto, dicen las instrucciones "Para compilarlo escribir: make -f makevuelta..." pero ni idea de donde se escribe eso ni porqué...
Gracias por adelantado.
  #2 (permalink)  
Antiguo 02/10/2006, 06:55
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
En la línea de comandos del linux...

el make es un programa muy usado en linux, te mando un tutorial

make

Espero que te sirva

Saludos
PD: Lo de los permisos de lectura se refiere a los permisos chmod...
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 02/10/2006, 07:06
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 20 años, 1 mes
Puntos: 1
Gracias!

Gracias hombre, voy a probarlo ahora mismo..si veo que no se hacerlo te doy un toque...saludos!!!!!!
  #4 (permalink)  
Antiguo 02/10/2006, 11:55
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
No dudes en preguntar culquier cosa que necesites...

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 05/07/2008, 11:36
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

hola MonoSwim,
Me pasa lo mismo que a Molxa. He visitado el enlace que recomiendas pero no sé dónde se introducen esos comandos. Mi servidor es SITEGROUND; he buscado en el panel de control y no veo nada que se le parezca. ¿Qué debería buscar? ¿es posible que es servidor haya deshabilitado esa posiblidad? ¿necesito algún software-interface para hacerlo?...
Como ves no sé gran cosa de esto.
  #6 (permalink)  
Antiguo 06/07/2008, 14:53
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Compilar cgi

Los comandos se colocan en una terminal, que es como el CMD de windows (o el MSDOS)...

Todos los linux lo tienen, pero rara vez una empresa de hosting da acceso a consola...Pregunta si te lo dan...Casi siempre lo hacen a través de un programa windows que se llama PUTTY...es para conectar a linux por SSH

Saludos
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 06/07/2008, 16:29
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Respuesta: Compilar cgi

La compilación la tienes que hacer en TU máquina, o en cualquier otra máquina que tenga una arquitectura hardware igual a la del servidor donde lo vas a colocar. El proceso de compilación crea el ejecutable. Tu solo necesitas subir el ejecutable y colocarlo en la carpeta de cgi del servidor.

Para compilar el software, lo más seguro es que ese fuente venga acompañado de un fichero de texto donde diga qué librerías externas necesitas y cómo se ha de hacer la compilación.
  #8 (permalink)  
Antiguo 07/07/2008, 03:42
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

Gracias monoswim, la verdad es que trabajo en Mac, no sé si ese Putty lo tendré disponible. Buscaré algo similar. ¿Alguien sabe de alguno?

...y gracias por tu explicación, jferrero. La verdad que no sabía que podía compilar el software en mi máquina, esto me permite explorar nuevos caminos pues ya había dado por imposible lo de compilar en remoto. GRACIAS!!!
  #9 (permalink)  
Antiguo 07/07/2008, 03:47
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

El PuTTY no me sirve para lo que quiero hacer.
Estoy descargando el compilador TCC - Tiny C Compiler (para compilar en local como dice jferrero y después subir el ejecutable...), ¿voy por el buen camino? ¿será difícil de usar?...

¡¡¡GRACIAS!!!

Última edición por alextronic; 07/07/2008 a las 07:39
  #10 (permalink)  
Antiguo 07/07/2008, 08:27
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

Tampoco he sabido usar el TCC, abro ventana cmd para usarlo y no parece entender el comando "make -f makevuelta", ni tampoco muchas otras opciones. Ufff...
  #11 (permalink)  
Antiguo 07/07/2008, 08:47
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Respuesta: Compilar cgi

Los Windows no suelen tener 'make'... de hecho, los Windows no suelen traer nada para desarrollo.

Busca el nmake de Micro$oft.
  #12 (permalink)  
Antiguo 07/07/2008, 10:24
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

OK ya estoy con el NMAKE en marcha... parece que cada vez estoy más cerca.

He introducido el comando nmake /f makevuelta y me daba el mensaje de error siguiente:

NMAKE Fatal Error U1035
syntax error : expected ':' or '=' separator
Either a colon (:) or an equal sign (=) was expected.


Según M$DN hay diversas causas para esto, y como una de ellas era que el 'makefile' podía haber sido alterado por un procesador de texto, he probado a descargarme de nuevo el 'makefile' y demás, modificándolo en el Bloc de Notas con cuidado de no meter formato. ¡Y ahora me da el siguiente error!:

NMAKE Fatal Error U1001
syntax error : illegal character '{' in macro


¡Pero no he tocado nada más que la ruta al directorio demonio! Por favor, ¿podrías decirme en cuál de los 2 casos ando más cerca?...

Muchas gracias de nuevo
Alex

Última edición por alextronic; 07/07/2008 a las 11:14
  #13 (permalink)  
Antiguo 09/07/2008, 03:56
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Compilar cgi

OK gracias a todos de todas formas!!! Seguiré peleándome.
Salu2
  #14 (permalink)  
Antiguo 21/07/2008, 17:51
Avatar de Albertuxmty  
Fecha de Ingreso: octubre-2007
Mensajes: 34
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Compilar cgi

gcc file.c (te genera un a,out ) el cual es un binario de gnu/linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:01.