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

    query senza caricare il carattere \

    ciao ragazzi,
    se inserisco in un campo del database un valore che contiene il carattere ', viene inserito nel database preceduto dal carattere \.

    Esempio, se inserisco dall'aria, viene scritto dall\'aria.

    come mai? e come posso evitarlo? grazie.

  2. #2
    come mai?
    avrai attivo il magic quote gpc, che serve a prevenire al sql injection.
    (documentati sul'uno e sull'altro con ricerche su forum e google)

    Come eviti?

    echo stripslasches($testolettodaDB);



    PS: kubrick

  3. #3
    Sostituisci prima di inserire nel db il carattere ' con la sua html entities (cercale su google). Oppure usa la funzione addslashes! Io ti consiglio la prima soluzione!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  4. #4
    Originariamente inviato da Nunkij
    Sostituisci prima di inserire nel db il carattere ' con la sua html entities (cercale su google). Oppure usa la funzione addslashes! Io ti consiglio la prima soluzione!
    addslashes serve ad aggiungere slashes...
    Ma questi vengono già aggiunti da php per questioni di sicurezza.. fungono smeplicemente da escape del carattere ' per il database...

    Sostituirlo con l'entity non credo serva a nulla.. nel momento stesso in cui arriva a PHP è già escapato..
    avresti smeplicemente \<entity> invece di \'


  5. #5
    quindi cosa faccio?

    PS: kubrick
    mitico kubrick

  6. #6
    questo


    Originariamente inviato da }gu|do[z]{®©

    echo stripslasches($testolettodaDB);

    bada che se vuoi fare uno script portabile ti convinee modificare anche il lato "inserimento"...


    if (!get_magic_quotes_gpc()) $testo = addslashes($testo);

    per tutte le variabili che provengono dall'utente...

    In questo modo sei sicuro che il testo venga sempre escapato, anche se il magic quote gpc è disattivato.


  7. #7
    senti, io dovrei escapare tutte le variabili e ne sono davvero tante...

    esiste un modo per escaparle tutte con una semplice funzione (tranne quelle numeriche ovviamente)?

    grazie...

  8. #8
    dovresti "de-escaparle" immagino..

    puoi fare un ciclo foreach su ogni "$row" che proviene dal DB...

    foreach($row as $k => $v) $$k = stripslashes($v);

    dovrebbe andare



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.