Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Chmod ongelma:

OILgame [01.03.2009 20:15:12]

#

Tein tiedostojen hallintaa ja tuli ihmeellinen ongelmaa siihen joka chmodaa filut ihan omituisesti :/

Kyseinen kohta koodista (olen kokeillut kaikilla mahdollisilla tavoilla muotoilla tuon numeron, mutta aina sama):

<?php
$file = $_GET['file'];
$total = $_POST['total'];
$nolla = 0;
$total = $nolla."".$total;
chmod($file, $total);
echo "-|".$total."|-  @".$file;
?>

Tuo koodi tulostaa:

-|0777|- @/home/laasonen/public_html/kauppa/admin/pages/tt.php

Eli muuttujat näytttäisi olevan oikein, mutta silti tiedoston oikeuksiksi "411" :/

Muokkaamalla koodin tälläiseksi se taas toimii, eli vika on tuossa numerossa, mutta en keksi mikä:

<?php
$file = $_GET['file'];
chmod($file, 0777);
?>

TsaTsaTsaa [01.03.2009 20:21:07]

#

Auttaisikohan intval?

<?php
$file = $_GET['file'];
$total = "0" . $_POST['total'];
chmod($file, intval($total));
?>

eq [01.03.2009 20:26:33]

#

PHP:n löyhä tyyppisysteemi muuttaa merkkijonot automaattisesti kymmenjärjestelmän numeroiksi, siis "0777" vastaa numeroa 777. C:ssä ja sen syntaksia vastaavissa kielissä oktaalijärjestelmän numerot merkataan etuliitteellä 0 (nolla), ja tämän vuoksi 0777 ei ole sama kuin 777 tai "0777", vaan 511.

Funktio chmod ottaa kaksi parametria, joista jälkimmäinen on 3-numeroinen oktaaliluku, joka määrittää omistajan, ryhmän ja muiden oikeudet tiedostoon. Alla esimerkki (turhia muuttujia käyttävästä koodaustavasta ;))

$luku = "777";
$oktaaliluku = intval($luku, 8);
chmod($tiedosto, $oktaaliluku);

(edit, tosiaan)
(edit2: en ole tarkistanut toimivuutta, enkä aktiivisesti käytä PHP:ta joten en voi taata esimerkin toimivuutta tai yllä olevien väitteiden täyttä todenmukaisuutta)

OILgame [01.03.2009 20:31:05]

#

Eipä intval auttanut. Miten saan sen tuohon eq:n kertomaan muotoon?

EDIT:
Kiitti, sain näin toimii :)

<?php
$file = $_GET['file'];
$total = intval($_POST['total'], 8);
chmod($file, $total);
?>

Vastaus

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

Tietoa sivustosta