Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    'spetta... ma la pagina è uno Script PHP o una pagina HTML statica?
    I DON'T Double Click!

  2. #12
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    11
    Dunque, la situazione e' questa:

    ho un sito fatto perlopiu' di pagine html (estensione: .htm).

    Voglio fare in modo che l'apertura di una delle pagine html del sito
    abbia come effetto collaterale di aggiungere un record in un db.
    Il record dovrebbe contenere l'ip del visitatore, la pagina visitata e un timestamp.
    Questo lo ottengo tramite il semplice script visits.php.

    Ho visto che se cambio l'estensione delle mie pagine html in php, e includo il seguente
    codice

    Codice PHP:
    <?php  include 'visits.php'?>
    La cosa funziona. In questo caso la pagina visitata la deduco da $_SERVER['PHP_SELF'].
    Fin qui tutto bene, se non che devo cambiare tutte le estensioni e i link del sito.

    Allora mi sono chiesto se fosse possibile ottenere lo stesso effetto senza stravolgere troppo
    il sito. Come dicevo nel primo post, la cosa sembra fattibile inserendo uno
    semplice elemento <script type="javascript" src="visits.php"></script> nelle pagine html,
    il che mi pare una soluzione abbastanza minimale.

    Il problema e' che questa soluzione e' un po' troppo minimale: per come funziona js, $_SERVER['PHP_SELF'] restituisce "visits.php" indipendentemente dalla pagina html "chiamante".

    Allora ho pensato che potevo includere il nome della pagina chiamante nell'argomento di src,
    per poi recuperarlo con un GET in php: src="visits.php?url=PAGE".
    Il problema era generare dinamicamente PAGE invece di scriverlo "a mano" in ogni pagina.
    Questo e' sostanzialmente quello che cercavo di capire in questo thread.

    Come dicevo l'ultimo script che ho inserito (quello con scr+ipt) sembra funzionare. Mi e'
    stato ispirato da questa vecchia discussione in un altro forum.
    Da quel che capisco potrebbero esserci dei problemi con certi browser, che si possono
    risolvere con una sintassi piu' canonica. D'altra parte la discussione e' vecchiotta,
    quindi forse ora non ci sono piu' i problemi di una volta, come pare suggerire l'ultimo
    intervento.

  3. #13
    nono la questione è che era HTML e non PHP, allora devi fare:

    <iframe width="0" height="0" frameborder="0" src="visits.php?url=nomePagina.htm"></frame>

    Ed, ovviamente, cambiare il nome della pagina con quella dove sei al momento.

    Per questo puoi usare JS:

    facendo:

    document.write('<iframe width="0" height="0" frameborder="0" src="visits.php?url='+window.location.pathname+'"> </frame>');
    I DON'T Double Click!

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    11
    ok, ho capito. E' tipo la "mia" soluzione ma usi document.write
    per inserire un iframe invece che uno script js.
    Ho provato ma, come prevedevi, come pagina chiamante
    viene sempre dato lo script visits.php, e non, come vorrei,
    l'html che contiene lo script js che scrive l'iframe.

    Nel caso del mio sporchissimo script invece la pagina chiamante
    e' quella giusta, cioe' l'html.

    Almeno, questa e' la situazione con i browser che ho provato
    (mozilla e i.e. 6 su windows, iceweasel su linux).

  5. #15
    mmm allora non ho capito come lo metti sto script... non hai la pagina pubblicata da qualche parte?
    I DON'T Double Click!

  6. #16
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    11
    Originariamente inviato da franz_2A
    Ho provato ma, come prevedevi, come pagina chiamante
    viene sempre dato lo script visits.php, e non, come vorrei,
    l'html che contiene lo script js che scrive l'iframe.
    mi correggo. Quello che ho scritto sopra non e' vero.
    Il tuo metodo funziona!!


    Mi sono accorto ora che ho fatto un po' di casino: il fatto e' che ho due
    versioni dello script visits.php, che si differenziano per il modo in cui determinano
    la pagina chiamante. Una usa $_SERVER['PHP_SELF'] e una usa il metodo GET.
    Ovviamente devo chiamare la seconda (visits2.php) ma stupidamente ho copiato
    il tuo codice senza mettere il 2 nel nome. d'oh!

    A questo punto il tuo codice e' nettamente migliore, perche' e' decisamente piu' semplice
    e leggibile del mio.

    Grazie mille!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.