Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Intercettare l'URL dopo il Cancelletto (#)
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • S
      stefano Super User • ultima modifica di

      Intercettare l'URL dopo il Cancelletto (#)

      Esiste un modo per intercettare l'URL dopo il cancelletto?

      Ovvero se un utente arriva a: miosito.it/pagina.php#anchor_text
      con $_SERVER['REQUEST_URI'] intercetto tutto a parte "#anchor_text"

      Come faccio a recuperarlo?

      So che al server questa informazione arriva, ed infatti nei file di log ogni tanto la trovo...

      E' possibile farla intercettare a PHP?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Credo proprio che non sia possibile, perchè è un comportamento del browser più che altro...

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • S
          stefano Super User • ultima modifica di

          @Thedarkita said:

          Credo proprio che non sia possibile, perchè è un comportamento del browser più che altro...
          Si, ma nei log registrati dal server li ho trovati, quindi l'informazione dovrebbe arrivare al server
          :smile5:

          Se ci fosse un modo per intercettare questa informazione da PHP mi risolverebbe un bel problema
          :wink3:

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • J
            jeeves User Attivo • ultima modifica di

            Dovresti vedere nella documentazione ufficiale di $_SERVER o $_ENV se trovi quello che ti serve 😉

            :gthi:

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • S
              sups User Attivo • ultima modifica di

              C'è una funzione di PHP chiamata ParseURL.

              http://it.php.net/function.parse-url

              Ciao!

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • S
                stefano Super User • ultima modifica di

                @Sups said:

                C'è una funzione di PHP chiamata ParseURL.
                http://it.php.net/function.parse-url
                Ciao!
                Si, la conoscevo.
                Solo che questa funzione serve per parsare una URL, non per recuperare la URL.

                Grazie lo stesso
                :wink3:

                @Jeeves said:

                Dovresti vedere nella documentazione ufficiale di $_SERVER o $_ENV se trovi quello che ti serve 😉

                :gthi:
                Ciao Jeeves e grazie del suggerimento.
                Ho provato a cercare ma purtroppo non ho trovato nulla che faccia quello che mi serve.

                Avevo provato a recuperare questa informazione anche con l'.htaccess
                [php]RewriteRule ^(.).html#(.)$ prova2.php?uno=$1&due=$2 [/php]Ma purtroppo non me lo prende.
                :crying:

                Ci possono essere altre strade?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • I
                  inverter User Attivo • ultima modifica di

                  puoi provare con un explod.

                  Così dividi l'url in due: ciò che c'è prima del cancelletto e ciò che c'è dopo.

                  Però come è stato detto prima bisogna vedere se l'url arriva oppure no al server, prova...:)

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • S
                    stefano Super User • ultima modifica di

                    @Inverter said:

                    puoi provare con un explod.

                    Così dividi l'url in due: ciò che c'è prima del cancelletto e ciò che c'è dopo.

                    Però come è stato detto prima bisogna vedere se l'url arriva oppure no al server, prova...:)
                    Ciao Inverter, il mio problema non è suddividere l'URL, ma proprio trovare quest'ultima quando contiene il cancelletto....
                    😉

                    Ti viene in mente qualcosa a questo scopo?

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • I
                      inverter User Attivo • ultima modifica di

                      ah, ora ho capito.

                      purtroppo la rete conferma il mio pensiero: se guardi in giro su google vedi altri post con la tua stessa domanda , ma tutti dicono che non si può fare tramite php 😞

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • J
                        jeeves User Attivo • ultima modifica di

                        Allora il cancelletto dopo l'url è il nome del segnalibro della pagina :D, quelli <a name="nome segnalibro"></a>, ma funziona solo nel browser, perché è il browser che ti sposta nella stessa pagina senza rigenerarla... 😉

                        Esempio, link a questo post: giorgiotave.it/forum/php-mysql/83227-intercettare-lurl-dopo-il-cancelletto.html#post514198
                        Infatti il cancelletto sta 😉

                        Se hai realmente visto che è stato intercettato (hai detto al log del server), vedi se ti fa anche vedere la $var per fartelo vedere 😉

                        :gthi:

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • I
                          inverter User Attivo • ultima modifica di

                          adesso, non vorrei sbagliare, ma se ti serve far sapere al server in che posizione della pagina sei, potresti provare con un altro modo: in pratica potresti fare un doppio redirect.

                          In pratica potresti sostituire l'ancora con una variabile passata in get, quindi recuperi la variabile e la trasformi in ancora e successivamente reindirizzi l'utente verso la stessa ancora:
                          [PHP]
                          <!-- Ancora settata come variabile get-->
                          <a href="miapagina.php?anchor=articolo21">Articolo 21</a>

                          <?php
                          if (isset($_GET['anchor'])) //Controllo che sia settata l'ancora, altrimenti non reindirizzo l'utente
                          {
                          $anchor = $_GET['anchor'];

                          /...
                          Qui puoi mettere altro codice php sapendo che il nome dell'ancora è contenuta nella variabile $anchor
                          ...
                          /

                          header ("location: miapagina.php#".$anchor); //Reindirizzo l'utente verso l'ancora
                          }
                          ?>
                          [/PHP]

                          Poi non so cosa tu voglia fare e magari scopri che non ti serve neanche questo codice, però a questa ora sto un pò fuso 😄

                          Ciao ciao

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • S
                            stefano Super User • ultima modifica di

                            @Jeeves said:

                            Se hai realmente visto che è stato intercettato (hai detto al log del server), vedi se ti fa anche vedere la $var per fartelo vedere
                            I miei log dicono questo:
                            79.13.179.218 - - [18/Jun/2008:10:57:50 +0200] "GET /index_files/psy-psy-client.css HTTP/1.1" 200 2798 "http://www.psicologia-psicoterapia.it/master-corsi/ig-art-roma/corsi-teatroterapia-training-autogeno.html#bullismo-arteterapia-scolastica" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; it-it) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18"

                            Oppure:
                            86.149.161.124 - - [18/Jun/2008:13:25:09 +0200] "GET /master-corsi/tftp/master-psicologia-giuridica-minorile-scolastica-milano.gif HTTP/1.1" 200 3038 "http://www.psicologia-psicoterapia.it/master-corsi/tftp/master-psicologia-giuridica-master-psicologia-scolastica-milano.html#disturbi-alimentari-immagine-corporea" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; en) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18"

                            O anche:
                            72.14.193.67 - - [15/Jun/2008:10:00:08 +0200] "GET /master-corsi-psicologia-lavoro/modelli-comunicazione-pnl-milano.html#pnl-gestione-emozioni HTTP/1.1" 200 48200 "http://www.psicologia-psicoterapia.it/ipnosi.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)"

                            La cosa strana è che dove compare il cancelletto sono quasi tutte macchine Apple....
                            :mmm:

                            Comunque dove la cerco la variabile?

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • S
                              stefano Super User • ultima modifica di

                              @Inverter said:

                              adesso, non vorrei sbagliare, ma se ti serve far sapere al server in che posizione della pagina sei, potresti provare con un altro modo: in pratica potresti fare un doppio redirect.
                              Si, hai ragione, e questa è la mia alternativa.

                              Solo che non mi piace inserire molti redirect....
                              Non vorrei che poi nel tempo mi crei problemi.

                              In realtà non voglio sapere in quale posizione della pagina sono, ma lo voglio usare come tracciamento:
                              Se intercetto il "segnalibro" è come se passassi una variabile via GET senza per questo cambiare l'URL e quindi creare pagine duplicate (o utilizzare un 301)....

                              Una figata insomma.
                              :bigsmile:

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • A
                                andymnc User Newbie • ultima modifica di

                                usa semplicemente i valori di $_SERVER che ti servono.
                                fatti un var_dump per vedere cosa contiene (o se usi Eclipse o Zend Studio, guardane semplicemente il contenuto), scegli ad esempio 'REQUEST_URI' e 'ORIG_PATH_INFO' e poi come ti hanno suggerito splitta col # come riferimento

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                Caricamento altri post
                                Rispondi
                                • Topic risposta
                                Effettua l'accesso per rispondere
                                • Da Vecchi a Nuovi
                                • Da Nuovi a Vecchi
                                • Più Voti