Visualizzazione dei risultati da 1 a 9 su 9

Discussione: stringa troncata

  1. #1
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47

    stringa troncata

    Ciao a tutti.
    Ho un problema con del testo che inserisco in un database. probabilmente dovevo andare su un'altro forum, ma pensavo che quello di PHP fosse il più adatto, in quanto probabilmente devo usare delle funzioni sulla stringa.

    Problema:
    creo una query per inserire una stringa.
    Se la stringa per esempio è "ciao il mio nome è filippo" la stringa mi viene salvata così "ciao il mio nome ".
    cosa significa? che la stringa mi si tronca appena trova una lettera accentata.

    inoltre ho provato ad utilizzare str_replace per cambiare le è in è e tutte le altre lettere accentate, ma oltretutto la stringa rimane invariata e quindi nel database mi viene salvata la stringa "ciao il mio nome "

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Hai controllato la lunghezza del campo ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    è un campo text. comunque ho fatto varie prove con testi corti e mi si tronca solo sulle lettere accentate. ho provato a convertire la stringa con htmlentities, ma addirittura mi sparisce il testo.

    EDIT: ha sempre funzionato, soltanto da quando sono passato dalle funzioni mysql a quelle mysqli mi sta facendo questo problema.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Strano. Mai sentito parlare di questo problema. Per caso hai provato a stampare a video la query prima di eseguirla ?

    PS : Sono passato questa settimana da mysql a mysqli sul mio sito e non ho riscontrato tale problema (la lingua del mio sito è il Francese che vanta non so quante lettere accentate).
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova 2 cose:
    - passa la stringa a mysqli_real_escape_string()
    - nella connessione al db specifia il charset giusto (leggi il link che ho in firma sui caratteri strani)

  6. #6
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    AGGIORNAMENTO:
    la stringa ha problemi ancora prima di arrivare alla query.
    codice:
    echo "<br />".$_POST['descrizione'];
    $_POST['descrizione'] = htmlentities($_POST['descrizione']);
    echo "<br />".$_POST['descrizione'];
    1) utilizzando htmlentities o htmlspecialchars: finchè non uso caratteri accentati tutto ok, appena uso caratteri accentati la stringa il secondo echo non lo visualizzo => conseguenza la query salva una stringa vuota
    2) utilizzando altri metodi o niente: finchè non uso caratteri accentati tutto ok, appena uso caratteri accentati la stringa mi si tronca dal carattere accentato - compreso - in poi

    Alhazred: ora provo anche con quella funzione e ti aggiorno, grazie.
    EDIT: con mysqli_real_escape_string() il secondo echo lo vedo ma nel db mi memorizza la stringa troncata.
    Ultima modifica di vegasy; 08-02-2016 a 10:32

  7. #7
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    Questa è la query (per quanto possa servire):
    codice:
    UPDATE proprieta 
    SET id='30', 
    timestamp='2016-01-30 08:58:38',  
    titolo='Capannone Nuovo', 
    comune='San Miniato', 
    provincia='PI',  rif='28', 
    descrizione='asdasdsadad_òàùòàòàù', 
    tipologia='commerciale',  
    prezzo='330000', 
    contratto='vendita', 
    superficie='390', 
    locali='4',  
    bagni='3', 
    ce='F', 
    riscaldamento='autonomo', 
    stato='Nuovo',  
    box_auto='NO', 
    giardino='SI', 
    ascensore='NO', 
    balcone='NO',  
    arredato='NO', 
    terrazzo='NO', 
    evidenza='SI', 
    foto1='28_1.JPG',  
    foto2='28_2.JPG', 
    foto3='', foto4='', 
    foto5='', foto6='', 
    foto7='',  foto8='', 
    foto9='' 
    WHERE rif='28'
    se riesco a far arrivare la stringa con i caratteri, questo è quello che genero

  8. #8
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    FERMI TUTTI!!! ho ricontrollato il charset. non avevo impostato l'UTF-8 anche per l'HEAD. cavoli ne ero così convinto che neanche l'avevo ricontrollato.. scusate la sbadataggine :P
    RISOLTO

  9. #9
    Comunque NON usare htmlentites per salvare stringhe in un database, htmlentities e' una funzione HTML e per quello dev'essere usata.

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.