Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    129

    problema apici e varchar

    ciao ragazzi sono alle prese con un problema di apici, per controllare i fati inseriti nel form utilizzo questa sintassi:

    Codice PHP:
    mysql_real_escape_string(htmlentities($_POST['age'])) 
    e inserisco tutto in mysql, funziona tutto bene se il campo sql è di tipo TEXT ma per i varchar non funziona, come mai?

  2. #2
    Scusa ma htmlentities() viene utilizzata quando devi visualizzare a video (cioé con sintassi HTML) nel modo corretto il valore di una stringa.

    Nel tuo caso devi solo fare

    mysql_real_escape_string($_POST['age'])

  3. #3
    beh htmlentities può essere usato o in lettura da db o prima dell'inserimento, cambia poco.. io preferisco prima ma non credo che sia questo il problema, invece il problema credo sia nel fatto che sul mio hosting il magic quote è settato a on (!!!!), il che rende inutile il comando mysql_real_escape_string, la cosa buffa comunque è che i tipi varchar e text si comportano in maniera differente, non mi è ancora chiaro il motivo..

    ops scusate mi sono loggato a lavoro con l'account del collega, ma sono sempre hhichnos


  4. #4
    OK, però non vedo il motivo di dover convertire dei caratteri in entità HTML, a meno che tu non stia scrivendo nel DB dei tag html.

    Comunque, visto che magic quote è ad on, prova con

    mysql_real_escape_string(htmlentities(stripslashes ($_POST['age'])));

    Ma ke tipo di errore ti dà con varchar? Non è ke per caso non ce la fai con la lunghezza del campo? Infatti considera che quando utilizzi htmlentities la tua stringa può aumentare di caratteri. Ad esempio il tag [b] viene convertito in <b> che sono ben 6 caratteri in più.

  5. #5
    nel db vengono inseriti commenti da parte degli utenti, quindi non si sa mai...

    il problema che mi da è che nel caso di varchar viene troncato il risultato:
    esempio:

    l'albero

    (con un select eseguito su varchar ottengo solo i caratteri prima dell'apice "l")
    con il campo text ottengo la stringa completa...

  6. #6
    Ti da errore pure come ti ho suggerito in precedenza:

    mysql_real_escape_string(htmlentities(stripslashes ($_POST['age'])));

  7. #7
    ora non mi da errore perchè avendo il magic quote attivato non ha più senso usare il mysql_real_escape_string (o no?), però volevo capire la differenza fra campi varchar e test

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.