Retroceder   Foros del Web > Programación para sitios web > Perl y CGI

Respuesta
 
Herramientas Desplegado
Antiguo 02-oct-2006, 04:22   #1 (permalink)
Molxa ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 63
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.
Molxa está desconectado   Responder Citando
Antiguo 02-oct-2006, 06:55   #2 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.658
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
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...
monoswim está desconectado   Responder Citando
Antiguo 02-oct-2006, 07:06   #3 (permalink)
Molxa ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Gracias!

Gracias hombre, voy a probarlo ahora mismo..si veo que no se hacerlo te doy un toque...saludos!!!!!!
Molxa está desconectado   Responder Citando
Antiguo 02-oct-2006, 11:55   #4 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.658
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
No dudes en preguntar culquier cosa que necesites...

Saludos
monoswim está desconectado   Responder Citando
Antiguo 05-jul-2008, 11:36   #5 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
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.
alextronic está desconectado   Responder Citando
Antiguo 06-jul-2008, 14:53   #6 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.658
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
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
monoswim está desconectado   Responder Citando
Antiguo 06-jul-2008, 16:29   #7 (permalink)
Colaborador
jferrero está en el buen camino
 
Fecha de Ingreso: mayo-2006
Mensajes: 347
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.
jferrero está desconectado   Responder Citando
Antiguo 07-jul-2008, 03:42   #8 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
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!!!
alextronic está desconectado   Responder Citando
Antiguo 07-jul-2008, 03:47   #9 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
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-jul-2008 a las 07:39.
alextronic está desconectado   Responder Citando
Antiguo 07-jul-2008, 08:27   #10 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
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...
alextronic está desconectado   Responder Citando
Antiguo 07-jul-2008, 08:47   #11 (permalink)
Colaborador
jferrero está en el buen camino
 
Fecha de Ingreso: mayo-2006
Mensajes: 347
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.
jferrero está desconectado   Responder Citando
Antiguo 07-jul-2008, 10:24   #12 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
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-jul-2008 a las 11:14.
alextronic está desconectado   Responder Citando
Antiguo 09-jul-2008, 03:56   #13 (permalink)
alextronic ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Respuesta: Compilar cgi

OK gracias a todos de todas formas!!! Seguiré peleándome.
Salu2
alextronic está desconectado   Responder Citando
Antiguo 21-jul-2008, 17:51   #14 (permalink)
Albertuxmty ha deshabilitado el karma
 
Avatar de Albertuxmty
 
Fecha de Ingreso: octubre-2007
Mensajes: 33
Respuesta: Compilar cgi

gcc file.c (te genera un a,out ) el cual es un binario de gnu/linux
Albertuxmty está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:22.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93