Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Collegamento ai siti web con Perl

    Salve,
    ho iniziato da poco con il Perl e sto provando con un semplice script prelevato da internet e, ovviamente, non mi funziona (ho sempre utizzato il php senza particolari difficoltà).
    In prtica ho creato tre files:
    prova.htm (semplice form per inviare le variabilki al PERL):

    <HTML>
    <HEAD>
    <TITLE>Menu di Link</TITLE>
    </HEAD>
    <BODY bgcolor="#c0c0c0">
    <CENTER>
    <FORM METHOD="POST" ACTION="cgi-bin/menu.cgi" >
    <SELECT NAME="link">
    <OPTION SELECTED>Link 1
    <OPTION>Link 2
    <OPTION>Link 3
    <OPTION>Link 4
    <OPTION>Link 5
    </SELECT>
    <INPUT TYPE="submit" NAME="" VALUE="OK">
    </FORM>
    </CENTER>
    </BODY>
    </HTML>


    menu.cgi (copiato nella cartella cgi-bin con autor. 755)

    #!/usr/bin/perl

    require "cgi-lib.pl";
    $menudb = "./link.db";
    &ReadParse(*CGI);
    &CercaLink($menudb, $CGI{link});
    sub CercaLink {
    local ($db, $cgi) = @_;
    open (DB, "<$db");
    while (<DB>) {
    @campo = split(/;/, $_);
    if ($campo[0] =~ /$cgi/i) {
    close(DB);
    last;
    }
    }
    print "Location: $campo[1]\n\n";
    exit;
    }

    link.db (file di testo contenente due campi separati da ; autoriz. 644)


    Se lancio un programma in Perl che deve visualizzare una semplice frase a video, il server remoto risponde mentre se lancio il programma listato sopra risponde con un Internal Error.
    Potete indicarmi dove sbaglio?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quando il Perl funziona come interfaccia lato server di un CGI, il print scrive sul browser.
    Ma il browser ha bisogno di una pagina Web per visualizzarla.
    Una pagina Web inizia sempre con un <DOCTYPE ...>, seguito da un <html>, ecc, fino al </html>. In mancanza di questi elementi il browser puo` interpretare male.
    [per la verita` in passato il DOCTYPE non esisteva, e veniva pero` sostituito con un altro codice, la cui sintassi adesso mi sfugge (era del tipo content-type=text/html) ]

    Ti consiglio di partire da un programma funzionante.
    Prova a vedere come e` fatto il programma FormMail, che trovi in molti posti, compreso il sito di shishii (il moderatore di questo forum).

    --
    Altro problema possibile: il server non e` settato per permettere il funzionamento dei CGI.
    Il PHP quando installato e` gia` completamente funzionante, compresa l'interfaccia; per far funzionare il protocollo CGI il webserver deve essere opportunamente configurato.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.