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

    Non salva i doppi apici (") nel database

    Ciao a tutti,

    sto eseguendo dei test per il salvataggio su db di alcune stringhe, ed ho notato che tutte le stringhe contenenti i doppi apici (") non vengono salvate, o meglio, vengono salvate finchè non incappa nei doppi apici, faccio un esempio :

    Stringa : sono andato al mare (la salva senza problemi)
    Stringa : sono andato al "mare" (mi salva solo la porzione 'sono andato al ')

    O ancora :
    Stringa : sono andato al 'mare' (la salva senza problemi)

    il codice utilizzato è molto semplice, recupera dei valori da dei campi hidden e salva su db (nel mio caso è Postgresql.
    codice:
    $titolo = pg_escape_string($_POST["hidTitle"]);
    $descrizione = pg_escape_string($_POST["hidDescription"]);
    
    $query = "INSERT INTO messages (title, description)
    	  	  VALUES ('" . $titolo. "', '" . $descrizione . "')";
     $result = pg_query($query) or die (pg_last_error($query));
    Eseguo l'escape e la pagina html da cui recupero i valori utilizza una codifica UTF-8
    <meta http-equiv="Content-Type" content="text/html; charset="utf-8"/>
    la stessa con cui è stato creato il database.

    Quale può essere il problema?
    Perpetual Ribellion With Absolutely No Cause

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    fai a video il dump della query (var_export($query)) e postala qui

  3. #3
    ok ho risolto, dalla pagina precedente a quella che andrà a scrivere i dati nel db ho utilizzato uno str_replace (ho aggiunto anche uno strip_tags visto che va visualizzato sulla pagina)
    codice:
    $descrizione = strip_tags($_POST["descrizione"]);
    str_replace('"','\'', $descrizione);
    infine per l'inserimento nel db ho utilizzato pg_escape_string
    codice:
    $descrizione = pg_escape_string($_POST["hidDescription"]);
    ora la stringa di esempio : vado al "mare" viene convertita in vado al 'mare'
    mentre : vado al 'mare' rimane vade al 'mare'.

    Ci sono altri accorgimenti per la sicurezza da adottare per evitare spiacevoli inconvenienti quali testo falsato e sql injection?

    Grazie
    Perpetual Ribellion With Absolutely No Cause

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 © 2024 vBulletin Solutions, Inc. All rights reserved.