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

    TAG <SCRIPT SRC..> in CGI-PERL

    Salve a tutti. Sono agli inizi nell'utilizzo dei CGI-PERL. Ho un server APACHE2 su Linux Debian.
    Sto cercando di scrivere una pagina CGI che generi lato client una pagina html con all'interno uno script (per esempio javascript):
    Se all'interno dei tag <SCRIPT></SCRIPT> scrivo il codice per esteso, per esempio:

    ....
    print STDOUT ("<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">\n");
    print STDOUT ("<!--\n");
    print STDOUT ("<document.write(\"Ciao a tutti!\");\n");
    print STDOUT ("//-->\n");
    print STDOUT ("</SCRIPT>\n");
    ....

    sul client ottengo "Ciao a tutti".

    Se invece creo un file esterno al cgi, javascript1.js che voglio richiamare dal cgi mediante il tag <SCRIPT SRC....> ovvero scrivo:

    print STDOUT ("<SCRIPT LANGUAGE=\"JavaScript\" SRC=\"/var/www/javascript1.js\" TYPE=\"text/javascript\">\n");

    lato client non perviene lo script sotto forma di file esterno temporaneo e pertanto la pagina client è vuota.
    Potete aiutarmi ? In ASP funzionava e utilizzavo questa tecnica per fornire dinamica alle varie pagine client utilizzando sempre lo stesso file script.
    Preciso che se richiamo il file dello script da una pagina html funziona.
    Il file cgi si trova in /usr/lib/cgi-bin mentre lo script si trova in /var/www, può essere un problema di path o di settaggio ai APACHE ?
    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Cosi` ad occhio stai sbagliando il path.

    Se in una pagina HTML scrivi (attenzione alla sintassi corretta: nella tua ci sono errori di maiuscole):
    <script type="text/javascript" src="..."> </script>
    il file JS viene caricato dal browser, quando incontra quel tag nella pagina.
    Quindi il path deve essere relativo a quanto vede il browser.
    Puo` essere:
    1. assoluto (inizia con http://)
    2. relativo (il path parte dalla pagina HTML)
    3. realtivo alla home (inizia con / - singola slash)

    Il caso 1 e` da evitare se si possono usare gli altri (il browser puo` escludere script provenienti da domini diversi dalla pagina).
    Il caso 2 e` complesso quando si usa il CGI (il path dovrebbe riferirsi alla posizione del CGI, ma il browser potrebbe non essere in grado di navigare le dir del server, dato che non puo` accedere a cio` che sta sopra la home).
    Il caso 3 e` quello consigliabile nel tuo caso. Inizia il path con una slash: il browser vede la slash come la dir della home (quella del dominio principale).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ho provato il metodo 1 ed il metodo 3 e funzionano entrambi.
    In effetti per il metodo 2 sbagliavo nel path perchè non sapevo che doveva essere riferito alla home vista dal browser del client.

    Grazie per l'aiuto.

    Saluti.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse dovresti rileggere bene la mia risposta di prima.

    Devi usare la terza opzione, ma usarla correttamente.

    Se le dir sono state definite secondo lo schema usuale, il browser non vede la dir var, e nemmeno la www al suo interno.

    Il browser vede la home del sito, quella dove (di solito) c'e` la index.html; sopra a quella non vede nulla (se il webserver e` stato configurato correttamente). Il tuo path deve partire da quella dir, e il file JS deve essere inserito li`.
    Parto dal presupposto che il fiel JS sia un file normale fisico, non generato dinamicamente dal CGI.


    PS: il problema delle maiuscole dipende dal browser e dipende dalla DTD usata: se sbagli avrai problemi in qualche browser, ma probabilmente non in quelli in cui stai testando.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Scusa, ci siamo sovrapposti nelle risposte.
    Mentre mi rispondevi per la seconda volta, stavo modificando la mia prima risposta.
    Infatti rileggendo quanto avevi scritto nella tua prima risposta mi ero reso conto di non aver bene interpretato quanto da te affermato.


    Ho provato il metodo 1 ed il metodo 3 e funzionano entrambi.
    In effetti per il metodo 3 sbagliavo nel path perchè non sapevo che doveva essere riferito alla home vista dal browser del client.

    Grazie per l'aiuto.

    Saluti.

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.