2011-08-18 21 views
5

Posso fare qualcosa di simile?Posso caricare javascript da un file php?

<script src="/js/custom-user.php" type="text/javascript"></script> 

La ragione è che voglio il file .php a morire() quando l'utente non è connesso, in modo che gli altri visitatori (non autenticata) non possono vedere ciò che il javascript assomiglia. È possibile/sicuro fare così?

+5

Sì. Avrai voglia di intestazione ('Content-Type: text/javascript'); nel tuo file php però. – Cfreak

risposta

3

Certamente, fintanto che il file php di riferimento invia l'appropriata intestazione content-type durante il download.

0

Sì, funzionerà.

Ecco come i minificatori JavaScript sono in grado di servire dinamicamente script minificati. (ad esempio http://code.google.com/p/minify/)

2

Sì, è possibile farlo ed è sicuro.

In misura user.php si dovrà impostare una corretta intestazione Content-Type:

header('Content-Type: text/javascript'); 

E poi uscita la javascript:

readfile('script.js'); 
1

Sì, ma ... Si dovrebbe meglio farlo in questo modo:

<?php 
if ($loggedIn) { echo '<script src="/js/custom-user.js" type="text/javascript"></script>'; } 
?> 

Ciò impedirebbe il caricamento del file vuoto. Tutte le funzioni devono essere inserite nel file esterno, se si desidera apportare modifiche specifiche al javascript, creare un codice in HEAD SCRIPT

8

Sì, ma ho due raccomandazioni. Innanzitutto, è meglio, nella tua circostanza, emettere il numero <script> solo se l'utente ha effettuato l'accesso. Seriamente, non vuoi che la cosa che sta trasmettendo sappia o tenga a sapere se l'utente ha effettuato il login.

Se fai js uscita in PHP, allora si dovrebbe includere l'intestazione appropriata:

header("Content-type: text/javascript"); 

// either readFile or custom stuff here. 
echo "alert('i canz have data!')"; 
// or, if you're less silly 
readFile('/path/to/super-secret.js'); 

in realtà, una volta ho avuto uscita CSS da PHP (oh, si può fare anche questo) che ha completamente modificato in base alla diventa variabile. Ho letteralmente potrebbe avere:

rel="stylesheet" type="text/css" href="css.php?v=#FF0000"> 

Ed userei #FF0000 come colore di base per completamente ri-definire le combinazioni di colori nel sito. Sono persino arrivato al punto di collegarlo a imagemagick e ricolorare il logo del sito. Sembrava orribile perché non sono un designer, ma era davvero pulito.

+0

Sono d'accordo sul fatto che abbia più senso controllare in PHP se il tag 'script' debba essere o meno pubblicato in primo luogo. Tuttavia, se per qualche ragione vuoi davvero nascondere il tuo JS, devi mettere lo script fuori dalla directory web del server, nel qual caso vorresti che PHP leggesse e stampasse il file. –

0

È possibile ma rallenterà le pagine poiché ogni volta che qualcuno accede al tuo modphp di pagina dovrà eseguire il tuo script php/javascript.

Problemi correlati