Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    aiuto per ulencode e urldecode

    Ciao a tutti, ho un form in cui ci sono dei campi obbligatori, se il campo non viene inserito mi da un messaggio tramite questo codice

    if($citta === " ")
    {
    $messaggio = urlencode("Non hai inserito la città");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    per comodità insieme al messaggio di errore ricarico anche il form però in questo caso essendoci la a accentata mi visualizza ovviamente anche la entity à, come devo fare per usare ulrdecode? ho provato ad inserirlo all'header racchiudendovi $messaggio non mi da alcun errore ma mi visualizza tutto il messaggio tranne la a accentata

    if($citta === " ")
    {
    $messaggio = urlencode("Non hai inserito la città");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.urldecode($messaggio));
    exit;
    }

    come posso fare per risolvere?

    grazie

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa, ma da qualche parte avrai la stampa del messaggio, no? li devi usare urldecode.
    Dovresti avere qualcosa del genere:
    Codice PHP:
    if($citta === " ")
        {
            
    $messaggio urlencode("Non hai inserito la città");
            
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
            exit();
        }
    ...
    if(isset(
    $_GET['msg'])){
       echo 
    urldecode($_GET['msg']);


  3. #3
    Quello è il problema il messaggio compare nella stessa pagina del form e non in una pagina diversa che mostra dei risultati, comunque ho provato come mi hai suggerito ma non cambia nulla, esce sempre il codice della entity.

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    posta il codice... dove fai urlencode e dove urldecode

  5. #5
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    urlencode serve a codificare un parametro della query string affichè possa essere utilizzato in un url. urldecode non è necessario per recuperare il contenuto di un parametro della query string dell'url.

    Posto un esempio affichè chiarisca:
    (salva il file come testo codficato utf-8)
    Codice PHP:
    <!DOCTYPE html>
    <html>
        <head>
            <title>urlencode</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width">
        </head>
        <body>
            <?php
                
    if(isset($_GET['msg']))
                    echo 
    "Messaggio Ricevuto: $_GET[msg]";
                
    $messaggio "Questa è la mia citt&agrave;";
            
    ?>
            <div><a href="index.php?msg=<?php echo urlencode($messaggio)?>">Cliccami</a></div>
        </body>
    </html>
    La url del link cliccami sarà:
    codice:
    http://localhost/index.php?msg=Questa+%C3%A8+la+mia+citt%26agrave%3B
    L'output della pagina dopo aver cliccato il link cliccami:
    codice:
    Messaggio Ricevuto: Questa è la mia città        
    Cliccami

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  6. #6
    grazie ad entrambe ho capito dov'è il problema, è qui ma non so come risolverlo

    Codice PHP:
    function mostra_form()
    {
        
    // mostro un eventuale messaggio
        
    if(isset($_GET['msg']))
            echo 
    '<b>'.htmlentities($_GET['msg']).'</b><br /><br />'

    se elimino htmlentities visualizza correttamente il carattere accentato, però immagino che per una questione di sicurezza non posso eliminarlo quindi come posso fare? ho visto che potrei usare htmlspecialchars() ma converiterebbe solo i caratteri speciali, html_entity_decode() fa il lavoro opposto ad htmlentities() ed ho visto che funziona ma a questo punto mi chiedo perchè non sia stato usato? (il codice non è mio l'ho preso da una guida in rete che lo forniva come esempio di integrazione tra php e mysql ed io lo uso per fare pratica con i due linguaggi adattandolo di volta in volta)

  7. #7
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Quote Originariamente inviata da Rebeltag Visualizza il messaggio
    ... se elimino htmlentities visualizza correttamente il carattere accentato, però immagino che per una questione di sicurezza non posso eliminarlo ...
    Immagini male. Di quale sicurezza parli? Tira via qell'htmlentities. In questo caso non ti occorre neanche html_entity_decode

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

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.