Il mio script non funziona: qual e' il problema?

Prima di tutto devi sapere che il tuo server ha inviato un messaggio di errore allo stantard error (di solito lo schermo), ma se non riesci a vedere questi messaggi, devi controllare il log del server.

FAQ

  • D. Perche' il server risponde: '404 not found'?
  • R. Puo' essere che l' URL specificato non sia corretto
  • D. Perche' il server risponde: '403 access forbidden'?
  • R. Il permesso di esecuzione del file non e' stato concesso. Devi cambiare i permessi di accesso del file. Infatti uno script CGI e' un file eseguibile, percio' il tuo script deve essere eseguibile. Sui sistemi Unix devi usare il comando 'chmod' per cambiare i permessi di accesso al file. Il tuo server puo' girare come 'nobody' (nessuno) o usando il tuo UID (User IDentifier). nel primo caso puoi impostare: 'chmod +x yourscript.cgi'. Nel secondo caso puoi impostare:
    'chmod u +x yourscript.cgi'
  • D. Perche' il server risponde: 'malformed header from script'?
  • R. Hai inserito l' intestazione 'Content-type'? Questa riga e' necessaria
  • D. Perche' il server risponde: '500 server error'?
  • R. Beh, ci sono molte ragioni per ricevere questo messaggio, perche' questo e' un messaggio di errore generico, percio' puo' essere che:
    • I permessi di esecuzione non sono stati impostati correttamente (vedi la domanda precedente)
    • riga interpretata erroneamente: hai dimenticato questa prima riga indispensabile: #!/usr/bin/perl. Comunque il tuo path potrebbe essere diverso, percio' devi sapere dove si trova l' interprete PERL
    • Errore di sintassi nello script: controlla lo standard error oppure il log del server
    • Non trovato il file richiesto: hai richiesto una libreria tramite 'require' o 'use', ma la libreria non puo essere trovata
    • Errore nello script in esecuzione: lo script ha causato un errore in esecuzione (per esempio un file non trovato una divisione per zero e cosi' via)
    • Intestazione HTTP invalida: la prima riga di output inviata dallo script deve sempre essere una intestazione HTTP valida, di solito: Content-type: text/html
  • D. Perche' il browser dice: 'Document contains no data'?
  • R. Significa: lo script ha inviato una valida intestazione, ma non ha inviato ulteriori informazioni. Cause possibili:
    • Errore nello script
    • Server timeout
    • nessun output inviato dal tuo script
  • D. Perche' il browser visualizza il testo dello script invece di eseguirlo?
  • R. Puo' darsi che tu abbia installato lo script nel posto sbagliato oppure il nome che gli hai dato non e' corretto. Forse non hai installato lo script all' interno della directory cgi-bin, o forse il nome dello script non contiene il suffisso 'cgi'. In questo caso infatti lo script sara' ritornato come un normale file di testo
  • D. Perche' il browser mi chiede di salvare lo script quando tendo di eseguirlo?
  • R. Puo' darsi che lo script abbia inviato una errata intestazione 'Content-type'. Infatti in questo caso il tuo browser non sara' capace di riconoscere il formato corretto (tipo 'sconosciuto') e ti chiedera' se vuoi salvarlo

<<<indietro Home CGI avanti >>>

Copyright © 1998-99 M. Silvestri