Olen tehnyt PHP-sivun joka siältää html-lomakkeen, jossa on seuraavanlainen koodirivi:
Tiedosto:
MySQL-tietokannassa tallennan html-lomakkeelta saadun "tiedosto" -rivin tietokenttään nimeltä tiedosto, jonka type on VARCHAR.
Eli kun tallennan html-lomakkeella esim. tiedostopolun "c:\kuvat\viimeiset\22.jpg" niin se tallentuu MySQL taulukkoon nimellä c:kuvatviimeiset22.jpg
Siis hakemistojen rajaavat kenoviivat "/" tai kauttaviivat "\" jäävät pois!
Onko vika html-lomakkeessa vai MySQl-taulukossa vai muualla??
Olen erittäin kiitollinen avusta!
Tiedosto:
MySQL-tietokannassa tallennan html-lomakkeelta saadun "tiedosto" -rivin tietokenttään nimeltä tiedosto, jonka type on VARCHAR.
Eli kun tallennan html-lomakkeella esim. tiedostopolun "c:\kuvat\viimeiset\22.jpg" niin se tallentuu MySQL taulukkoon nimellä c:kuvatviimeiset22.jpg
Siis hakemistojen rajaavat kenoviivat "/" tai kauttaviivat "\" jäävät pois!
Onko vika html-lomakkeessa vai MySQl-taulukossa vai muualla??
Olen erittäin kiitollinen avusta!
Vastaukset 1
Vanhimmat
Sinulla on scripsissäsi tietoturva aukko, joka mahdollistaa kantasi tyhjentämisen jne...
\ merkillä on erityis merkitys, joten siksi pelkkä \ merkki ei tallennu.
Aina käyttäjän syöte pitää tarkistaa ennenkuin kantaan sitä laitetaan, ja laittaa tarvittavien functioiden läpi joka poistaa tai tekee vaarattomaksi vaaralliset merkit. PHP:n tapauksessa esim
http://fi.php.net/manual/fi/function.mysql-real-escape-string.php tai
http://fi.php.net/manual/fi/function.mysql-escape-string.php