Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241

    htmlspecialchars o htmlentities oppure...

    Devo inviare tramite modulo dei dati che possono avere anche apici.

    codice:
    <html>
      <body>
        <?php $dato = isset($_POST['dato']) ? $_POST['dato'] : "L'Aquila";?>
        <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
          <input type='text' name='dato' value='<?php echo $dato;?>' />
          <input type='submit' />
        </form>
      </body>
    </html>
    Purtroppo mi sono accorto che in quel caso, nel momento in cui viene interpretato il codice PHP, il valore del dato risulta essere solo 'L' appunto per l'apostrofo che viene considerato come apice di chiusura. In seguito a ricerche ho scoperto che passando $dato come parametro della funzione htmlspecialchars (con secondo parametro ENT_QUOTES) trasformo l'apice nel codice &#039 e riesco a trasmettere il dato intero. Stessa cosa con htmlentities. Ora mi chiedevo che differenza c'è tra le due funzioni? E quale è più indicata per il mio caso? All'inizio credevo di dover utilizzare le funzioni che (ahimè) ho quasi mai utilizzato addslashes e stripslashes, ma non mi servono nemmeno quando dovrò trasferire i dati nel database visto che come scritto nella pillola: Come gestire correttamente l'escape delle stringhe da inserire in un db utilizzerò la funzione mysql_real_escape_string, possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    up

  4. #4
    la differenza tra le due funzioni htmlentities e htmlspecialchars e' che una trasforma tutte le entita' che hanno un corrispettivo in html e l'altra solo i caratteri speciali.

    http://it2.php.net/manual/it/function.htmlentities.php
    http://it2.php.net/manual/it/functio...ecialchars.php

    guarda anche gli esempi degli utenti.

    http://it2.php.net/manual/it/functio...ape-string.php

    il real escape string tiene conto del character set della connessione e si preoccupa solo di mettere il carattere di escape dove serve, carattere che verra' tolto nella scrittura su tabella. I caratteri speciali html non devono essere tolti... ovviamente alcuni caratteri di controllo potranno essere gli stessi e se sono convertiti in entita' html non necessiteranno del carattere di escape per SQL. Mysql_real_escape_string si occupa solo dei caratteri di controllo che possono dare fastidio all'inserimento delle stringhe nel db.

    Quindi uno dura il tempo dell'inserimento nel db, l'altro e' una modifica permanente che puo' essere ripristinata con la corrispettiva funzione di decode.

    Sono andato a braccio e spero di non avere detto cavolate eccessive....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.