Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    37

    Query con variabile post

    Salve a tutti , ho un problema per la gestione di alcuni autori di libri per la biblioteca scolastica.
    Ho una select popolata che prende i valori dal campo Autore della mia tabella Libri e poi al submit del form la select passa il valore alla variabile contenuta nel file php. Il problema sorge negli autori con l'apostrofo. Facendo un esempio D'annunzio Gabriele , anche se presente nel database non viene riconosciuto dalla query in quanto la query stessa è scritta in questo modo:

    $query="Select * from libri where autore= '$_post[select]'";

    Ho capito che il problema sta nel fatto che quando nella query viene sostituito alla variabile il valore, la select diverrebbe cosi':

    $query="select * from libri where autore = 'D' ";

    in quanto l'apostrofo dell'autore entra in conflitto con l'apice della query e mi tronca il valore.
    Ho risolto facendo un update e sostituendo tutti i gli apostrofi con uno spazio in modo che questo problema non ci sia piu' ed infatti è risolto. La cosa che pero' volevo sapere è: possibile che non esiste un metodo per far passare dei valori con apice e non farli interpretare come tali da una query in php? grazie a chiunque mi possa aiutare.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Codice PHP:
    $query="Select * from libri where autore= '".mysql_real_escape_string($_POST['select'])."'"
    In generale la funzione mysql_real_escape_string() va SEMPRE usata quando ad una query si passano dati che arrivano da un form, non puoi mai sapere cosa ci possa scrivere un utente, anche codice malevolo che ti manda all'aria tutto il db.

    I dati che arrivano da un form, vanno controllati sempre prima di essere usati.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    37
    Grazie mille per la risposta!

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.