Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565

    Interazione tra C e Php

    Sono un programmatore di C e C++ prevalentemente, e chiedo aiuto a voi.

    Devo creare un programma in C che fa determinate operazioni, che però devono essere compiute dal web.
    In pratica, da una pagina web mi servono 3-4 parametri da passare al programma in C, che a sua volta ritornerà un valore per confermare l'operazione.
    A corto di idee, avevo pensato a un exec in php con il programma, ma non mi sembra una buona soluzione.

    Come potrei fare?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` un argomento affrontato piu` volte in passato in questo forum. Ti consiglio pertanto di fare una ricerca nel forum (bottone in alto).

    Ti premetto che e` possibile realizzare dei CGI in C.
    Ma anche la chiamata da PHP ad un programma C non la vedo cosi` male: ci perdi solo un po' di tempo e di potenza del server, per cui devi valutare se sono variabili importanti nella tua situazione o sono trascurabili. Sicuramente il C e` piu` performante (e` compilato, non interpretato), ma se la cosa succede una volta all'ora puo` essere trascurabile; se invece prevedi varie interazioni al minuto, forse la cosa diventa fondamentale per la buona salute del server.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    La chiamata da PHP può funzionare si.
    Però volevo realizzare un CGI per 2 motivi

    1) Si impara qualcosa di nuovo
    2) Sarà un programma usato MOLTO, anche un migliaio di volte in un'ora!

    Intanto cerco sul forum!
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    E' possibile creare CGI in qualunque linguaggio capace di ricevere dati dallo standard input (metodo POST) o dalla variabile ambientale QUERY_STRING (metodo GET) e capace di emettere un output testuale, quindi sicuramente è possibile farlo anche in C++ oltre che in C.

    Mi pare che per il C esista la libreria cgilib.h o simile.

    Se le operazioni sono semplici e ripetitive è molto conveniente usare il C al posto di PHP.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Ho letto un pò in giro e ho trovato che in C per ricevere la variabile QUERY_STRING si può utilizzare la funzione getenv

    Resta però da capire come arrivano i dati nella stringa
    Il metodo GET lo conosco: è fatto secondo il formato
    codice:
    ?parametro1=ciao&parametro2=salve
    Nel metodo POST (che vorrei usare io), come arrivano i dati??
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    i parametri inviati tramite metodo POST vengono passati dal webserver al programma CGI tramite lo standard input, come se fossero stati digitati da tastiera. In Perl la funzione per raccogliere i parametri passati così è:

    codice:
    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    che fa questo:

    inserisce nella variabile stringa $buffer i dati provenienti dal filehandle STDIN (standard input) fino alla lunghezza massima di quanto passato dal client al webserver ($ENV{'CONTENT_LENGTH'}).
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Fin qui ok.
    Su internet ho letto che la stringa QUERY_STRING, nel caso in cui sia stata fatta col metodo GET, sarà di questo tipo

    codice:
    param1=Ciao&param2=Salve
    Sapendo che la struttura è cosi, ho capito come "parsarla"

    Ma se io creo la stringa tramite il metodo POST, la stringa come sarà?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    la stringa è esattamente uguale. Quello che cambia è il meccanismo di comunicazione.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Ottimo allora!!!
    Domanda!

    La differenza sostanziale tra metodo GET e POST...non è meglio usare sempre il POST che tiene i dati "nascosti"?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    per prima cosa c'è da dire che sono nascosti per modo di dire. In realtà sono leggibilissimi.

    Secondo il metodo POST è più pesante del GET.

    terzo non si può usare per passare parametri tramite l'URL.

    Quindi dipende da quello che devi fare.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.