Terve
Koitin move_uploaded_file-funktiolla siirtää käyttäjän lähettämää failia toiseen paikkaan, mutta PHP antaa varoitukset.
lainaus:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(C:\Windows\Temp\php21B3.tmp) is not within the allowed path(s): (D:\www-sivut) in D:\www-sivut\intranet\***\***\admin\uusisivu.php on line 19
Koodini näyttää tälläiseltä. Don't worry, tämänkin suoritus vaatii salasanan, joten haitallisia koodeja ei päästä ajamaan.
move_uploaded_file($_FILES["tiedosto"]["tmp_name"], "../userpages/{$_FILES["tiedosto"]["name"]}");
Mistäköhän tuo mahtaa johtua? Netistä löytyi aiheen otsikolla etsittynä paljonkin tavaraa, mutta yksikään niistä kokeilemistani ei auttanut ongelmassani.
No siinähän se lukee. Hakemisto, johon PHP tallentaa väliaikaistiedostot (upload_tmp_dir, sinulla nähtävästi C:\Windows\Temp), ei sisälly sallittuihin hakemistoihin (open_basedir, sinulla nähtävästi vain D:\www-sivut), joten et pysty käsittelemään lähetettyä tiedostoa. Ratkaisu: korjaa jompikumpi mainituista asetuksista.
Muutin upload_tmp_dir-asetuksen arvoon D:\www-sivut\tmp ja käynnistin palvelinkoneen uudelleen. Silti ne ladataan C:\Windows\Temp-kansioon ja sama virhe toistuu.
Saman muutoksen yhteydessä strtotime-funktio alkoi antaa erroria:
EDIT. Tämä johtuukin siitä, että olin laittanut kaikki virheet näkyviin. En silti ymmärrä, miksi PHP "ei luota palvelimen aikaan".
lainaus:
Strict Standards: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for '3.0/DST' instead in D:\www-sivut\intranet\***\***\admin\includes\
kojelauta_etusivu.php on line 63
Epäilen, että mokasit jotain siinä muutoksessa. Jäikö ehkä kommenttimerkki asetusrivin alkuun?
Aikavyöhykeasian taustoja on spekuloitu netissä. Eipä siitä kannata sen suurempaa numeroa tehdä, kun aikavyöhykkeen "Europe/Helsinki" lisääminen asetuksiin vie vähemmän aikaa kuin asian ihmettely foorumilla.
Kommenttimerkki ei jäänyt rivin eteen, mutta jostain syystä asetustiedostossa oli kaksi kertaa upload_tmp_dir. Muutin ensimmäistä, ja jälkimmäinen jäi oletusarvoonsa. Nyt se kumminkin toimii (Sitä lukuunottamatta, että tiedosto ei tallennu. Sitä ehtii kyllä huomenna tutkia).
Kiitos, muutin aikavyöhykkeen ja hyvin toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.