Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Automaattinen sivun luonti PHP:llä

Sivun loppuun

Juska [17.09.2012 19:04:03]

#

Eli onko sellainen mahdollista että on nimi kenttä siihen kirjoittaa nimensä ja sitten se tekee on automaattisesti palvelimelle esim joku satunnainen_numerosarja.php ja sivun sisältö olisi se nimi, jonka teksti kenttään kirjoitti. Siis saako PHPllä tehtyä sellaista sciptiä joka luo sivun annetuista tiedoista? Kiitos jo etukäteen, jos joku auttaisi! :D

dartvaneri [17.09.2012 19:12:46]

#

Saa. Avaat haluamasi nimisen tiedoston, jolloin se luo sen, ellei sitä ole olemassa, ja sitten vain kirjoitat sinne tiedostoon mitä haluat.
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=php_09

Metabolix [17.09.2012 19:16:22]

#

Tarkoituksiisi ehkä sopivan tiedostonimen saa luotua vaikka funktiolla uniqid. Tiedostoon voi kirjoittaa funktiolla file_put_contents. Muista käyttää sivun sisällön kanssa htmlspecialchars-funktiota tms., ettei sivullesi tule tietoturva-aukkoa (XSS-aukkoa tai jopa täyteen sivuston hallintaan johtavaa aukkoa).

-tossu- [17.09.2012 19:22:16]

#

Uusien sivujen luominen tuolla tavalla on harvoin järkevää, vaan tiedostoon kannattaa tallentaa pelkät käyttäjän syöttämät tiedot. Kun selain hakee sivun, PHP-skripti parsii tiedoston ja liittää sen sisällön valmiiseen pohjaan. Tällöin muutosten tekeminen on paljon helpompaa.

Mikäli tarkoitus on kuitenkin näyttää pelkästään lomakkeeseen kirjoitettu teksti sellaisenaan, ei erillistä skriptiä tarvita, mutta kannattaa käyttää muuta tiedostopäätettä kuin .php.

Juska [17.09.2012 19:34:05]

#

No siis kun käyttäjä syöttää tiedot se siis loisi uuden sivun, mutta eikö tämä siis ole mahdollista? vai pitäisikö se totauttaa tuolla .txt avulla? Ja mitenkä se sillä totautettaisiin?

-tossu- [17.09.2012 19:44:01]

#

On mahdollista, mutta tapauksesta riippuen ei ole järkevää. Millainen systeemistä tarkalleen ottaen tulisi? Joka tapauksessa tutustu PHP:n funktioihin uniqid ja file_put_contents kuten Metabolix sanoi.

Mikäli on tarkoitus sallia HTML- ja PHP-koodi sivulla, onnistuu sivun luonti vaikkapa näin:

$sivun_id = uniqid();
$sisalto = $_POST['sisalto'];
file_put_contents("$sivun_id.html", $sisalto);

Teuro [18.09.2012 11:42:12]

#

Oikeammin näin:

$sivun_id = uniqid();
$sisalto = $_POST['sisalto'];
file_put_contents("{$sivun_id}.html", $sisalto);

Metabolix [19.09.2012 14:10:50]

#

Teuron koodissa ei ole mitään "oikeampaa", vaan se tekee täsmälleen saman asian ja on täsmälleen yhtä oikein kuin edellinenkin versio.

Joko selityksessä tai koodissa on kuitenkin pieni ajatusvirhe, nimittäin .html-päätteisessä tiedostossa olevaa PHP-koodia ei tietenkään yleensä ajeta, vaan PHP-koodin salliminen vaatisi .php-päätteisen tiedoston. Onni onnettomuudessa on, että mielivaltaisen PHP-koodin salliminen olisikin äärimmäisen typerää eikä yleensä ole järkevää sallia myöskään HTML-koodia, ellei kyseessä ole hyvin suojattu sivuston hallintapaneeli tai muu erittäin hallittu ympäristö.

qeijo [19.09.2012 16:41:35]

#

Kohta luetaan taas ilttiksesta "hakkeroinnista" ja tietovuodoista...

Lisäys:

qeijo kirjoitti:

Kohta luetaan taas ilttiksesta "hakkeroinnista" ja tietovuodoista...

Hyvin sanottu.


Sivun alkuun

Vastaus

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

Tietoa sivustosta