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

    Problema con gli apici singoli

    Ciao a tutti

    ho un poroblema nuovo con gli apici singoli che non avevo previsto
    Un tale mi ha inserito una frase in un campo di una tabella mysql che ha un apice singolo escapato all'interno:

    città dell\'arte

    dentro la tabella l'apice c'è
    ma quando lo mostro a video non c'è +
    Sono sicura che l'apice c'è fin dentro al risultato della query
    infatti se stampo la riga del risultato della query con print_r() mi stampa l'apice non escapato.
    quindi l'apice si perde quando lo stampo a video con:
    echo "Tra le città dell'arte annoveriamo:'".$riga[city]."';
    in cui noterete la presenza di un apice singolo prima del doppoio in apertura e dopo il doppio in chiusura per evitare di perdere dei pezzi ma questo sistema mi perde comunque l'apice escapato con tutto quello che segue.
    Cosa faccio?
    Grazie

  2. #2
    Codice PHP:
    echo "Tra le città dell'arte annoveriamo: ".stripslashes($riga['city']); 
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  3. #3
    Originariamente inviato da Magicale
    Codice PHP:
    echo "Tra le città dell'arte annoveriamo: ".stripslashes($riga['city']); 
    si grazie l'avevo provato

    La virgoletta singola c'è ma tu hai tolto le virgolette singole prima e dopo le doppie e così perdo tutto il resto nel caso ci siano + parole .
    Se rimetto l'apice singolo prima del doppio in apertura e dopo il dopiio in chiusura mi perde l'apice singolo all'interno della frase che invece io voglio

    per es:

    Roma è una città d'arte e ha un bellissimo centro storico

    se metto le virgolette singole prima e dopo le doppie mi viene restituita la frase fino alla singola di d'arte perdendo così

    'arte e ha un bellissimo centro storico

    mentre se tolgo le virgolette singole prime e dopo le doppie perdo tutto tranne la parola Roma

  4. #4
    Potresti postare il risultato della print_r() e il blocco di codice che usi?
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  5. #5
    Originariamente inviato da Magicale
    Potresti postare il risultato della print_r() e il blocco di codice che usi?
    allora print_r mi restituisce:


    Array ( [0] => 7 [id] => 7 [1] => Allievo [qualifica] => Allievo [2] => D'Amore [cognome] => D'Amore [3] => Giovan Battista [nome] => Giovan Battista [4] => 00100 [cap] => 00100 [5] => Via Nicolino d'Ambrosio 6 [indirizzo] => Via Nicolino d'Ambrosio 6 [6] => Roma città dell'arte che ha bellissimi monumenti [citta] => Roma città dell'arte che ha bellissimi monumenti [7] => Roma [provincia] => Roma ecc......)

    Nei campi imput invece i nomi che contengono un apostrofo sono troncati prima dell'apostrofo.

    Il codice per mostrarli ed eventualmente editarli è:

    echo "<tr><td>Nome *</td><td><input type='text' name='nome' id='nome' size='50' value='".$riga[nome]."' /></td></tr>";
    echo "<tr><td>CAP *</td><td><input type='text' name='cap' id='cap' size='5' value=".$riga[cap]." /></td></tr>";
    echo "<tr><td>Indirizzo *</td><td><input type='text' name='indirizzo' id='indirizzo' size='50' value='".$riga[indirizzo]."' /></td></tr>";
    echo "<tr><td>Città *</td><td><input type='text' name='citta' id='citta' size='50' value='".$riga[citta]."' /></td></tr>";
    echo "<tr><td>Provincia *</td><td><input type='text' name='provincia' id='provincia' size='4' value=".$riga[provincia]." /></td></tr>";


    Se applico il siggerimento di cui sopra ovvero:

    echo "Tra le città dell'arte annoveriamo: ".stripslashes($riga['city']);

    mi mette l'apostrofo ma mi tronca tutte le altre parole dopo il primo spazio

    se metto lo stripslashes come da te consigliato e rimetto anche gli apici singoli prima e dopo gli apici doppi mi tronca la frase immediatamente prima dell'apostrofo ovvero mi lascia solo:
    Roma città dell

    SE L'ECHO $RIGA[CITY]; LO FACCIO FUORI DAL CAMPO IMPUT VA TUTTO BENE

  6. #6
    Se avessi detto subito che il testo andava inserito nel parametro value di un input, avremmo fatto prima

    Codice PHP:
    echo "<tr><td>Città *</td><td><input type='text' name='citta' id='citta' size='50' value='".htmlentities($riga['citta'],ENT_QUOTES)."' /></td></tr>"
    Ti consiglio di usare questo codice anche per gli altri campi dove potrebbero essere inseriti apici (ad es. cognome)

    Per la privacy dell'utente, spero che i dati dell'output della print_r che hai postato siano "finti", se non lo sono editali...
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  7. #7
    Originariamente inviato da Magicale
    Se avessi detto subito che il testo andava inserito nel parametro value di un input, avremmo fatto prima

    Codice PHP:
    echo "<tr><td>Città *</td><td><input type='text' name='citta' id='citta' size='50' value='".htmlentities($riga['citta'],ENT_QUOTES)."' /></td></tr>"
    Ti consiglio di usare questo codice anche per gli altri campi dove potrebbero essere inseriti apici (ad es. cognome)

    Per la privacy dell'utente, spero che i dati dell'output della print_r che hai postato siano "finti", se non lo sono editali...
    Grazie provo subito

    PS
    i dati sono finti e coperti da password

  8. #8
    PERFETTO

    Grazie

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.