Visualizzazione risultati 1 fino 17 di 17

Discussione: [JavaScript] Redirect con interruzione del codice

  1. #1
    Guest

    Predefinito [JavaScript] Redirect con interruzione del codice

    Il mio sito è composto da frame e sto utilizzando php e mysql. In ogni pagina ho inserito questo codice:

    Codice:
    <script language="javascript">
    if(self.location==parent.location){
    	location.href="index.php";
    }
    </script>
    per redirezionare alla pagina principale nel caso in cui l'utente tenti di aprire un frame interno. Mi sono accorto però che se una pagina contiene query al database, queste vengono effettuate ugualmente. Invece io vorrei che quando viene effettuato il redirect, venga interrotto tutto il codice seguente e si salti direttamente alla pagina index.php. Come posso fare?
    Ultima modifica di davser : 29-04-2007 alle ore 19.20.19

  2. #2
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    io farei una cosa diversa, in PHP anzichè Javascript.
    Codice PHP:
    <?php
    if($_SERVER['SCRIPT_URL']!=$url_padre){
    header("Location: $url_padre");
    }
    else{
    ?>

    <html>
    <body>
    Pagina contenuta nel frame
    </body>
    </html>

    <?
    }
    ?>
    dove $_SERVER['SCRIPT_URL'] è "/index.php", "/cartella/file.txt" ecc vale a dire il percorso relativo alla root del sito.
    Ultima modifica di Luffio : 29-04-2007 alle ore 19.59.12
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  3. #3
    Guest

    Predefinito

    L'ho provato. Ma funziona solamente con le pagine senza frame. In pratica la pagina che contiene i frameset è home.php, se all'interno dei suoi frame inserisco il codice che mi hai suggerito, con

    if($_SERVER['SCRIPT_URL']!="/home.php")

    questo if sarà sempre true.

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Non credo che il tuo problema possa avere una soluzione "mista"... anche perché ti ricordo che:
    - PHP serve a creare il codice HTML che sarà inviato al browser
    - JavaScript permette di agire sulla pagina così creata dopo il suo invio al browser
    Quindi, forse la soluzione migliore è quella iniziale... almeno finché la pagina in questione ha solamente query di selezione (male che vada, estrai dei dati dal database per niente). Diventa veramente critica se invece le query lo aggiornano il database...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    anche perchè, basterebbe disabilitare javascript ed il gioco è fatto

  6. #6
    Guest

    Predefinito

    Comunque mi sembra strano che in php non si possa fare un redirect se accedo ad un frame interno...

  7. #7
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    In PHP si può fare un redirect, ma essendo lato server non può "capire" in che frame si trova.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Forse potresti cavartela così, facendo uso esclusivamente di PHP:
    - nella home page reale del tuo sito imposti un cookie o una variabile di sessione, che attesti che è iniziato il giro nel tuo sito in modo corretto
    - nelle altre pagine controlli se è impostato questo cookie/variabile di sessione: se è così, allora invii il codice della pagina corrispondente. In caso contrario invii il codice del Frameset che contiene la pagina index...

    Alcuni problemi da superare: usando la variabile di sessione, se il tuo utente resta inattivo a lungo (su AV circa 30 minuti) la variabile viene persa e il tuo utente, riprese le attività, sarà costretto a ricominciare da capo. Il cookie ha il problema opposto: resta memorizzato sul disco con una scadenza arbitraria, e se non provvedi a cancellarlo finita la visita al tuo sito, al successivo accesso il tuo utente potrebbe riuscire ad entrare da una porta che non è quella principale...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Forse potresti cavartela così, facendo uso esclusivamente di PHP:
    - nella home page reale del tuo sito imposti un cookie o una variabile di sessione, che attesti che è iniziato il giro nel tuo sito in modo corretto
    - nelle altre pagine controlli se è impostato questo cookie/variabile di sessione: se è così, allora invii il codice della pagina corrispondente. In caso contrario invii il codice del Frameset che contiene la pagina index...
    Quindi, quando l'utente accede a home.php (il file che contiene la struttura dei frameset) imposto una variabile di sessione e in ogni pagina controllo se questa variabile è impostata. In tal modo se un utente invece di accedere ad home.php, accede direttamente ad un'altra pagina, verrà reindirizzato.

    Però se un utente dopo che è acceduto a home.php (e quindi è stata impostata la variabile di sessione), tenta di accedere ad una pagina interna il redirect non verrà effettuato! Ed è proprio questo quello che voglio evitare.

    In sostanza, vorrei evitare che un utente smanetti con i link, impostando delle variabili. Se fosse costretto a navigare nel sito se e solo se si trova in home.php, non potrebbe in alcun modo smanettare con i link.

  10. #10
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    bhe potresti fare controlli tramite php sull'url passato nel broswer,però non sono sicuro che le pagine richiamate nei frames facciano riferimento all'url della home.
    un'alternativa sarebbe eliminare i frames e utilizzare gli include con l'header,però dovresti rfare il layout.
    sciau
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da Xsescott
    bhe potresti fare controlli tramite php sull'url passato nel broswer,però non sono sicuro che le pagine richiamate nei frames facciano riferimento all'url della home.
    No, infatti come ho scritto sopra, le pagine interne fanno riferimeno al proprio indirizzo.

    Citazione Originalmente inviato da Xsescott
    un'alternativa sarebbe eliminare i frames e utilizzare gli include con l'header,però dovresti rfare il layout.
    Beh, se eliminassi i frame questa discussione non avrebbe più senso e non otterrei dei link "protetti" ;)

  12. #12
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    vorrei sapere una cosa: le pagine nei frame sono indipendenti l'una dall' altra e rispetto alla cornice? sennò potresti inizializzare una variabile nella cornice, e verificare che esista anche nei frame (in PHP)
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da Luffio
    vorrei sapere una cosa: le pagine nei frame sono indipendenti l'una dall' altra e rispetto alla cornice? sennò potresti inizializzare una variabile nella cornice, e verificare che esista anche nei frame (in PHP)
    Questo è la parte del file home.php che contiene la struttura dei frame:

    Codice HTML:
    <frameset frameborder="no" rows="0%,100%">
       <frame name="vuoto" src="about:blank" scrolling="no">
       <frame name="main" src="main.php" scrolling="auto">
    </frameset>
    Che poi è un solo, come puoi vedere. Il tuo consiglio, se ho capito bene, è quello già scritto da dementialsite e funziona solo se l'utente accede direttamente a main.php (o a una qualsiasi delle altre pagine interne). Ma se un utente accede a home.php e poi apre in un'altra finestra main.php, la variabile inizializzata precedentemente esiste e quindi non verrà effettuato alcun redirect.

  14. #14
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    La mia domanda sull'indipendenza era generale, perchè non so usare i frame XD
    Citazione Originalmente inviato da davser
    Ma se un utente accede a home.php e poi apre in un'altra finestra main.php, la variabile inizializzata precedentemente esiste e quindi non verrà effettuato alcun redirect.
    Non credo, prova
    Codice PHP:
    $cornice = 1;
    nella cornice (o qualcosa così), e nei frame
    Codice PHP:
    if(isset($cornice))
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  15. #15
    Guest

    Predefinito

    Provato. Nel frame non "vede" la variabile $cornice in nessun caso.

  16. #16
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Mi sembra di capire che i frame siano indipendenti completamente tra loro e dal padre, tranne per il fatto che puoi richiamarli in Javascript l'uno dall'altro... Sembrerebbe una roba facile da attuare ma sembra quasi impossibile :S
    Io ho fatto uno script (in PHP) per proteggere le mie pagine da curiosoni (visualizzando come se la pagina non esistesse), ma non uso i frame...
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da Luffio
    Io ho fatto uno script (in PHP) per proteggere le mie pagine da curiosoni (visualizzando come se la pagina non esistesse), ma non uso i frame...
    Potresti inviarmelo? Anche in mail se vuoi, grazie :)

    davser (at) libero . it

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •