Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston luonti

novari [16.10.2010 10:47:18]

#

Taas on kulunut aikaa kun viimeksi koodasin niin tuppaa unohtumaan.
Miten tarkistan tiedoston olemassa olon, tämän osaan mutta miten luon kyseisen tiedoston jos sitä ei ole olemassa?
Käytän ohjelmassa fopen - fwrite - fclose funktioita koska tallennan tiedot | merkillä erotettuna.
Kyse on albumin kuvien kommentointi ohjelmasta jossa jokaisen kuvan kommentointi menee tiedostoon viesti$id.txt jossa id on sama kuin kuva$id.
Nyt jos tuota tiedostoa ei ole niin tulee virheilnoituksia joista haluaisin päästä eroon. Yksinkertainen asia osaavalle.

Antti Laaksonen [16.10.2010 11:04:44]

#

Funktio fopen luo tiedoston, jos sitä ei ole olemassa.

Mitä virheilmoituksia tulee? Yksi ongelma voi olla, että hakemistoon ei ole kirjoitusoikeutta.

novari [16.10.2010 11:39:37]

#

Virheilmoitukset tulee kun ei voi avata kyseistä tiedostoa koska sitä ei ole. Pääsin sen verran eteen päin että ei luo tiedostoa tuon numeron kera.
Yrittää kuitenkin avata tiedostoa tuon numeron kanssa. Otan kahvan tällä:

<?php
$tiedosto = fopen("teksti".$id.".txt", "a");
?>

tekee vain teksti.txt tiedoston. $id on kuvan numero jotta teksti menisi oikeaan paikkaan ja $id on oikein.
Eli tarkoitus olisi tehdä tiedostoja teksti1.txt .... teksti30.txt. Missä teen väärin?

Lebe80 [16.10.2010 12:01:42]

#

$id ei tosiaankaan ole oikein, jos sitä ei tuohon nimeen tulostu.

Uskoisin, että olet ennen tehnyt register_globals asetus päällä, jolloin $_GET -taulun id -sarake on automaattisesti asettanut myös $id -nimiselle muuttujalle samaisen arvon.

novari [16.10.2010 14:08:27]

#

Olet tosiaankin oikeassa $id on tyhjä. Nyt en tajua miksi vaikka samoin olen tehnyt toimivia ohjelmia.
Linkin mukana annan id:n jonka sitten otan ohjelmassa, tähän asti toimii.
Talletan id:n myöhempää käyttöä varten tiedostoon ja otan sen tarvittaessa.

<?php
$id = $_GET["id"]; // otetaan lukema joka tosiaankin tulee, on testattu
file_put_contents("id.txt", $id); // talletus, ei toimi
$id = file_get_contents("id.txt"); // otetaan muualla käyttöön
?>

Tutkittuani tuota tiedostoa niin se on tyhjä joten jossain menee pieleen.
Nostin cmod:n 744 joten ei pitäisi olla siitäkään kiinni.

-tossu- [16.10.2010 19:36:31]

#

novari kirjoitti:

Nostin cmod:n 744 joten ei pitäisi olla siitäkään kiinni.

Mikäli tiedoston omistaja ei ole sama käyttäjä kuin jona PHP-tulkkia ajetaan, niin 744 ei riitä. Laita modeksi 666 eli -rw-rw-rw.

Vastaus

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

Tietoa sivustosta