Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP Tietokannan tiedoista data.txt luonti ja lataus

Sivun loppuun

Hoover [09.01.2007 18:32:25]

#

Elikkäs, mitenkä oikein PHP:llä voisi tehdä sellaisen toiminnon, että serveripuoli loisi data.txt -tiedoston ja syöttäisi sinne jotain tietoja tietokannasta? Sitten tämä data.txt pitäisi saada sivuston käyttäjälle ladattua.

Tarkoitus olisi hakea tietoja tietokannasta omalle koneelle sen takia, kun täytän data.txt:n tietojen perusteella erään wordin dokkarin kentät.

Tutkailin vähän asiaa googlella ja löysin fopen ja fwrite -komennot, mutta mitenkä tämä käyttäytyy jos sivustolla onkin monta käyttäjää yhtä aikaa? Sehän kirjoittaa samaan tiedostoon tietokannan tiedot ja data.txt sisältää sitten mitä sattuu. Jos taaskin loisin aina uuden tiedoston, joka sisältää tietokannan tiedot, niin sitten pitäisi serveriltä käydä aina tyhjentelemässä vähän väliä roskatiedostoja. Vai olenko ihan väärin käsittänyt nämä fopenit ja fwritet? :o

Saa kertoa muitakin ratkaisuja kun nämä fopen ja fwrite, nämä vaan itse satuin löytämään.

ajv [09.01.2007 20:01:10]

#

Miksi data pitää tallentaa tiedostoon. Siis miksei ihan normaali dynaaminen php-sivu kelpaa, jos kummiskin selaimen kautta sen lataat?

Hoover [09.01.2007 20:13:10]

#

No tietysti se olisi vielä parempi jos koko roskan saisi sivuilla tehtyä ja sitten vain ladattaisiin valmis wordin dokkari. Tuli vain tälläinen aatos, että voi olla helpompi(?) näin. :)

Kyseessä on siis tälläinen määrämuotoinen dokumentti, joka pitäisi saada aina täytettyä tietokannan arvoilla.

Pystyykö php:llä jotenkin tekemään sitten sellaisen systeemin, että se ei tallenna palvelimelle tätä data.txt -tiedostoa, vaan se jotenkin lennosta vaan kyhäisi sen ja lähettäisi käyttäjälle? Käyttäjä sitten vain pistäisi että "Save as..." ja tallentaisi sen jonnekin.

tsuriga [09.01.2007 21:00:29]

#

https://www.ohjelmointiputka.net/keskustelu/14052-php-mysql-tietokannan-tiedoista-wordin-dokkari käytätkö tuota RTF Generator -luokkaa? Itse en ole käytellyt, oletan kuitenkin, että sillä saa myös dataa tulostettua. Tulosta data ja käytä seuraavaa koodia kertomaan selaimelle, että tulossa on rtf-muotoista dataa ja se pitäisi tallentaa.

Tällä saanet selaimen heittämään tallennusikkunan.

<?php
header("Content-type: application/rtf"); // tästä en mene takuuseen, löyty googlella myös text/richtext
header("Content-Disposition: attachment; filename=myfile.rtf");
?>

Täällä on vielä jotain jos ei noilla ohjeilla toimi.

Hoover [09.01.2007 22:17:59]

#

Tuo RTF Generator tosiaan näyttää hyvältä. Entäpä, pystyykö sillä lisäämään jotenkin kuvia? Ei pistänyt itsellä silmään sellaista ominaisuutta.

Hoover [10.01.2007 20:15:29]

#

Entäpä jos haluaisin tehdä tämän vielä niin, että serveri luo data.txt -tiedoston ja nakkaa ikkunan käyttäjälle, että mihinkä kansioon ladataan?

RTF Generaattorilla tuon sain tehtyä kun sehän oli valmis köntti. Jos vaikka ihan sellaisen esimerkin saisi missä luodaan data.txt ja sinne kirjoitetaan joku sana ja lopuksi nakattaisiin sivuston käyttäjälle data.txt, niin auttaisi kovasti.

Ilmeisesti se menisi jotenkin näin, kuten tsuriga vinkkasi:

<?php
header("Content-type: application/txt");
header("Content-Disposition: attachment; filename=data.txt");
?>

Eli tuo nakkaa käyttäjälle sen ilmoituksen missä kysytään minne data.txt -tiedosto ladataan, mutta missä se data.txt sitten luodaan? Onko se pakko fwritella luoda palvelimelle ja sitten erikseen poistaa? Eikö siinä tule vaaraksi se, että palvelimelle alkaa kertyä jotain kökkötiedostoja? Ja jos aina käytettäisiin samannimistä tiedostoa, niin se ei toimi jos kaksi käyttäjää käyttää sivustoa samanaikaisesti.

kasetti [10.01.2007 22:11:17]

#

Katsoppa hoover auttaako nuo esimerkit:
http://www.kasetti.info/koodivinkit.php?kansio=3&koodi=2

tsuriga [10.01.2007 22:58:51]

#

Tuolta cv.php auttanee. Data siis tulostetaan PHP:n komennolla echo/print, ja tämän tulostuksen serveri sitten lähettää käyttäjälle ynnättynä siihen vielä nuo headerit, jotka kertovat käyttäjän selaimelle, millaista dataa on odotettavissa. Et siis tarvitse väliaikaistiedostoa. En nyt kyllä tiedä, miksi tahdot viedä käyttäjälle tekstitiedostoa; eikös tässä oltu word-dokkaria luomassa?

Hoover [10.01.2007 23:23:10]

#

Joo. Sen Wordin sain jo tehtyä, mutta tälle konstille on kans käyttöä tulevaisuudessa. :)

Tuo kasetin linkki on juuri se mitä kaipailin, kiitti!


Sivun alkuun

Vastaus

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

Tietoa sivustosta