Visualizzazione dei risultati da 1 a 8 su 8

Discussione: ASTA!

  1. #1

    ASTA!

    Ciao ragazzi premetto che non ne so molto di script cgi-perl etc..
    pero' conosco molto bene php e me la cavicchio in c e c#..
    vorrei creare un'asta (automatizzata ovviamente) su aruba... poiche' con php non riesco ad eseguire nulla nella cartella cgi-bin ho cominciato ad informarmi, sono arrivato alla conclusione spero sbagliata che perl non potra' aiutarmi in quanto molto simile a php, e che posso scrivere applicativi in qualsiasi linguaggio, compilarli, metterli nella cartella cgi-bin ed eseguirli, ma qui sorgono i dubbi.. come li eseguo? l'eseguibile che io andro' a creare si trova nel mio server remoto; i miei visitatori possono accede solo tramite pagine pagine web... e se php non ha eseguito nessun'altro programma fin ora, non vedo perche' dovrebbe farlo con uno scritto da me...

    quindi posso creare un'applicativo cgi che ogni minuto faccia qualcosa senza che qualcuno vada a cliccare qualcosa sul mio sito ?

    il problema alla fine consiste in creare uno script che:
    A) non cicli di continuo usando molto il processore dell'host senno aruba mi banna
    B) una volta ogni minuto faccia dei controlli sul mio database ed esegua uno script in php o mandi delle e-mail
    C) sia indipendente dagli accessi degli utenti.
    (senno' lo facevo in php)

    spero di esser stato chiaro

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non conosco Aruba e la sua policy, per cui la mia risposta prescinde da cosa e` permesso o tecnicamente fattibile su tale/i server.

    Per far fare una cosa "ogni minuto" (o altro intervallo), non puoi usare gli strumenti caratteristici del Web, ma devi usare strumenti propri del sistema operativo. Per server linux, esiste il "cron" (vedi manuale suo e di "crontab"), per windows non lo so.

    Su un server e` comunque sempre possibile andare a verificare cosa contiene un file (che puo` essere un file di database, anche eventualmente usato da PHP o CGI), e questo a prescindere dallo strumento del Webserver (nel tuo caso PHP o CGI), ed eseguire delle operazioni (incluso l'invio di una e-mail, se il server ha gli strumenti per farlo - penso a sendmail o equivalente)

    Per riassumere: ci sono due strumenti (programmi), indipendenti l'uno dall'altro:
    - uno collegato al Web, in cui gli utenti vanno a scrivere in un database (PHP o CGI);
    - l'altro temporizzato che va a leggere il database ed esegue determinate operazioni nel caso siano successi determinati eventi.
    Essendo i due processi indipendenti (sono collegati logicamente solo dal database, cui accedono in maniera indipendente), i linguaggi dei due possono essere diversi: l'unico vincolo e` che ambedue possano accedere al database.

    Anche i server su cui girano possono essere diversi, purche` abbiano accesso all'unico database.

    Non so se sono riuscito a spiegarmi ed a chiarire (almeno un po').
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Si chiarissimo difatti l'unico nodo comune all'inserimento che non rappresenta un problema e che viene fatto con script PHP su database MySql, e il controllo dell'evento e quindi notifiche agli utenti (che sto cercando di fare) è propio il database MySql.

    Ora:
    Su aruba dispongo di una directory CGI-BIN con permessi di esecuzione il tutto hostato su server windows con IIS e PHP installato come modulo di IIS...
    Quindi io potrei scriver un programma in c o cpp che si interfaccia al database e con librerie cgi per ricevere parametri e reindirizzare l'output al browser...
    MA:
    il tempo su windows come potrei gestirlo ? un loop che di continuo controlla il tempo passato mi sembra poco ortodosso, impegnerebbe moltissime risorse (credo) e la politica di aruba è che se qualcosa nei loro host impegna troppo la macchina la cancellano...
    io ero partito con l'intenzione di utilizzare operazioni pianificate visto che sono hostato in windows, ma ho incontrato difficoltà ad utilizzare il comando system(); il quale fa partire un'eseguibile sulla macchina in cui è installato php e ritorna l'output...
    poichè questo metodo non funziona.. eccomi qui a cercare di imparare qualcosa sui cgi...

  5. #5
    Anche i server su cui girano possono essere diversi, purche` abbiano accesso all'unico database.
    beh si pero' non propormi di tener il mio pc di casa sempre acceso a far controlli sul database del sito, è una scocciatura a cui non son disposto...
    se volevi sapere se il database sta nella stessa macchina dell'host mi pare propio di no, non mi son mai interessato ma mi pare di no, dopo controllo se è di qualche interesse...
    ma dubito visto che è MySql.
    Cmq il dubbio è:
    se io faccio un programma che poi rimane in esecuzione in background nella macchina che mi hosta, come lo faccio partire?

    per esempio digito su explorer: http://www.booktrading.it/cgi-bin/XX.exe
    e l'applicazione parte sull'host ?
    e se la mia applicazione non ritorna nulla al browser?
    e se chiudo il browser?
    l'host se ne accorge e chiude anche l'applicazione ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Hai toccato il problema, ma dal lato sbagliato.

    Quello che hai scritto none` l'indirizzo del tuo programma, ma l'inidrizzo con cui il tuo programma e` visto dal webserver.

    Ma per una cosa ripetitiva non puoi agire dal webserver, ma devi agire direttamente dal sistema operativo.

    Ripeto: non so come si fa con aruba, ne` se te lo permettono.
    Il programma ripetitivo deve girare sulla macchina che contiene il database, non ha senso farlo girare sulla macchina che contiene il webserver (adoprerebbe notevolmente le risorse della rete dove sono i due computer). Ma le due macchine possono anche essere la stessa, nel qual caso questa considerazione non vale.


    Per quanto riguarda il programma da usare, anche windows ha qualcosa tipo il cron, ma non avendo mai usato tali comandi sotto windows, non so dirti ne` come si chiama ne` come si usa (ma prova a fare una ricerca in questo forum, mi pare che molto tempo fa qualcuno lo ha detto - altrimenti prova a cercare nel sito di MSDN).

    Nota che non e` un programma che gira in background. E` un programma normale che viene avviato in automatico da un comando particolare ogni tot minuti.
    Se hai un linux a disposizione, vedi cosa fanno cron e/o crontab: dovresti capire subito.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    scusate i'intromissione
    ma cercando di seguire il discorso non
    protrebbe venire in aiuto il modulo

    require LWP::RobotUA;

    praticamente non lo mai provato ma dovrebe andare in uso
    ciclicamente :rollo:
    1+1=10

  8. #8
    si avevo capito come deve funzionare il programma forse non sono stato chiaro cmq, il problema per me resta il primo avvio del programma...
    al massimo uso c# per scriverlo ed uso le librerie microsoft con le loro classi che hanno anche il timer... e credo che sull'editor microsoft sia tutto molto semplice da realizzare...
    per quello che mi permette di fare l'host, ripeto che ho permessi di esecuzione solo su una directory, ma niente shell remota...

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.