Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    5

    Gestione variabili PHP contenenti spazi

    Ciao a tutti. Ho un problema che non sono riuscito a risolvere, sono stato tutto il pomeriggio a smadonnare davanti al mio pc senza cavare un ragno da un buco...

    Devo passare una variabile in GET dalla pagina 'a' alla pagina 'b' contenente spazi (es. "AJ43U CLRK").
    Quando richiamo la suddetta variabile nella pagina 'b' mi restituisce sì la variabile, ma lascia soltanto uno spazio tra la prima parola e la seconda (es. "AJ43U CLKR").
    Non riesco a capire da cosa può dipendere tutto ciò e non sono riuscito a capire come poter risolvere la questione.

    Sono disperato, c'è qualcuno che può aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    prova a postare il codice...
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    5
    Questo è il codice nella prima pagina:
    Codice PHP:
    <?php
    $id 
    "G310       NERO ";
    echo 
    "<a href=\"pagina.php?articolo=$id\">Articolo</a>";
    ?>
    Questo è il codice nella seconda, dove richiamo la variabile:
    Codice PHP:
    <?php
    $titolo 
    $_GET['id'];
    echo 
    $titolo;
    ?>
    Quando stampo la variabile titolo non trovo tutti gli spazi, li cancella lasciandone solo uno.

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    utilizza urlencode: http://it2.php.net/urlencode
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    5
    ho provato a utilizzare urlencode ma, logicamente, inserisce un "+" per ogni spazio.

    Ho provato anche ricodificare con str_replace sostituendo i "+" con gli spazia ma ne restituisce uno solamente...

    Codice PHP:
    //CODICE NELLA PRIMA PAGINA

    <?php 
    $id 
    "G310       NERO "
    echo 
    "<a href=\"pagina.php?articolo=urlencode($id)\">Articolo</a>"
    ?> 

    //CODICE NELLA SECONDA PAGINA
    <?php 
    $titolo 
    str_replace("+"," ",$_GET['id']); 
    echo 
    $titolo
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    usa anche urldecode !

  7. #7
    Se fai un var_dump() della variabile ricevuta in get noterai che la lunghezza è giusta, per cui gli spazi ci sono.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    5
    Originariamente inviato da satifal
    Se fai un var_dump() della variabile ricevuta in get noterai che la lunghezza è giusta, per cui gli spazi ci sono.
    il problema che la query successiva, dove uso quella variabile, non stampa niente.

  9. #9
    Ho fatto una prova e nonostante in visualizzazione lo spazio risulta essere uno solo, se utilizzo la variabile all'interno di una query gli spazi ci sono ed i record vengono recuperati correttamente.

    P.S.
    Il problema potrebbe essere lo spazio finale piuttosto che quelli interni. Dato che MySQL potrebbe effettuare un trim degli spazi all'inizio ed alla fine di una stringa.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    5
    Ciao ragazzi. Nonostante tutto continua a non funzionare.
    Questa sera tenterò un'altra strada, se possibilie...

    Intanto grazie del vostro aiuto. Vi informerò se ci sono novità.

    Ciao.

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.