PHP-sivulla on tekstikenttä, jonka sisältö tallennetaan teksti.txt -tiedostoon. Sivulle pääsee vain sisäänkirjautuneet jäsenet (tunnus, salasana ja keksi tallennettu MySQL-kantaan). Onko mitenkään mahdollista että tuon teksti.txt:n voisi tallentaa levylle niin, että tiedoston nimeksi tulee käyttäjätunnus.txt? Eli jos käyttäjä on vaikka Pekka, tiedoston nimeksi tulee Pekka.txt.
putka1.php
<body bgcolor="#C6E2FF"> <font size="+2">Otsikko</font><br><br> Kirjoita tekstisi tähän<br> <FORM method="post" action="putka.php"> <TEXTAREA name="koodi" rows="12" cols="50"></TEXTAREA> <p><input type='submit' value='Vastaa'></p> </FORM> </body>
putka.php joka käsittelee lomakkeen
<?php $sql_palvelin = "localhost"; $sql_tunnus = ""; $sql_salasana = ""; $sql_tietokanta = "opiskelijat"; $connu = mysql_connect($sql_palvelin,$sql_tunnus,$sql_salasana) or die("Yhdistäminen ei onnistunut"); mysql_select_db($sql_tietokanta) or die ("Virhe yhdistettäessä tietokantaan"); $ff = fopen("teksti.txt", "w"); fwrite($ff, stripcslashes($_POST["koodi"])); fclose($ff); echo '<pre>'; //haetaan tunnus, jolla on keksin istuntotunnus $vast = mysql_query("SELECT tunnus FROM kayttajat WHERE istunto = '".$_COOKIE['istunto']."'"); //jos haun tuloksena on yksi rivi, on käyttäjä sisällä if(mysql_num_rows($vast) == "1"){ $row = mysql_fetch_array($vast); $kayttaja = stripslashes($row['tunnus']); } $score = ($retu + $retval); echo $kayttaja ?>
$ff = fopen($sql_tunnus . ".txt", "w");
eikö noin?
Ei ihan noin, mutta tuosta oli kyllä suuri apu. Eli näin toimii:
$connu = mysql_connect($sql_palvelin,$sql_tunnus,$sql_salasana) or die("Yhdistäminen ei onnistunut"); mysql_select_db($sql_tietokanta) or die ("Virhe yhdistettäessä tietokantaan"); //haetaan tunnus, jolla on keksin istuntotunnus $vast = mysql_query("SELECT tunnus FROM kayttajat WHERE istunto = '".$_COOKIE['istunto']."'"); //jos haun tuloksena on yksi rivi, on käyttäjä sisällä if(mysql_num_rows($vast) == "1"){ $row = mysql_fetch_array($vast); $kayttaja = stripslashes($row['tunnus']); } $ff = fopen($kayttaja . ".txt", "w"); fwrite($ff, stripcslashes($_POST["koodi"])); fclose($ff); echo '<pre>';
Aihe on jo aika vanha, joten et voi enää vastata siihen.