Problema .js esterno

domenica 15 novembre 2009 - 10.45

Caractacus Profilo | Newbie

Salve a tutti! Sono un niubbo e ho un problema con uno script javascript che dovrebbe riprodurre una sorta di "marquee" (testo scorrevole) compatibile con tutti i browsers. Lo script in questione è questo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Quando inserisco questo script nella pagina dove voglio che venga visualizzato il testo scorrevole (tra "<script type="text/javascript">" e "</script>")...tutto funziona bene.
Quando invece provo a inserire lo script in un file .js esterno (richiamandolo con "<script type="text/javascript" src="filesterno.js"></script>")...non funziona più!

Ho la necessità di inserirlo in un file esterno, ma davvero non riesco a capire come posso fare per farlo funzionare. Mi potete aiutare? :)

luigidibiasi Profilo | Guru

Ciao,

probabilmente il problema è qui ..

>var marqueecontent='<nobr><p style="margin:0;padding:0;"><?PHP
>$number = 5; $template = "ticker"; include("/web/htdocs/www.miosito.com/home/cutenews/show_news.php");
>?></p></nobr>'

il tag <?PHP> non può essere usato in un file .js perchè deve essere elaborato dal motore PHP e non dal motore JS... và quindi messo in una pagina PHP (dove credo tu stia facendo girare il marquee)

Per risolvere credo tu debba cambiare script :|



Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

Caractacus Profilo | Newbie

Ti ringrazio per l'illuminazione. Il problema purtroppo è che quel pezzo di PHP (proveniente da Cutenews, uno script per la gestione di news, come avrai sicuramente capito) lo dovrò usare in qualsiasi altro script e non lo posso eliminare.

[EDIT]

RISOLTO!
Ripensando a quello che hai scritto, ho provato a cambiare l'estensione del file "esterno" che contiene lo script da ".js" a ".php". Non so se questo sia corretto o meno, ma adesso pare funzionare tutto bene.

aloapf Profilo | Newbie

Ci ho provato in ogni modo, ormai non ci dormo la notte...

Ti riassumo il mio problema: anche io utilizzo cutenews per gestire le news del mio sito. Possiedo quindi un file denominato "show_news.php"
Mi farebbe piacere però inserire le stesse news (solo i titoli) nella home del sito, in uno scroller, giusto per far vedere alla gente una specie di anteprima "pubblicitario".
Ho quindi provato ad inserire lo script che l'amico ha riportato qui sopra, sia in una pagina .php che in una .htm: niente da fare, non funge proprio. La pagina suddetta, una volta caricata, presenta solo un riquadro (delle misure che ho assegnato) monocolore, delle notizie nemmeno l'ombra.
Hai qualche suggerimento da darmi? Temo che lo script contenga qualche errore, ma purtroppo sono completamente analfabeta in tema di php...

Grazie,
Paola

luigidibiasi Profilo | Guru

Puoi allegare la pagina al post (zippandola) in modo che possiamo darci un'occhiata... detta così è un pò complicato


Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

hai ragione...
ti ho messo entrambe le versioni, .htm (nella quale si scorge almeno un riquadro) e .php (la quale invece non dà segni di vita...).
Devo aggiungerti l'indirizzo web delle pagine o è spam?
spero di aver allegato correttamente lo zip

luigidibiasi Profilo | Guru

Allora,
per quanto riguarda la pagina htm non puoi usarla in quel modo perchè è presenet il tag <?PHP che deve essere eseguito da un motore PHP... La pagina deve avere estensione PHP...

Che server web stai usando per far girare il sito?
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

aruba (era questo che intendevi?)

luigidibiasi Profilo | Guru

sei hostato su aruba...
accedi alla tua area amministrativa e controlla quali engine hai attivi... (il tipo di servizio che hai acquistato)

dovresti vedere all'interno php vers xx.xxx o asp.net v x.xxxx

in questo modo siamo sicuri che la pagina php deve essere eseguita...


Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

mi dice che ho installato la versione 5.2.11, comunque non ci dovrebbero essere problemi con il php, perchè cutenews funziona a meraviglia.
ti allego una pagina sul php che ho trovato, ma ai miei occhi è arabo...

luigidibiasi Profilo | Guru

allora probabilemnte è un problema di sintassi nella pagina...

prova ad eseguirla sul server ... se ti da qualche errore php riportalo qui..


ma il sito è già pubblicato? è possibile accedere alla pagina php tramite qualche link?
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

il sito è online, cos' come le due pagine che ti ho inviato precedentemente.
te lo linko qui, se si può:
http://www.icsantomobono.it/per prove.php
http://www.icsantomobono.it/per prove_2.htm
Il problema è che non dà errori, non visualizza proprio niente.

come vedi invece la pagina delle news funziona:
http://www.icsantomobono.it/13_news.php

luigidibiasi Profilo | Guru

>> modifica al post precedente
scusami ... ho visto anche questo.
<script language="JavaScript1.2"> dovresti cambiarlo in <script type="text/javascript">

credo manchino parecchi ; ti conviene metterli perchè alcuni browser ti fanno passare il codice x buono altri no...
>> fine mod

allora...

vedi un pò questa riga nella pagina php... ci sta un riga : (sto usando Iexplore che ti visualizza gli errori)

>>//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
>>var marqueecontent='<nobr><p><b><?PHP $number = 5; $template = "ticker"; include("cutenews/show_news.php"); ?></b></p></nobr>' << qui manca un ;

devi mettere un ; dopo l'apice di chiusura. dopo che l'hai aggiornata riproviamo se funziona o c'è qualche altro problema.

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

ho cambiato <script type="text/javascript"> e messo il ; dove mi hai detto, ma niente da fare.
Ma gli altri ; dove li devo mettere?

la cosa strana è che se visualizzo la pagina in ie, e vado a guardane l'html col blocco note,
alla stringa di cui hai parlato tu prima, elenca le ultime news! però purtroppo non le visualizza.

luigidibiasi Profilo | Guru

essendo javascript ogni linea di codice dovrebbe terminare con ;

io se apro con IE visualizzo l'errore (MANCA ;) vicino alle varie linee di codice...
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

ho provato ad aggiungere un po' di ; (a dir la verità un poco a casaccio, non conoscendo nulla di script e affini), ma il risultato non cambia: il mio ie (versione 6.0) non mi dà errori, ma nemmeno si degna di restituirmi queste benedette 5 news...
Idem con firefox.
Sig...

luigidibiasi Profilo | Guru

>ho provato ad aggiungere un po' di ; (a dir la verità un poco
>a casaccio, non conoscendo nulla di script e affini), ma il risultato
>non cambia:

metterli a casaccio non va bene
ho dato un'occhiata al codice ho visto che li hai messi dopo le graffe etc... ti conviene cercare una guida al Js almeno per capire la sintassi.
domani se riesco a collegarmi te lo riposto corretto (o se qualcuno ti fà il favore fattelo correggere)

>> il mio ie (versione 6.0) non mi dà errori, ma nemmeno
>si degna di restituirmi queste benedette 5 news...

aggiorna il browser ie6 è troppo obsoleto. Se passi al 7 o 8 ti segnala dove stanno gli errorii

>Idem con firefox.
>Sig...
>

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

ho provato a guardare il sito su un altro pc (con ie molto più attuale) e addirittura mi dice che l'unico errore è il ; in fondo alla riga di cui abbiam parlato sopra.. tolto quello, secondo lui non ci sono più errori, ma ovviamente continua a non funzionare. Cheffaccio, rinuncio?

luigidibiasi Profilo | Guru

>>mod
ok ho trovato cos'è... se guardi bene in questa riga: (la 82 mi sembra) (nella pagina che ti viene restituita)

>>var marqueecontent='<nobr><p><b><a href="/per prove.php?subaction=showfull&

trovi degli apici sinoli ' non preceduti dall'escape \

Siccome tu inizi la dichiarazione con marqueecontent=' ad ogni apice presente nella stringa devi anteporre un \

Non facendolo dove sta consiglio d'istituto ti và in errore.

Il problema sta in come è definita questa riga... purtroppo tu incolli via PHP quindi aspettiamo che qualcuno ti indichi la funzione da usare per sostituire l'apice singolo con \' oppure cercala sul web.



Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

ma troppo bravo!
quindi se non ho capito male la funzione che dovrei usare è la addslashes (l'ho trovata qui: http://www.mrwebmaster.it/php/ref/addslashes_485.html). solo non ho capito dove devo metterla, visto che con cutenews non uso database.

potrebbe servire la funzione str_replace? se sì, dove e come la metto?

ps: ho controllato su aruba, magic_quotes_gpc è impostato su on.

luigidibiasi Profilo | Guru

purtroppo tu usi il comando include e io non sono conoscitore esperto di php quindi non sò come puoi fare per modificare il flusso che il server php ti và ad incollare nella pagina.

il programma che usi per le news dove te le fà scrivere? in un file xml?
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

aloapf Profilo | Newbie

da come sembra, cutenews mi fa scrivere tutto su una pagina index.php, poi il programma stesso si occupa di girare tutte le news su di un file di testo show_news.php.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5