Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Contenuto tag HTML da modificare

    Salve, mi trovo nella situazione di dover salvare in database del testo generato in una HTMLArea. Vorrei strippare tutti i caratteri speciali ma salvare i tag html (altrimenti che uso a fare uan HTMLArea...). Ossia, se per esempio avessi

    codice:
    <div id="header"><h1>Viaggio in città</h1></div>
    Vorrei codificare la sola "à" di città in & agrave; e lasciare gli altri caratteri -delimitatori di tag e doppi apici di attributi di tag stessi- che altrimenti verrebbero trasformati nella relativa entità se usassi un semplice htmlentities per trasformare il tutto.

    Credo che mi servirebbe una regex che riconosca il contenuto dei tag html e a questo applicare htmlentities... il problema che ho è che sono una pippa colossale nello scrivere regex (così come in molte altre cose, ma sorvoliamo... ) e non so da che parte cominciare.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Bravo/a! Mi hai messo la pulce nell'orecchio e sono andato a guardare:

    TinyMCE che sto usando, lo fa! Ed infatti anche da me avviene la traduzione del testo in relative entità! Il problema si trasforma quindi.

    Quel che succede: ho la pagina con l'editor, al cui submit segue il display a video di una preview dell' "articolo".
    A questo punto, nella pagina di preview, ho una textarea invisibile in cui vado a copiare il testo completo dell'articolo, così come arriva in $_POST con un semplicissimo:

    codice:
    <textarea name="codice"><?php echo(stripslashes($_POST['codice']));?></textarea>
    A guardare il codice della pagina di preview, effettivamente il contenuto della textarea contiene la versione con html entities del testo dell'articolo.
    Adesso l'utente può fare il submit dalla pagina di preview verso la pagina che effettivamente raccoglie i dati e salva il tutto in database... e qui come per magia, le entità html vengono tradotte in caratteri ascii!!!
    A scanso di equivoci, nella pagina di salvataggio faccio

    codice:
    $codice = addslashes($_POST['codice']);
    e quindi l'opportuna query per il salvataggio.
    Perché avviene questa traduzione non voluta dal post dalla textarea nascosta verso la pagina di salvataggio?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ma in definitiva, da che cosa potrebbe dipendere questo problema? Non mi capacito del perché la prima volta che effettuo il post da TinyMCE alla pagina di preview le entità html siano ancora come entità html, e il secondo post verso la pagina di salvataggio invece incasini il tutto.
    Dove può essere l'inghippo?

    Provare per credere:
    codice:
    <?php if(isset($_POST['testo']) && $_POST['testo'] != "") {
      $testo = stripslashes($_POST['testo']);}
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
    </head>
    
    <body>
    <form action="submit.php" method="post">
    <textarea name="testo"><?php echo($testo);?></textarea><input type="submit" value="submit">
    </form>
    <div ><?php echo($testo);?></div>
    </body>
    </html>
    se nella textarea mettete & quot; al primo submit vi tornerà & quot; ma al secondo le virgolette! (chiaramente, guardando il codice html derivante)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.