Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: maledetto apostrofo...

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    maledetto apostrofo...

    Ho una serie di campi di input, del tipo textarea, a cui è applicato l'editor nicEditor (JS). Il DOM della pagina è <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ed il charset è utf-8.
    Il form che contiene questi campi, all'invio trasmette i dati ad una pagina php, che deve registrarli su database.
    Il problema - che non riesco a risolvere - nasce quando nel testo c'è un apostrofo.
    Ovviamente, la prima cosa che avevo fatto, è stata applicare alla variabile ricevuta dalla pagina php la funzione addslashes, così:
    Codice PHP:
    $mio_testo $_POST["mio_campo"];
    $mio_testo addslashes($mio_testo); 
    Ma quando la pagina agisce restituisce un errore, relativo alla presenza del primo apostrofo presente nel testo, come se la funzione addslashes non facesse nulla.
    Ho provato anche utilizzando la funzione str_replace, così:
    $mio_testo = str_replace("'","\\'",$mio_testo);
    ma sempre senza alcun risultato (diverso).
    Se invece, digito la backslash direttamente nel campo testo, prima dell'apostrofo, tutto funziona bene!
    Come posso risolvere?!?...
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    se stampi a video $_POST["mio_campo"] vedi qualche carattere particolare o qualcosa di anomalo?

    fai una stampa prima e dopo l'addslashes e vedi le differenze, vedi se il backslash viene inserito correttamente...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Già fatto, faccio un echo prima della funzione di UPDATE sul database, ed il testo (a video) appare tutto ok, con il backslash prima dell'apostrofo...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    ok allora copia e incolla la stringa ed eseguila direttamente nel db, forse hai solamente scritto male la query...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    No, perchè se tolgo gli apostrofi, o - come dicevo nel primo post - metto la backslash direttamente nel campo testo, l'UPDATE funziona regolarmente...
    metatad
    graphic & web design

  6. #6
    Posta codice e messaggio d'errore.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Codice PHP:
    require "config.php"
    $link mysql_connect($host$dbuser$dbpass)     
    or die(
    "Impossibile connettersi al database");
     
    mysql_select_db($dbname)     
    or die(
    "Impossibile selezionare il database");     
    mysql_query("set names 'utf8'");
    (...)
    $txt_it $_POST["txt_it"];
    $txt_it addslashes($descr_it);
    echo 
    $txt_it;
    $query "UPDATE `mytable` SET 
      txt_it= '
    $txt_it'
      WHERE id = '
    $id'";
    $result mysql_query($query)
        or die(
    mysql_error()); 
    Questo è il php.
    E questo è ciò che restituisce la pagina:
    Testo di prova per vedere come funziona l\\'apostrofo
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'apostrofo
    (La prima riga è l'echo)
    metatad
    graphic & web design

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    se modifichi così funziona?


    Codice PHP:
    $query "UPDATE `mytable` SET 
      txt_it= \"
    $txt_it\"
      WHERE id = \"
    $id\""

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Fammi capire: a che serve mettere le backslash nel codice della query???
    metatad
    graphic & web design

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    ...a parte che l'addslashes è su una variabile che non c'azzecca nulla...

    Codice PHP:
    $txt_it $_POST["txt_it"];
    // $txt_it = addslashes($descr_it); <== ora chi è $descr_it?
    $txt_it addslashes($txt_it); 

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.