Visualizzazione risultati 1 fino 19 di 19

Discussione: Ripulire url da: $_server['query_string']

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito Ripulire url da: $_server['query_string']

    Salve ragazzi!
    Sto usando questo codice per il cambio lingua nella mia pagina (vedi link in firma).
    Il problema è che ad ogni click sulle bandierine si aggiunge: "&language=lingua"
    Esempio se clicco prima su en e poi su it
    hxxp;//mionick,altervista,org/index.php?&language=english&language=italian
    Come posso eliminare queste stringe dall'url rimanendo comunque sulla stessa pagina?
    Ecco il codice:
    Codice PHP:
    $urlit = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&language=italian';
    $urlen = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&language=english';

    $content = "
    <tr align=\"center\"><td>
    <a href=\"
    $urlit\"><img title=\"Italian\" src=\"/mkportal/templates/default/images/it.gif\" alt=\"Italian\" /></a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href=\"
    $urlen\"><img title=\"English\" src=\"/mkportal/templates/default/images/en.gif\" alt=\"English\" /></a>
    </td></tr>"
    ;
    Grazie anticipatamente, DarkWolf
    Ultima modifica di darkwolf : 25-03-2008 alle ore 16.43.38
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  2. #2
    Guest

    Predefinito

    Hai provato a togliere:
    Codice:
    '.$_SERVER['QUERY_STRING'].'
    ???Ciao! :)

  3. #3
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    beh se tolgo query_string ritorna alla home quindi che me ne faccio
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  4. #4
    Guest

    Predefinito

    l'ho buttata giu al volo, prova cosi :

    Codice PHP:
    if ( isset ( $_SERVER['QUERY_STRING'] ) )
    {
    $query_string = eregi_replace ( "language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    $query_sep = "&amp;";
    }
    else
    {
    $query_string = "";
    $query_sep = "";
    }


    $urlit = $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=italian';
    $urlen = $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=english';

    $content = "
    <tr align=\"center\"><td>
    <a href=\"
    $urlit\"><img title=\"Italian\" src=\"/mkportal/templates/default/images/it.gif\" alt=\"Italian\" /></a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href=\"
    $urlen\"><img title=\"English\" src=\"/mkportal/templates/default/images/en.gif\" alt=\"English\" /></a>
    </td></tr>"
    ;
    praticamente se sono settate variabili toglie le eventuali due variabili lang se no amen ^^
    Ultima modifica di ilpcportal : 25-03-2008 alle ore 17.18.28

  5. #5
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    l'ho buttata giu al volo, prova cosi :
    ...
    praticamente se sono settate variabili toglie le eventuali due variabili lang se no amen ^^
    va già maglio, grazie!
    Dagli un occhiata please e capirai dov'è il difetto
    &&&language=english
    -
    PS per quanto mi riguarda può (anzi sarebbe anche meglio) eliminare totalmente la variabile dall'url (cioè solo l'url che però cambia la lingua )
    Ultima modifica di darkwolf : 25-03-2008 alle ore 17.24.47
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  6. #6
    Guest

    Predefinito

    mhm effettivamente se c'e' settato solo la variabile lang ci piazza una & in piu :P

    prova a pulirla cosi :

    Codice PHP:
    if ( isset ( $_SERVER['QUERY_STRING'] ) )
    {
    $query_string = eregi_replace ( "language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    $query_sep = "&amp;";
    }
    else
    {
    $query_string = "";
    $query_sep = "";
    }


    $urlit = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . ';language=italian' );
    $urlen = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=english' );

    $content = "
    <tr align=\"center\"><td>
    <a href=\"
    $urlit\"><img title=\"Italian\" src=\"/mkportal/templates/default/images/it.gif\" alt=\"Italian\" /></a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href=\"
    $urlen\"><img title=\"English\" src=\"/mkportal/templates/default/images/en.gif\" alt=\"English\" /></a>
    </td></tr>"
    ;
    edit no non funzionerebbe bene sulle altre pagine dammi 2 minutini ^^
    Ultima modifica di ilpcportal : 25-03-2008 alle ore 17.26.06

  7. #7
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    mhm effettivamente se c'e' settato solo la variabile lang ci piazza una & in piu :P...
    edit no non funzionerebbe bene sulle altre pagine dammi 2 minutini ^^
    Grazie mille, molto gentile
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  8. #8
    Guest

    Predefinito

    Se non ho visto male nella pagina iniziale la sostituzione per "lang=xxx" va bene ma nelle altre va fatta la sostituzione a "&lang=xxx" se no tolgo solo lang e non la & messa prima quindi si allunga di 2 righe ma dovrebbe andare.

    Codice PHP:
    if ( isset ( $_SERVER['QUERY_STRING'] ) )
    {
    $query_string = eregi_replace ( "&language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "&language=english" , "" , $query_string );
    $query_string = eregi_replace ( "language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    $query_sep = "&amp;";
    }
    else
    {
    $query_string = "";
    $query_sep = "";
    }


    $urlit = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=italian' );
    $urlen = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=english' );

    $content = "
    <tr align=\"center\"><td>
    <a href=\"
    $urlit\"><img title=\"Italian\" src=\"/mkportal/templates/default/images/it.gif\" alt=\"Italian\" /></a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href=\"
    $urlen\"><img title=\"English\" src=\"/mkportal/templates/default/images/en.gif\" alt=\"English\" /></a>
    </td></tr>"
    ;

  9. #9
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    Se non ho visto male nella pagina iniziale la...
    In alto nella pagina mi genera due errori
    Codice PHP:
    Warning: eregi_replace() [function.eregi-replace]: REG_BADRPT in /membri/darkwolf/mkportal/blocks/Lingua-Language.php on line 45

    Warning
    : eregi_replace() [function.eregi-replace]: REG_BADRPT in /membri/darkwolf/mkportal/blocks/Lingua-Language.php on line 46
    45 e 46 sono rispettivamente:
    Codice PHP:
    $urlit = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=italian' );
    $urlen = eregi_replace ( "?&" , "?" , $_SERVER['PHP_SELF'].'?' . $query_string . $query_sep . 'language=english' );
    e non traduce...
    Ultima modifica di darkwolf : 25-03-2008 alle ore 17.36.11
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  10. #10
    Guest

    Predefinito

    Forse non gli piace che genero la stringa nella funzione anche se mi sembra strano...prova a sostituirlo cosi :

    Codice PHP:
    $urlit = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=italian";
    $urlen = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=english";
    $urlit = eregi_replace ( "\?\&" , "\?" , $urlit );
    $urlen = eregi_replace ( "\?\&" , "\?" , $urlen );

  11. #11
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    Forse non gli piace che genero la stringa nella funzione anche se mi sembra strano...prova a sostituirlo cosi :
    Fatto, genera un url "errato" solo nella home
    cioè così:
    /index.php%5C?amp;language=english
    nelle altre c'è sempre il multi "&"
    Ultima modifica di darkwolf : 25-03-2008 alle ore 17.51.20
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  12. #12
    Guest

    Predefinito

    Potresti mettere un

    Codice PHP:
    print $_SERVER['QUERY_STRING']."<br>";
    e farmi vedere nella home e in una paina a caso cosa contiene la variabile?

  13. #13
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    <?php
    print $_SERVER['QUERY_STRING']."<br>";
    ?>
    http://darkwolf.altervista.org/print.php
    o lo volevi senza mettere <?php?
    boh in tal caso comunque: http://darkwolf.altervista.org/file.php
    Ultima modifica di darkwolf : 25-03-2008 alle ore 17.59.08
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  14. #14
    Guest

    Predefinito

    ok la stringa della home dovrebbe essere cosi : "" (vuota) mentre quelle delle altre gnagna=xxx .... quindi vedi cosi cosa ti da :)

    Codice PHP:
    $query_string = "";
    $query_sep = "";

    if ( isset (
    $_SERVER['QUERY_STRING'] ) )
    {
    $query_string = eregi_replace ( "&language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "&language=english" , "" , $query_string );
    $query_string = eregi_replace ( "language=italian" , "" , $query_string );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    $query_sep = "&amp;";
    }

    $urlit = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=italian";
    $urlen = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=english";

    $content = "
    <tr align=\"center\"><td>
    <a href=\"
    $urlit\"><img title=\"Italian\" src=\"/mkportal/templates/default/images/it.gif\" alt=\"Italian\" /></a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href=\"
    $urlen\"><img title=\"English\" src=\"/mkportal/templates/default/images/en.gif\" alt=\"English\" /></a>
    </td></tr>"
    ;

  15. #15
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    ok la stringa della home dovrebbe essere cosi : "" (vuota) mentre quelle delle altre gnagna=xxx .... quindi vedi cosi cosa ti da :)
    Io onestamente non c'ho capito granché
    sopratutto:
    $query_string = eregi_replace ( "&language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "&language=english" , "" , $query_string );
    $query_string = eregi_replace ( "language=italian" , "" , $query_string );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    Cioè perché uno di un modo e tre nell'altro???
    ma sembra tutto ok
    Grazie mille davvero
    Ultima modifica di darkwolf : 19-05-2008 alle ore 17.48.17 Motivo: Eliminata parte inutile in quanto errore mio, lo script sembra perfetto così com'è!
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  16. #16
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Perdonatemi il doppio post, non è un up in quanto la situazione era risolta ma solo adesso ho notato un "buggetto" e vorrei chiedere a "ilpcportal", o chiunque altro possa risolvere, se può aiutarmi ancora una volta.
    vedi qui: http://validator.w3.org/check?uri=ht...00=1&verbose=1
    riguarda la pagina dei download la quale da errore w3c, se disabilito il blocco lingua la pagina è validata.
    La riga interessata credo sia questa:
    /index.php?ind=downloads&op=section_view&idev=
    e:
    /index.php?ind=downloads&op=entry_view&iden=
    Grazie, DarkWolf
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


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

    Predefinito

    credo che bastasse memorizzarla in un variabile di sessione..

    [code]

    pagina.php?var1=pagina&lang=ing

    e gli aggiungi alla pagina che include tutte le altre (index di solito)

    session_start();//allinizio prima di tutto il resto
    //poi
    $SESSION['lang'] = $_GET['lang'];

    e poi lavori su $SESSION['lang']; per gestire la lingua

    anche se i link delle bandiere per cambiare la lingua devi lasciarle statiche con lang=ita per l'italiano e lang=ing per inglese cosi che un utente possa risettare la varoiabile di sessione..

    ciao
    "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

  18. #18
    Guest

    Predefinito

    Forse dico una stupidata (a 'sta ora facile...)
    pero' (non ho visto le tue pagine in questione) oltre all'inserire $lang dentro il file di sessione, puoi anche passarlo alle altre pagine tramite un POST con hidden input cosi' fai
    Codice PHP:
    if (isset($_POST['lang']) && $_POST['lang']!="")
    {
    ecc ecc ecc} else {$setta_linguaggio_di_default}
    e non diventi più scemo con la validazione dell'output html e/o url piene di ampersands.

    E comunque il validatore, a rileggerlo, in pratica ci mette due o tre lenzuolate per dirti che, in sintesi, le ampersand "crude" all'interno degli a href="ecc.ecc" non gli vanno giù e che secondo lui le devi da trasformà in entità html (&amp;)

    Peggio di mia zia, direi.

    Va be' meglio che vado a nanna se no mi sogno pacman che si mangia dollari, parentesi graffe e punti e virgola (i miei typos "fissi" in php...)

  19. #19
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Attualmente ho risolto alla buona richiamando gli url dentro javascript:
    Codice PHP:
    <?php
    /*
    +--------------------------------------------------------------------------
    | > Copy e info varie... (eliminati per ridurre il post)
    +--------------------------------------------------------------------------
    */
    if (!defined("IN_MKP")) {
    die (
    "Sorry !! You cannot access this file directly.");
    }

    global
    $MK_TEMPLATE;

    $query_string = "";
    $query_sep = "";

    if ( isset (
    $_SERVER['QUERY_STRING'] ) )
    {
    $query_string = eregi_replace ( "&language=italian" , "" , $_SERVER['QUERY_STRING'] );
    $query_string = eregi_replace ( "&language=english" , "" , $query_string );
    $query_string = eregi_replace ( "language=italian" , "" , $query_string );
    $query_string = eregi_replace ( "language=english" , "" , $query_string );
    $query_sep = "&amp;";
    }

    $urlit = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=italian";
    $urlen = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=english";

    //si=Bandierine Animate - no=Bandierine Statiche
    $iconeanimate = "si";

    if (
    $iconeanimate == "si")
    {
    $img_it = "<img title=\"Italian\" src=\"/mkportal/templates/default/images/it_an.gif\" alt=\"Italian\" height=\"16\" width=\"22\" />";
    $img_en = "<img title=\"English\" src=\"/mkportal/templates/default/images/en_an.gif\" alt=\"English\" height=\"16\" width=\"22\" />";
    }
    else
    {
    $img_it = "<img title=\"Italian\" src=\"/mkportal/templates/default/images/it_st.gif\" alt=\"Italian\" height=\"14\" width=\"20\" />";
    $img_en = "<img title=\"English\" src=\"/mkportal/templates/default/images/en_st.gif\" alt=\"English\" height=\"14\" width=\"20\" />";
    }

    //Gentilmente non eliminare
    $copy = "<!-- \"By DarkWolf - http://darkwolf.altervista.org\" -->";

    //Fix Per la validazione non risolta dell'area download
    $content = "<tr><td align=\"right\">
    <script type=\"text/javascript\">
    <!--
    document.write('<a href=\"
    $urlit\">$img_it</a>');
    //-->
    </script>
    </td><td width=\"20%\">
    $copy</td>
    <td align=\"left\">
    <script type=\"text/javascript\">
    <!--
    document.write('<a href=\"
    $urlen\">$img_en</a>');
    //-->
    </script>
    </td></tr>"
    ;

    ?>
    Sperando in un futuro rimedio "pulito" seguendo la linea iniziale che funziona alla grande
    (potrei anche lasciare tutto così ma non darei il cambio lingua agli utenti con js disabilitato)
    -
    Edit: risolto definitivamente cambiando semplicemente:
    Codice PHP:
    $urlit = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=italian";
    $urlen = $_SERVER['PHP_SELF'] . "?" . $query_string . $query_sep . "language=english";
    in:
    Codice PHP:
    $urlit = $_SERVER['PHP_SELF'] . "?" . htmlentities($query_string) . $query_sep . "language=italian";
    $urlen = $_SERVER['PHP_SELF'] . "?" . htmlentities($query_string) . $query_sep . "language=english";
    Ero indeciso se usare: htmlentities oppure htmlspecialchars ma in questo caso credo vadano benissimo entrambi
    Ultima modifica di darkwolf : 03-06-2008 alle ore 01.13.47
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


Regole di scrittura

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