Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: open_basedir restriction in effect

Macro [20.10.2011 22:06:16]

#

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.

Metabolix [20.10.2011 22:13:34]

#

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.

Macro [20.10.2011 22:42:23]

#

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

Metabolix [20.10.2011 23:07:13]

#

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.

Macro [20.10.2011 23:27:17]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta