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

    Problema con virgolette

    Ho questo script, che recupera il dato nome dal database e lo inserisce in un campo di testo per permettere all'utente di modificarlo.


    $nome = mysql_result($result_34,0,"nome");

    // OGGETTO NOME
    // // // // //

    if (isset($_POST['nome'])){
    $nome = stripslashes($_POST["nome"]);
    if (trim($nome)==""){
    $errore[]="Nome mancante.";
    echo "
    <td><label>Nome</label></td>
    <td><input type=\"text\" name=\"nome\" size=\"30\" maxlength=\"80\" class=\"error_field\" /></td>
    <td class=\"error_description\">Inserisci il nome.</td>";
    }else{
    echo "
    <td><label>Nome</label></td>
    <td><input type=\"text\" name=\"nome\" size=\"30\" maxlength=\"80\" value=\"$nome\" /></td>
    <td></td>";
    }
    }else{
    echo "
    <td><label>Nome</label></td>
    <td><input type=\"text\" name=\"nome\" size=\"30\" maxlength=\"80\" value=\"$nome\" /></td>
    <td></td>";
    }



    Quando viene inviato il modulo, e il nome viene recuperato con POST per essere rimesso nel campo di testo, se in esso è contenuto il carattere doppie virgolette ("), tutta la stringa dalle doppie virgolette in poi viene omessa.
    Il sito è in hosting su altervista.org e qui mi da problemi. In locale, invece, funzionava tutto perfettamente.
    Le ho provate tutte, ma non capisco quale sia il problema.

  2. #2
    prova a cercare:

    magic_quotes
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  3. #3
    C'è un'opzione di configurazione del PHP che abilita o disabilita l'aggiunta automatica di backslashes ai GET/POST/COOKIES (gpc) e devi tenerne conto invece di usare sempre stripslashes():

    Codice PHP:
    if (isset($_POST['nome'])) {
        
    $nome get_magic_quotes_gpc() ? stripslashes($_POST['nome']) : $_POST['nome'];
    ... 

  4. #4
    Purtroppo magic_quotes() non mi può aiutare.
    Ecco qual'è il problema:
    <input type="text" name="nome" size="30" maxlength="80" value="virg" olette ap'ice" />
    Il php stampa il campo di testo e nella proprietà value stampa anche una virgoletta.
    Posso sistemare il problema???

  5. #5
    certo ...

    direi che con

    codice:
    if (get_magic_quotes_gpc())
    {
        foreach($_GET as $key => value)
            $_GET[$key] = stripslashes($value);
    
        foreach($_POST as $key => value)
            $_POST[$key] = stripslashes($value);
    
        foreach($_COOKIE as $key => value)
            $_COOKIE[$key] = stripslashes($value);
    }
    Con questo codice ti assicuri che tutti i valori che ricevi siano apposto

    dopo di che, quando utilizzi l'echo o comunque invii il valore al browser devi utilizzare htmlentities che convertete i caratteri in entità

    www.php.net/get_magic_quote_gpc
    www.php.net/stripslashes
    www.php.net/htmlentities
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    Ci sono. Bastava usare htmlentities!
    Grazie a tutti.

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.