Visualizzazione dei risultati da 1 a 5 su 5

Discussione: redirect intelligente

  1. #1

    redirect intelligente

    Salve a tutti,

    premetto che normalmente non sviluppo in PHP quindi abbiate pazienza se faccio qualche domanda da "principiante".

    Ho una pagina in italiano in questa pagina ho 3 link che indirizzano l'utente alla versione inglese, francese e tedesco. Per rendere la cosa un attimino dinamica vorrei far puntare i tre link ad uno script PHP che mi indirizza in automatico alla pagina della lingua scelta.
    Un esempio: supponiamo di trovarci nella pagina http://www.sito.com/prodotti/pagina.htm e clicco sul link "English" questo link dovrebbe puntare al mio script "lang.php?lang=en" il quale mi destinerà a: http://www.sito.com/en/prodotti/pagina.htm
    Così nel caso della scelta della lingua francese sarebbe: http://www.sito.com/fr/prodotti/pagina.htm e così via. Le cartelle delle lingue si trovano sulla root del sito

    Questo è quello che sono riuscito a fare al momento:

    codice:
    <?php
    // leggo l'indirizzo della pagina chiamante
    $ref=getenv('HTTP_REFERER'); 
    
    //leggo il contenuto della variabile lang
    echo $_GET['lang'];
    echo "
    ";
    $destinazione="http://www.sito.com".$_GET['lang']; // e qui dovrei aggiungere il resto dell'indirizzo
    ?>
    Qualcuno mi sa dare una mano su come inserire il resto dell'indirizzo?
    Grazie.
    Jotto

  2. #2
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Uhm, vediamo, se è it non aggiungi niente, giusto?

    Intanto commento il tuo codice
    Codice PHP:
    // leggo l'indirizzo della pagina chiamante - questo per quello che devi fare non ti serve...
    $ref=getenv('HTTP_REFERER'); 

    //leggo il contenuto della variabile lang
    echo $_GET['lang']; // qui stampi il contenuto della variabile, non ti serve stamparlo
    echo "
    "
    // idem per il 
    non ti serve per il redirect
    $destinazione
    ="http://www.sito.com".$_GET['lang']; // e qui dovrei aggiungere il resto dell'indirizzo 
    poi scrivo come scriverei io
    Codice PHP:
    $lingua $_GET['lang'];
    // controllo se lingua è it
    if ($lingua == "it") {
       
    $lingua ""// se è it la variabile la svuoto
    } else {
      
    $lingua.="/"// altrimenti aggiungo una slash in fondo alla stringa
    }
    $destinazione "http://www.ilmiosito.com/".$lingua."partefinaleindirizzo";
    Header ("Location: $destinazione"); //faccio il redirect 
    Volendo il controllo che faccio nell'if lo puoi trasformare in:
    Codice PHP:
    $lingua == "it" $lingua "" $lingua.="/"
    che ce l'hai tre e cinco? Tre e cinco?!?

  3. #3
    Ciao e grazie per la spiegazione punto per punto.

    Dunque, in realtà la parte iniziale del codice mi serve:
    codice:
    $ref=getenv('HTTP_REFERER');
    Serve a sapere da quale pagine proviene la richiesta di cambio lingua, sapendo da quale pagina viene la richiesta posso rendirizzare l'utente alla pagina della versione scelta.
    Infatti la parte finale dell'indirizzo deve essere presa da li, è proprio quello che non sono riuscito a fare.

    Con qualche esempio forse riesco a spiegarmi meglio:

    Se dalla pagina http://www.ilmiosito.com/prodotti/mobile/ipod.htm clicco su "Francese" lo script dovrebbe indirizzarmi a: http://www.ilmiosito.com/fr/prodotti/mobile/ipod.htm quindi dovrebbbe:

    codice:
    //prelevo l'indirizzo della pagina referral (mi servirà per estrapolare la parte finale)
    1. $ref=getenv('HTTP_REFERER'); 
    
    //prelevo il valore della variabile lingua
    2. $lingua = $_GET['lang']; 
    
    // qui dovrei prendere il contenuto di $ref e sottrarre la parte iniziale (http://www.ilmiosito.com/) in modo da ottenere soltanto /prodotti/mobile/ipod.htm
    3. partefinaleindirizzo=mid($ref, x, y)
    
    // dichiaro la variabile $destinazione mettendo insieme tutti i pezzi per formare l'URL di redirect
    4. $destinazione = "http://www.ilmiosito.com/".$lingua."partefinaleindirizzo";
    
    // Eseguo il redirect
    5.Header ("Location: $destinazione");
    Quello che mi servirebbe è la sintassi corretta per la riga 3 che io ho scritto in ASP a titolo esemplificativo, il senso è prendi y caratteri da $ref a partire da x.
    Sai come si fa in PHP?

    Grazie.
    Jotto

    Come faccio a suddividere l'URL in queste due parti?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Prova a usare substr() mettendo come punto di inizio il conteggio dei caratteri che vuoi eliminare...

  5. #5

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