Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629

    problema con apostrofo su stringa da visualizzare

    Ciao a tutti, come da titolo, ho un problema a visualizzare all'interno di un campo text la mia stringa che contiene apostrofi. Ho già provato con le soluzioni stripslashes e addslashes ma il problema persiste. Ecco il mio codice...

    Codice PHP:
    <?php

                        
    echo "<tr>

                                <td>

                                    Note <input type='text' name='note' size='100' value='"
    .$riga["Note"]."'>

                                </td>

                            </tr>"
    ;

                    
    ?>
    Come credo che si possa vedere, il problema sorge dal fatto che la stringa è inserita all'interno dell'attributo value dell'input text, quindi riconosce l'apostrofo all'interno della stringa come la chiusura dell'attributo stesso...qualcuno potrebbe darmi una soluzione migliore?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    Re: problema con apostrofo su stringa da visualizzare

    prova così

    value='".$riga['Note']."'>
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  3. #3
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    utilizza htmlspecialchars.

  4. #4
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    grazie mille con htmlspecialchars ho risolto

  5. #5
    Buongiorno, ho anche io un problma sulle stringhe con apostrofo. Devo poterle memorizzare (attraverso un campo descrizione presente in un form) su un DB MySQL.
    Ho provato in diversi modi, con la funzione addslashes(), con str_replace(), e ora, dopo aver letto il questo post, con htmlspecialchars().
    Ottengo sempre un errore.

    Codice PHP:
    $sql="UPDATE progetti SET anno_rif='$_POST[anno]', committente='$_POST[committente]', data_incarico='$data_inc', data_consegna='$data_cons', dettaglio_progetto='$_POST[dettaglio_progetto]', data_inserimento=now()
    WHERE codice_progetto='
    $_POST[progetto]'"
    I campi interessati sono:
    committente='$_POST[committente]'
    dettaglio_progetto='$_POST[dettaglio_progetto]'

    ho provato con
    Codice PHP:
    committente=htmlspecialchars('$_POST[committente]'
    Cosa sbaglio?

  6. #6
    Buongiorno, ho anche io un problma sulle stringhe con apostrofo. Devo poterle memorizzare (attraverso un campo descrizione presente in un form) su un DB MySQL.
    Ho provato in diversi modi, con la funzione addslashes(), con str_replace(), e ora, dopo aver letto il questo post, con htmlspecialchars().
    Ottengo sempre un errore.

    [ PHP ]$sql="UPDATE progetti SET anno_rif='$_POST[anno]', committente='$_POST[committente]', data_incarico='$data_inc', data_consegna='$data_cons', dettaglio_progetto='$_POST[dettaglio_progetto]', data_inserimento=now()
    WHERE codice_progetto='$_POST[progetto]'";[ /PHP ]

    I campi interessati sono:
    committente='$_POST[committente]'
    dettaglio_progetto='$_POST[dettaglio_progetto]'

    ho provato con
    [ PHP ]committente=htmlspecialchars('$_POST[committente]')[ /PHP ]

    Cosa sbaglio?

  7. #7
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Utilizza mysql_real_escape_string
    Codice PHP:
    "... committente='".mysql_real_escape_string($_POST['var'])."' ...." 

  8. #8
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, io ho eliminato questo problema inserendo nel database lo slash dopo l'apostrofo...in questo modo

    Codice PHP:
    committente=addslashes($_POST[committente]); 

  9. #9
    Grazie ad entrambi per l'aiuto

    Ho provato con

    Codice PHP:
    committente='".mysql_real_escape_string($_POST['committente'])."' 
    e ottengo lo stesso problema che ottenevo con

    Codice PHP:
    committente=addslashes($_POST[committente]); 
    riesco a scrivere sul DB (pur ottenendo l'errore "NULL") se richiamo tutto il DB su un form tabellare, va ancora bene, riesco a leggere la stringa con l'apostrofo:

    Codice PHP:
    ....
    echo 
    "<td ><a href='dettagli_progetto.php?codp=".$row['codice_progetto']."&annor=".$row['anno_rif']."&commit=".$row['committente']."&dinc=".$row['data_incarico']."&dcons=".$row['data_consegna']."&dettp=".$row['dettaglio_progetto']."'>"$row['codice_progetto'] . "</td>";
    echo 
    "<td style='width:150px;  padding:0; margin:0; text-align:left;'><div style='width:170px; height:50px; overflow-x:hidden; overflow-y:auto;'>"$row['committente'] . "</td>";
    echo 
    "<td>" data_it($row['data_incarico']) . "</td>";
    ... 
    Come vedete il primo campo del mio DB è un link, cliccandoci, tutti i campi della tabella vengono riportati su un nuovo form per la modifica attraverso l'istruzione

    Codice PHP:
    ...
    <div><label>Committente</label> <input type="text" size="52" name="committente" value="<?php echo $_GET['commit']; ?>"></div>
    ...
    e in questo modo riesco a popolare tutti i campi fino a quello che contiene la stringa con l'apostrofo, quest'ultimo campo fino alla lettera che precede l'apostrofo, proprio come se lo interpretasse come carattere di fine stringa.

  10. #10
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    per il testo dentro l'input, utilizzare htmlspecialchars.
    per l'url, utilizzare urlencode.
    per le query, mysql_real_escape_string.

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.