Visualizzazione dei risultati da 1 a 10 su 10

Discussione: gestione apici

  1. #1
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422

    gestione apici

    ciao a tutti

    ho sempre avuto dei problemi con sta cosa e ora devo per forza capire come gestirla.

    ho dei problemi a gestire gli apici e i doppi apici quando devo inserire nel db

    la mia query è infatti

    $query="insert into xx(testo) values('$testo')";

    ora non mi ricordo se solo in update o anche in insert ma ho dei problemi quando $testo contiene apici o doppio apice.....

    come vanno gestiti in modo corretto questi de caratteri?

    poi ad esempio se faccio un echo di un campo txt di una form con un value='$testo' il problema si ripropone......

  2. #2
    non hai detto che problemi..

    Ne puoi avere due "opposti".. ma visto che parli di inserimento penso ti riferisca ad un errore di mysql quando nelle stringhe inserite ci sono apici... questo perchè gli apici sono interpretati come parte della query e non come caratteri della stringa..

    la stessa identica cosa accade se provi a fare:

    echo 'viva l'italia';

    in PHP, che come immagino saprai si risolve così:

    echo 'viva l\'italia';

    ora dirai tu: e se il testo lo scrive l'utente come faccio a d aggiungere gli slashes?

    la risposte è dentro di te, e però è sbagliata (vcit)
    quella giusta, com smepre, è sul manuale:
    http://it.php.net/manual/it/function.addslashes.php

    o meglio ancora:
    http://it.php.net/manual/it/function...ape-string.php


    Ovviamente devi anche levare gli slashes poi, quando rileggi i dati dal databaase.... e lo fai con:
    http://it.php.net/manual/it/function.stripslashes.php

    Se cerchi i nomi di queste funzioni nel forum e sul web in generale troverai numerose spiegazioni.
    Argomenti correlati:
    sql injection
    magic quote

    In particolare su quest'ultimo c'è da sapere questo:
    in alcue configurazioni di php è attiva questa opzione, che fa automaticamente l'escape degli apici (aggiunge gli slashes insomma).. quindi uno script che faccia sempre addslashes potrebbe non funzionare (mettere troppi slashes) su un altro server dove il magic quote è attivato..

    pertanto sarebbe bene invocare addslashes solo se il magic quote è disattivato.. e questi si fa controllando il valore restituito da questa funzione:
    http://it.php.net/manual/it/function...quotes-gpc.php


    Spero di essere stato esauriente ed esaustivo, e non solo esaurito


  3. #3
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    allora , innanzitutto grazie per la risposta

    la funzione mi ritorna 1 ed infatti il problema non so peechè ma io l'ho in update e non nell'insert....ed hai ragione a dire che è un errore mysql ma questo già lo sapevo....

    ora però visto che la funzione è attiva non so come poter risolvere gli update
    e per questo invece?


    echo"<input type='text' name='tip3' size='25' value='l'anno'>" mi scrive l e basta....

  4. #4
    Originariamente inviato da dany0

    echo"<input type='text' name='tip3' size='25' value='l'anno'>" mi scrive l e basta....
    echo "<input type='text' name='tip3' size='25' value = \"l'anno\" >" ;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    si ok ma se ci fosse una stringa contenente doppi apici???funzionerebbe comunque???

  6. #6
    Originariamente inviato da dany0
    si ok ma se ci fosse una stringa contenente doppi apici???funzionerebbe comunque???
    e se fosse.... provare? .... no?

    esistono due funzioni: htmlentities() e htmlspecialchars() .... vedi sul manuale come utilizzarle e cosa convertono.

    http://it.php.net/manual/it/function.htmlentities.php
    http://it.php.net/manual/it/function...ecialchars.php


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    grazie delle info!! farò dei test appena possibile!!!


  8. #8

    .......

    Ciao.
    Codice PHP:
    Ovviamente devi anche levare gli slashes poiquando rileggi i dati dal databaase.... e lo fai con:
    stripslashes 
    Uhm ! non mi sembra necessario dentro il DB l'escape
    almeno per quanto riguarda il PHP non ci va.
    An example use of stripslashes() is when the PHP directive magic_quotes_gpc is on (it's on by default), and you aren't inserting this data into a place (such as a database) that requires escaping. For example, if you're simply outputting data straight from an HTML form.
    Cioè addslashes serve solo per fare l'escape.
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  9. #9

    Re: .......

    Originariamente inviato da whisher
    Ciao.
    Codice PHP:
    Ovviamente devi anche levare gli slashes poiquando rileggi i dati dal databaase.... e lo fai con:
    stripslashes 
    Uhm ! non mi sembra necessario dentro il DB l'escape
    almeno per quanto riguarda il PHP non ci va.

    Cioè addslashes serve solo per fare l'escape.
    non ho capito scusa....

  10. #10

    .........

    Ciao.
    Voglio dire utilizzi addslashes in modo che il db la tolga e inserisca regolarmente l'apostrofo, e non lo interpreti come fine della stringa. Ma nel db non ci finisce il backslash quindi stripslashes
    non è necessaria.
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.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.