Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2009-11-26 20:21:00.0 alle 2009-11-26 20:21:00.0
    Come fare a sapere l'URL in PHP
    Esiste un modo per disporre, in uno script PHP, dell'URL con cui è stata chiamata la pagina?

    Ho provato $_SERVER['REQUEST_URI'] ma dà sempre "/", mentre vorrei ad esempio informazioni su come la pagina è stata chiamata, con dominio e sottodominio, ad esempio

    "dominio.com"
    "www.dominio.com"
    "ww.dominio.com" (digitato erroneamente ma porta alla home page)
    "altro.dominio.com"

    Cioè non vorrei sapere l'URL della pagina, che ovviamente già conosco, ma cosa l'utente ha digitato per arrivarci.
    • Avatar
      ☺
      Scritto da
      The Lich
      Übermensch
      il 2009-11-26 20:33:00.0 alle 2009-11-26 20:33:00.0
      Trollate totali: 21351
      Re: Come fare a sapere l'URL in PHP

      - Scritto da:
      > Esiste un modo per disporre, in uno script PHP,
      > dell'URL con cui è stata chiamata la
      > pagina?
      >
      > Ho provato $_SERVER['REQUEST_URI'] ma dà sempre
      > "/", mentre vorrei ad esempio informazioni su
      > come la pagina è stata chiamata, con dominio e
      > sottodominio, ad
      > esempio
      >
      > "dominio.com"
      > "www.dominio.com"
      > "ww.dominio.com" (digitato erroneamente ma porta
      > alla home
      > page)
      > "altro.dominio.com"
      >
      > Cioè non vorrei sapere l'URL della pagina, che
      > ovviamente già conosco, ma cosa l'utente ha
      > digitato per
      > arrivarci.

      ma che OO

      echo '<pre>';
      print_r($_REQUEST);
      echo '</pre>';
      


      e ti trovi il campo che ti serve

      The Lich™
      « Non è morto ciò che in eterno può attendere,
      e col passare di strani eoni, anche la morte può morire. »
      Cylon
      Immagine postata dall'utente
      • Avatar
        Scritto da
        Non Autenticato
        il 2009-11-26 22:11:00.0 alle 2009-11-26 22:11:00.0
        Re: Come fare a sapere l'URL in PHP
        >
        echo '<pre>';
        > print_r($_REQUEST);
        > echo '</pre>';
        > 


        Array
        (
        )

        • Avatar
          ☺
          Scritto da
          The Lich
          Übermensch
          il 2009-11-27 19:54:00.0 alle 2009-11-27 19:54:00.0
          Trollate totali: 21351
          Re: Come fare a sapere l'URL in PHP

          - Scritto da:
          > >
          echo '<pre>';
          > > print_r($_REQUEST);
          > > echo '</pre>';
          > > 

          >
          > Array
          > (
          > )
          >

          ah giusto era $_SERVER

          bah dovrei fare un po' di ferie, peccato non le concedano

          The Lich™
          « Non è morto ciò che in eterno può attendere,
          e col passare di strani eoni, anche la morte può morire. »
          Cylon
          Immagine postata dall'utente
          • Avatar
            Scritto da
            Non Autenticato
            il 2009-11-27 20:46:00.0 alle 2009-11-27 20:46:00.0
            Re: Come fare a sapere l'URL in PHP
            > ah giusto era $_SERVER

            Provati tutti i possibili array. Ovvio che ho anche cercato su Google: è pieno di pagine in cui uno pone la mia stessa domanda e gli si suggeriscono soluzioni che fanno cose diverse, ad esempio ricostruire l'informazione in base alle varie variabili in $_SERVER. Ma da quanto ho visto in questo array non c'è una variabile che dica ciò che l'utente ha digitato nel browser, letteralmente, errori compresi.

            > bah dovrei fare un po' di ferie, peccato non le
            > concedano

            È un problema comune a molti, anche qui una ricerca su Google non porta a suggerimenti utili. Cylon
            • Avatar
              ☺
              Scritto da
              The Lich
              Übermensch
              il 2009-11-27 21:01:00.0 alle 2009-11-27 21:01:00.0
              Trollate totali: 21351
              Re: Come fare a sapere l'URL in PHP

              - Scritto da:
              > > ah giusto era $_SERVER
              >
              > Provati tutti i possibili array. Ovvio che ho
              > anche cercato su Google: è pieno di pagine in cui
              > uno pone la mia stessa domanda e gli si
              > suggeriscono soluzioni che fanno cose diverse, ad
              > esempio ricostruire l'informazione in base alle
              > varie variabili in $_SERVER. Ma da quanto ho
              > visto in questo array non c'è una variabile che
              > dica ciò che l'utente ha digitato nel browser,
              > letteralmente, errori
              > compresi.

              ??? ma che cosa vorresti tirare fuori?

              se uno sbaglia a scrivere il nome di dominio non bastano tutte le variabili superglobali del mondo a fartelo sapere, a meno che tu non registri tutte le possibili varianti e/o errori più comuni di battitura, come domini tuoi

              > > bah dovrei fare un po' di ferie, peccato non le
              > > concedano
              >
              > È un problema comune a molti, anche qui una
              > ricerca su Google non porta a suggerimenti utili.
              > Cylon

              estiqatsi, ho 6 giorni di ferie da fare, ancora

              anzi 6 giorni e mezzora, mi pare

              The Lich™
              « Non è morto ciò che in eterno può attendere,
              e col passare di strani eoni, anche la morte può morire. »
              Cylon
              Immagine postata dall'utente
              • Avatar
                Scritto da
                Non Autenticato
                il 2009-11-27 21:49:00.0 alle 2009-11-27 21:49:00.0
                Re: Come fare a sapere l'URL in PHP
                > ??? ma che cosa vorresti tirare fuori?

                Tempo fa avevo un dominio puntato tramite Mydomain ad uno spazio gratuito. Mydomain permette di indirizzare tutte le richieste

                dominio.com
                www.dominio.com
                ww.dominio.com (errore di digitazione)
                info.dominio.com (host inesistente)

                allo stesso URL, che nel mio caso era spaziogratuito.com/miadirectory . Su questo spazio gratuito girava uno script che fra le altre cose leggeva il referrer, che conteneva l'URL di Mydomain, corrispondente a ciò che l'utente aveva digitato. Era una caratteristica fortuita dovuta alla configurazione del servizio di Mydomain.
                Era utile perché spesso il nome dell'host mi suggeriva ciò che gli utenti si aspettavano di trovare su quel sito (ad esempio certi digitavano pallavolo.dominio.com e allora avevo messo un link alla locale squadra di pallavolo).

                Però il redirezionamento aveva un difetto: per chissà che ragione Google indicizzava spaziogratuito.com/miadirectory con un ranking più alto di dominio.com, e dopo un po' la maggior parte degli accessi avveniva direttamente allo spazio gratuito senza passare per dominio.com.

                Allora ho messo il tutto su un altro spazio gratuito che permette di puntarvi direttamente dominio.com, senza bisogno di redirezionamenti. Però ora il referrer, quando non è una stringa vuota, dà la pagina di provenienza e non più l'informazione di prima, e mi chiedevo se ci fosse una variabile apposita.

                $_SERVER['REQUEST_URI'] dovrebbe contenere proprio quell'informazione ma omette host e dominio, magari dipende dalla configurazione.
    • Avatar
      Scritto da
      Non Autenticato
      il 2009-11-26 20:43:00.0 alle 2009-11-26 20:43:00.0
      Re: Come fare a sapere l'URL in PHP

      - Scritto da:
      > Esiste un modo per disporre, in uno script PHP,
      > dell'URL con cui è stata chiamata la
      > pagina?
      >
      > Ho provato $_SERVER['REQUEST_URI'] ma dà sempre
      > "/", mentre vorrei ad esempio informazioni su
      > come la pagina è stata chiamata, con dominio e
      > sottodominio, ad
      > esempio
      >
      > "dominio.com"
      > "www.dominio.com"
      > "ww.dominio.com" (digitato erroneamente ma porta
      > alla home
      > page)
      > "altro.dominio.com"
      >
      > Cioè non vorrei sapere l'URL della pagina, che
      > ovviamente già conosco, ma cosa l'utente ha
      > digitato per
      > arrivarci.

      Ancora c'è gente che usa quello schifo di PHP? Perplesso
      • Avatar
        ☺
        Scritto da
        The Lich
        Übermensch
        il 2009-11-26 20:48:00.0 alle 2009-11-26 20:48:00.0
        Trollate totali: 21351
        Re: Come fare a sapere l'URL in PHP

        - Scritto da:
        >
        > - Scritto da:
        > > Esiste un modo per disporre, in uno script PHP,
        > > dell'URL con cui è stata chiamata la
        > > pagina?
        > >
        > > Ho provato $_SERVER['REQUEST_URI'] ma dà sempre
        > > "/", mentre vorrei ad esempio informazioni su
        > > come la pagina è stata chiamata, con dominio e
        > > sottodominio, ad
        > > esempio
        > >
        > > "dominio.com"
        > > "www.dominio.com"
        > > "ww.dominio.com" (digitato erroneamente ma porta
        > > alla home
        > > page)
        > > "altro.dominio.com"
        > >
        > > Cioè non vorrei sapere l'URL della pagina, che
        > > ovviamente già conosco, ma cosa l'utente ha
        > > digitato per
        > > arrivarci.
        >
        > Ancora c'è gente che usa quello schifo di PHP? Perplesso

        tu cosa usi? scommetto asp

        The Lich™
        « Non è morto ciò che in eterno può attendere,
        e col passare di strani eoni, anche la morte può morire. »
        Cylon
        Immagine postata dall'utente
        • Avatar
          Scritto da
          Non Autenticato
          il 2009-11-26 22:25:00.0 alle 2009-11-26 22:25:00.0
          Re: Come fare a sapere l'URL in PHP
          - Scritto da: The Lich
          >
          > - Scritto da:
          > >
          > > - Scritto da:
          > > > Esiste un modo per disporre, in uno script
          > PHP,
          > > > dell'URL con cui è stata chiamata la
          > > > pagina?
          > > >
          > > > Ho provato $_SERVER['REQUEST_URI'] ma dà
          > sempre
          > > > "/", mentre vorrei ad esempio informazioni su
          > > > come la pagina è stata chiamata, con dominio e
          > > > sottodominio, ad
          > > > esempio
          > > >
          > > > "dominio.com"
          > > > "www.dominio.com"
          > > > "ww.dominio.com" (digitato erroneamente ma
          > porta
          > > > alla home
          > > > page)
          > > > "altro.dominio.com"
          > > >
          > > > Cioè non vorrei sapere l'URL della pagina, che
          > > > ovviamente già conosco, ma cosa l'utente ha
          > > > digitato per
          > > > arrivarci.
          > >
          > > Ancora c'è gente che usa quello schifo di PHP?
          > Perplesso
          >
          > tu cosa usi? scommetto asp
          >
          > The Lich™
          > « Non è morto ciò che in eterno può
          > attendere,
          > e col passare di strani eoni, anche la morte può
          > morire. »
          > Cylon
          > [img]http://www.gamewyrd.com/previews/bottledimp/i

          ruby on rails, testa di minimì
          • Avatar
            ☺
            Scritto da
            The Lich
            Übermensch
            il 2009-11-27 20:58:00.0 alle 2009-11-27 20:58:00.0
            Trollate totali: 21351
            Re: Come fare a sapere l'URL in PHP

            - Scritto da:
            > - Scritto da: The Lich
            > >
            > > - Scritto da:
            > > >
            > > > - Scritto da:
            > > > > Esiste un modo per disporre, in uno script
            > > PHP,
            > > > > dell'URL con cui è stata chiamata la
            > > > > pagina?
            > > > >
            > > > > Ho provato $_SERVER['REQUEST_URI'] ma dà
            > > sempre
            > > > > "/", mentre vorrei ad esempio informazioni
            > su
            > > > > come la pagina è stata chiamata, con
            > dominio
            > e
            > > > > sottodominio, ad
            > > > > esempio
            > > > >
            > > > > "dominio.com"
            > > > > "www.dominio.com"
            > > > > "ww.dominio.com" (digitato erroneamente ma
            > > porta
            > > > > alla home
            > > > > page)
            > > > > "altro.dominio.com"
            > > > >
            > > > > Cioè non vorrei sapere l'URL della pagina,
            > che
            > > > > ovviamente già conosco, ma cosa l'utente ha
            > > > > digitato per
            > > > > arrivarci.
            > > >
            > > > Ancora c'è gente che usa quello schifo di
            > PHP?
            >
            > > Perplesso
            > >
            > > tu cosa usi? scommetto asp
            > >
            >
            > ruby on rails, testa di minimì

            un linguaggio di programmazione per chio non ha voglia di fare una fava

            The Lich™
            « Non è morto ciò che in eterno può attendere,
            e col passare di strani eoni, anche la morte può morire. »
            Cylon
            Immagine postata dall'utente
    • Avatar
      ☺
      Scritto da
      il 2009-11-27 21:16:00.0 alle 2009-11-27 21:16:00.0
      Trollate totali: 465
      Re: Come fare a sapere l'URL in PHP

      - Scritto da:
      > Esiste un modo per disporre, in uno script PHP,
      > dell'URL con cui è stata chiamata la
      > pagina?
      >
      > Ho provato $_SERVER['REQUEST_URI'] ma dà sempre
      > "/", mentre vorrei ad esempio informazioni su
      > come la pagina è stata chiamata, con dominio e
      > sottodominio, ad
      > esempio
      >
      > "dominio.com"
      > "www.dominio.com"
      > "ww.dominio.com" (digitato erroneamente ma porta
      > alla home
      > page)
      > "altro.dominio.com"
      >
      > Cioè non vorrei sapere l'URL della pagina, che
      > ovviamente già conosco, ma cosa l'utente ha
      > digitato per
      > arrivarci.

      Prenditi i sorgenti di zend framework e guardati il codice delle classi Zend_controller_router_*
      • Avatar
        Scritto da
        Non Autenticato
        il 2009-11-27 21:34:00.0 alle 2009-11-27 21:34:00.0
        Re: Come fare a sapere l'URL in PHP
        > Prenditi i sorgenti di zend framework e guardati
        > il codice delle classi
        > Zend_controller_router_*

        See see, grazie del consiglio ma mica sono un programmatore così peloso.
        • Avatar
          ☺
          Scritto da
          il 2009-11-27 23:08:00.0 alle 2009-11-27 23:08:00.0
          Trollate totali: 465
          Re: Come fare a sapere l'URL in PHP
          - Scritto da:
          > > Prenditi i sorgenti di zend framework e guardati
          > > il codice delle classi
          > > Zend_controller_router_*
          >
          > See see, grazie del consiglio ma mica sono un
          > programmatore così
          > peloso.

          Zend_Controller_Request_Http


          public function setRequestUri($requestUri = null)
              {
                  if ($requestUri === null) {
                      if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { // check this first so IIS will catch
                          $requestUri = $_SERVER['HTTP_X_REWRITE_URL'];
                      } elseif (
                          // IIS7 with URL Rewrite: make sure we get the unencoded url (double slash problem)
                          isset($_SERVER['IIS_WasUrlRewritten'])
                          && $_SERVER['IIS_WasUrlRewritten'] == '1'
                          && isset($_SERVER['UNENCODED_URL'])
                          && $_SERVER['UNENCODED_URL'] != ''
                          ) {
                          $requestUri = $_SERVER['UNENCODED_URL'];
                      } elseif (isset($_SERVER['REQUEST_URI'])) {
                          $requestUri = $_SERVER['REQUEST_URI'];
                          // Http proxy reqs setup request uri with scheme and host [and port] + the url path, only use url path
                          $schemeAndHttpHost = $this->getScheme() . '://' . $this->getHttpHost();
                          if (strpos($requestUri, $schemeAndHttpHost) === 0) {
                              $requestUri = substr($requestUri, strlen($schemeAndHttpHost));
                          }
                      } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI
                          $requestUri = $_SERVER['ORIG_PATH_INFO'];
                          if (!empty($_SERVER['QUERY_STRING'])) {
                              $requestUri .= '?' . $_SERVER['QUERY_STRING'];
                          }
                      } else {
                          return $this;
                      }
                  } elseif (!is_string($requestUri)) {
                      return $this;
                  } else {
                      // Set GET items, if available
                      if (false !== ($pos = strpos($requestUri, '?'))) {
                          // Get key => value pairs and set $_GET
                          $query = substr($requestUri, $pos + 1);
                          parse_str($query, $vars);
                          $this->setQuery($vars);
                      }
                  }
          
                  $this->_requestUri = $requestUri;
                  return $this;
              }
          • Avatar
            ☺
            Scritto da
            il 2009-11-27 23:09:00.0 alle 2009-11-27 23:09:00.0
            Trollate totali: 465
            Re: Come fare a sapere l'URL in PHP

            - Scritto da: kotaro
            > - Scritto da:
            > > > Prenditi i sorgenti di zend framework e
            > guardati
            > > > il codice delle classi
            > > > Zend_controller_router_*
            > >
            > > See see, grazie del consiglio ma mica sono un
            > > programmatore così
            > > peloso.
            >
            > Zend_Controller_Request_Http
            >
            >
            >
            public function setRequestUri($requestUri =
            > null)
            >     {
            >         if ($requestUri === null) {
            >             if
            > (isset($_SERVER['HTTP_X_REWRITE_URL'])) { //
            > check this first so IIS will
            > catch
            >                 $requestUri =
            > $_SERVER['HTTP_X_REWRITE_URL'];
            >             } elseif (
            >                 // IIS7 with URL Rewrite: make
            > sure we get the unencoded url (double slash
            > problem)
            >                
            > isset($_SERVER['IIS_WasUrlRewritten'])
            >                 &&
            > $_SERVER['IIS_WasUrlRewritten'] ==
            > '1'
            >                 &&
            > isset($_SERVER['UNENCODED_URL'])
            >                 && $_SERVER['UNENCODED_URL'] != ''
            >                 ) {
            >                 $requestUri =
            > $_SERVER['UNENCODED_URL'];
            >             } elseif
            > (isset($_SERVER['REQUEST_URI']))
            > {
            >                 $requestUri =
            > $_SERVER['REQUEST_URI'];
            >                 // Http proxy reqs setup request
            > uri with scheme and host [and port] + the url
            > path, only use url
            > path
            >                 $schemeAndHttpHost =
            > $this->getScheme() . '://' .
            > $this->getHttpHost();
            >                 if (strpos($requestUri,
            > $schemeAndHttpHost) === 0)
            > {
            >                     $requestUri =
            > substr($requestUri,
            > strlen($schemeAndHttpHost));
            >                 }
            >             } elseif
            > (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0,
            > PHP as
            > CGI
            >                 $requestUri =
            > $_SERVER['ORIG_PATH_INFO'];
            >                 if
            > (!empty($_SERVER['QUERY_STRING']))
            > {
            >                     $requestUri .= '?' .
            > $_SERVER['QUERY_STRING'];
            >                 }
            >             } else {
            >                 return $this;
            >             }
            >         } elseif (!is_string($requestUri)) {
            >             return $this;
            >         } else {
            >             // Set GET items, if available
            >             if (false !== ($pos =
            > strpos($requestUri, '?')))
            > {
            >                 // Get key => value pairs and set
            > $_GET
            >                 $query = substr($requestUri, $pos
            > +
            > 1);
            >                 parse_str($query, $vars);
            >                 $this->setQuery($vars);
            >             }
            >         }
            > 
            >         $this->_requestUri = $requestUri;
            >         return $this;
            >     }


            Arrabbiato Arrabbiato

            Beh, è li nascosto...
<softv>

Pagina generata in 109 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 22 negli ultimi cinque minuti, 42 negli ultimi 15 minuti